我的 HTML 页面中嵌入了小程序。没什么特别的:
<applet archive='static/app/applet.jar' code='appletclass/AppletClass'>
<param name='name' value='Applet name'>
<param name='mayscript' value='true'>
</applet>
Applet 本身具有执行一些持久计算的方法list
。使用 JavaScript 从页面调用此方法:
try {
appletElement.list();
} catch (ex) {}
当然,持久计算会卡住浏览器窗口,直到所有计算完成。
是否有任何解决方法可以以(某种程度上)“异步”方式使用小程序,而不会导致浏览器卡住?在小程序源中使用线程有任何意义吗?
感谢您的帮助!
最佳答案
关于mayscript attribute的页面我们现在可以找到信息:
LiveConnect is a technology that enables interaction between Java Applets and client-side scripts (such as JavaScript, VBScript). Older Java Browser Plugins (before Java version 1.6.0.10) do not allow applets to use LiveConnect by default, but that setting can be modified with the MAYSCRIPT attribute. Because of compatibility reasons (since Java Plugins in Internet Explorer always allow applets to access client-side scripts), newer Java Plugins (from Java version 1.6.0.10) do not check the MAYSCRIPT attribute, script access is always allowed in all browsers.
我已经检查过,在 FF 18.0.1、Opera 11 或 12、Chrome 和 IE9 上,无需任何额外工作即可正常工作(tutarial on oracle page - 不需要 MAYSCRIPT,仅使用 JSObject 并导入 plugin.jar)。
关于java - 异步使用 Java applet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10692773/