java - 异步使用 Java applet

标签 java javascript browser applet

我的 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/

相关文章:

java - 未生成 R.java 文件。如何解决?

java - 服务 API 网关

Javascript:动态声明函数的正确方法

javascript - 为什么当我点击第二张图片时,它没有像第一张那样弹出?

c++ - 如何在没有依赖项的情况下在 C++ 中制作网页浏览器?

javascript - $.jsonp 不缓存

java - ProGuards 总是删除方法调用

java - JPA Criteria API - 日历值的算术

javascript - 使用 PHP 将特定数据从 angularJS 应用程序发送到 json 文件

html - 如何从 MS Edge 浏览器中读取用户计算机的品牌、型号和序列号?