将非常大的字符串(几兆字节)从 Java 应用程序导出到页面 JavaScript 的最快方法是什么?目前,浏览器花了很长时间才停止运行。
这是我用来修改 DOM 的代码:
window = JSObject.getWindow(this);
document = (JSObject) window.getMember("document");
for (int i = 0; i < encHexFileUploadStr.length(); i++){
char c = encHexFileUploadStr.charAt(i);
document.eval("document.getElementById('encOutgoingData').value += '"+c+"';");
if (i % 100 == 0) document.eval("console.log("+i+");");
}
在此之前,我尝试直接一次性分配 encHexFileUploadStr 变量,但这并没有更好。
有什么好的方法可以做到这一点,而且速度不那么慢吗?
谢谢!
最佳答案
我没有尝试将您提到的数据量从 Java 应用程序传输到网页,但是,如果您使用 document.eval,您遇到的性能问题很可能是由于 eval 所需的处理造成的陈述。另一种方法是直接调用执行实际数据更新工作的 JavaScript 方法。以下是如何使用此方法的示例:
Java
JSObject jso = JSObject.getWindow(this);
// invoke JavaScript method updateData with parameter encHexFileUploadStr
jso.call("updateData", new String[] { encHexFileUploadStr });
JavaScript
function updateData(s) {
document.getElementById('encOutgoingData').value = s;
}
关于java - 将非常大的变量从 Java 应用程序传递到 Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6456827/