1

我的 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) {}

当然,长期计算会冻结浏览器窗口,直到所有计算完成。

是否有任何解决方法可以以(有点)“异步”方式使用小程序而不会冻结浏览器?在小程序源代码中使用线程是否有意义?

感谢帮助!

4

3 回答 3

2

在关于mayscript 属性的页面上,我们现在可以找到信息:

LiveConnect 是一种支持 Java Applet 和客户端脚本(如 JavaScript、VBScript)之间交互的技术。较旧的 Java 浏览器插件(Java 版本 1.6.0.10 之前)默认情况下不允许小程序使用 LiveConnect,但可以使用 MAYSCRIPT 属性修改该设置。由于兼容性原因(因为 Internet Explorer 中的 Java 插件始终允许小程序访问客户端脚本),较新的 Java 插件(从 Java 版本 1.6.0.10开始)不检查 MAYSCRIPT 属性,所有浏览器中始终允许脚本访问

我已经在 FF 18.0.1、Opera 11 或 12、Chrome 和 IE9 上进行了检查,并且无需任何额外工作即可正常工作(oracle 页面上的教程 - 不需要 MAYSCRIPT,仅使用JSObject和 import plugin.jar)。

于 2013-02-04T20:19:14.820 回答
0

在小程序中使用线程,然后使用 JSObject 回调到页面将是执行此操作的方法。

于 2015-06-16T19:05:06.003 回答
-1

我不确定您可以从小程序中做什么,但从简单的 javascript/html 的角度来看,您一直在以同步方式等待计算完成。如果您从服务器获取数据,情况会有所不同。

于 2012-05-21T21:24:17.973 回答