我有一个大型小程序,需要大约 40 秒才能初始化(出租车已缓存,因此请忽略此问题的下载时间)。
问题是,如果用户转到启动小程序(单个窗口)的页面 A,然后导航到页面 B,则小程序将被卸载。如果用户返回页面 A,他们将再次经历 40 秒的初始化时间。
我希望能够启动该小程序,一次且仅一次产生 40 秒的初始化时间。小程序需要驻留在单个浏览器窗口(与我的 Web 应用程序相同的窗口)内。换句话说,我无法在弹出窗口中启动小程序。
有人对如何防止小程序卸载有什么创意吗?
最佳答案
唯一的选择是将您的内容放入包含整个文档的 iframe 中,并为小程序使用绝对定位。
<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;
}
有很多缺点:
- 无论页面如何,小程序都将始终位于同一位置
- 您将无法获得 iframe 的全宽和全高,尤其是在 IE 中
- 您也可能会遇到小程序无法正确显示的问题(iframe 顶部的对象,我无法想象您会遇到什么麻烦)
- 如果您的用户点击了指向您网站之外的链接,除非您为该链接设置了目标(即 target='top' 或 target='__blank'),否则该小程序将会保留
关于java - 如何防止Applet跨网页卸载?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/652376/