在其他一些帖子中我发现javascript中的最大字符串长度应该有512mb(~2 ^ 27)的限制。我的申请中有以下代码:
i = 1;
selectionField.value = i;
i++;
for (i;i<=tableEntries;i++){
selectionField.value = selectionField.value + "," + i;
}
&#13;
其中&#34; tableEntries&#34;是例如&#34; 40000&#34 ;.这段代码在Firefox中运行良好(虽然它需要大约5-10秒,并提示警告长时间运行的脚本)但不执行chrome。 Chrome只是在这个循环中中断,并说它无法显示页面。 Chrome中是否有特定设置可能导致意外结果?我的意思是最终的字符串应该有~240k字符的长度。根据开头提到的限制,这应该没问题。
提前感谢您的帮助!
答案 0 :(得分:0)
问题不在于字符串的长度,而在于您尝试在屏幕上的输入字段中更新值240k~次。
更好的解决方案是将字段值复制到变量,在内存中执行字符串连接,然后在DOM(屏幕上)中仅更新完成的字符串一次。
添加到您的代码中,它将是这样的:
i = 1;
var str = i;
i++;
for (i;i<=tableEntries;i++){
str = str + "," + i;
}
selectionField.value = str;