我有一个大的小程序需要大约40秒来初始化(出租车被缓存,所以忽略这个问题的下载时间)。
问题是,如果用户转到启动applet的页面A(单个窗口),然后导航到页面B,则卸载applet。如果用户返回到页面A,则会再次产生40秒的初始化时间。
我希望能够启动applet,只需要一次40秒的初始化时间。 applet需要驻留在单个浏览器窗口内(与我的Web应用程序相同的窗口)。换句话说,我无法在弹出窗口中启动applet。
有没有人对如何防止applet卸载有任何创意?
答案 0 :(得分:1)
唯一的选择是将内容放在包含整个文档的iframe中,并使用applet的绝对定位。
<body>
<iframe id='content' src='FIRST_URL'></iframe>
<object id='applet'></object>
</body>
用这样的css:
#content {
width:100%;
height: 100%;
}
#applet {
position: absolute;
left: LEFT_POSITION;
top: TOP_POSITION;
width: DESIRED_WIDTH;
height: DESIRED_HEIGHT;
}
有许多缺点:
答案 1 :(得分:1)
您可以通过以下方式显示警告:
if(window.body)window.body.onbeforeunload=function(){if(window.event)window.event.returnValue="UNLOAD MSG";};else window.onbeforeunload=function(){return "UNLOAD MSG";};
这适用于所有浏览器,但您无法更改文本周围的文字。
答案 2 :(得分:0)
将Applet放在不卸载的框架中,或阻止用户转到包含Applet的网页中的另一个页面。
答案 3 :(得分:0)
我想也许有办法弹出一个小小的浏览器窗口并加载applet,然后使用Javascript以某种方式将applet从较小的窗口拉入更大的浏览器。
我认为我不能以这种方式操纵DOM。
还有其他想法吗?