Plugins 如何在ExtJS选项卡式视图中保持NPAPI插件的活动状态

Plugins 如何在ExtJS选项卡式视图中保持NPAPI插件的活动状态,plugins,browser,extjs,dhtml,npapi,Plugins,Browser,Extjs,Dhtml,Npapi,我试图在一个选项卡式ExtJS应用程序中使用一个自定义视频播放器NPAPI插件(view FireBreath)。插件位于一个选项卡中,其他选项卡包含其他非视频数据的演示 从一个选项卡切换到另一个选项卡时,包含插件的元素将被销毁,所有插件状态都将丢失。有没有办法配置ExtJS选项卡式面板,以便在切换到另一个选项卡(只是隐藏)时不会更改其中包含的html?另一种方法是在返回选项卡时重新填充插件状态,但这会导致无法接受的延迟(主要是在等待视频关键帧时) 谢谢, O我不知道您的ExtJS方法,如果您能

我试图在一个选项卡式ExtJS应用程序中使用一个自定义视频播放器NPAPI插件(view FireBreath)。插件位于一个选项卡中,其他选项卡包含其他非视频数据的演示

从一个选项卡切换到另一个选项卡时,包含插件的元素将被销毁,所有插件状态都将丢失。有没有办法配置ExtJS选项卡式面板,以便在切换到另一个选项卡(只是隐藏)时不会更改其中包含的html?另一种方法是在返回选项卡时重新填充插件状态,但这会导致无法接受的延迟(主要是在等待视频关键帧时)

谢谢,
O

我不知道您的ExtJS方法,如果您能在这方面解决它,那当然更可取

但是,如果不能,可以通过将流处理移动到后台运行的帮助程序应用程序来避免重新初始化。插件将根据需要启动它,并在注册后从中接收流数据。

助手将被告知何时终止流,并可能在超时后自行终止流(以避免在插件崩溃等情况下出现会话泄漏)。

我不知道您的ExtJS方法,如果您能在这方面解决它,那当然会更好

但是,如果不能,可以通过将流处理移动到后台运行的帮助程序应用程序来避免重新初始化。插件将根据需要启动它,并在注册后从中接收流数据。

助手将被告知何时杀死一个流,并可能在一段时间后自行杀死它(以避免在崩溃插件等情况下发生会话泄漏)。

< P>我将考虑上面推荐的助手应用程序,或者查看将插件改写为无窗口的应用程序。对于其他JS框架来说,这两种解决方案都可能更健壮

幸运的是,解决方案最终比这更简单,至少对于ExtJS来说是这样。默认情况下,ExtJS会在选项卡式视图的div上设置
“display:none”
,只要它未显示,就会调用插件析构函数。在对其庞大的API进行了进一步的研究之后,ExtJS在Ext.panel.panel基类中有一个参数
hideMode

“显示”:将使用“显示:无”样式隐藏组件

“可见性”:将使用可见性:隐藏样式隐藏组件

“偏移”:组件将被完全隐藏在文档的可见区域之外。当隐藏的零部件必须保持可测量的尺寸时,这非常有用。使用“显示”隐藏会导致零部件的尺寸为零

默认为:“显示”


将包含插件的父面板设置为<代码> HyoMeDe:“偏移”< /> >完美地解决了问题。

< P>我将考虑上面推荐的助手应用程序,或者查看插件是无窗口的改写。对于其他JS框架来说,这两种解决方案都可能更健壮

幸运的是,解决方案最终比这更简单,至少对于ExtJS来说是这样。默认情况下,ExtJS会在选项卡式视图的div上设置
“display:none”
,只要它未显示,就会调用插件析构函数。在对其庞大的API进行了进一步的研究之后,ExtJS在Ext.panel.panel基类中有一个参数
hideMode

“显示”:将使用“显示:无”样式隐藏组件

“可见性”:将使用可见性:隐藏样式隐藏组件

“偏移”:组件将被完全隐藏在文档的可见区域之外。当隐藏的零部件必须保持可测量的尺寸时,这非常有用。使用“显示”隐藏会导致零部件的尺寸为零

默认为:“显示”

将包含插件的父面板设置为
hideMode:“偏移量”
完美地解决了这个问题