gpt4 book ai didi

java - 将非常大的变量从 Java 应用程序传递到 Javascript

转载 作者:行者123 更新时间:2023-11-28 10:16:44 24 4
gpt4 key购买 nike

将非常大的字符串(几兆字节)从 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com