4

我在将一些数据从 JavaScript 传递到小程序时遇到问题。我认为数据量太大(字符串中的 1800 万个字符)无法通过 LiveConnect 传递。

我把代码示例放在下面:

JavaScript:

var bigData = generateSomeBigData(18000000); // string contaning 18 000 000 characters
applet.Execute(bigData); // no error

小程序:

public void Execute(String data) {
    this.doSomethingWithData(data);  // data is null
}

我在 java 控制台或 javascript 代码中没有收到任何错误或异常。我试过用更大的堆运行小程序,但没有帮助。

... <param name="java_arguments" value="-Xmx128m" /> ...

唯一的问题是我得到null的不是包含字符串的数据,它不依赖于浏览器(FF、Chrome)。

4

1 回答 1

0

我解决了这个问题。我将数据生成移至服务器站点,并使用one time self destructing link. 小程序可以下载信息,不再可用,并返回结果。

这里有一个例子:

服务器:

String bigData = this.generateBigData(18000000);
String linkToData = this.getOneTimeLink(bigData);

JavaScript:

applet.Execute(linkToBigData);

小程序:

public void Execute(String link) {
    String data = this.downloadData(link);
    this.doSomethingWithData(data);  // data is not null ;)
}

编辑 2015 年 5 月 11 日:

也许您需要对一次性破坏链接做一个小小的解释。我使用它是因为它是我项目的另一个要求,但没有必要实现解决方案。

于 2015-04-24T07:29:09.650 回答