我正在尝试将在672个元素的本地网页中修改的数组发布回服务器。为此我把它放在一个字符串中,用逗号分隔,在这样的Javascript中:
alert("begin");
var sBsbData=""
for (var x=0;x<24*4*7;x++)
sBsbData = sBsbData + BsbData[x] + ',';
alert(sBsbData);
BsbData是一个int数组;值不超过10.
这是任何处理器都可以在没有眨眼间处理的代码......但是这两个警报之间需要大约10秒钟!我在这做错了什么?我为此目的选择了一种特别糟糕的concat方法吗?
答案 0 :(得分:3)
它并不慢 - 它是alert
需要一段时间才能被创建(出于某种奇怪的原因)。
概念证明:
var BsbData = [];
for (var i = 0; i < 24 * 4 * 7; i++) {
BsbData[i] = Math.round(Math.random() * 10);
}
console.log("begin");
alert("begin");
var sBsbData=""
for (var x=0;x<24*4*7;x++)
sBsbData = sBsbData + BsbData[x] + ',';
console.log(sBsbData);
// !!! This is where the code will halt for a bit (the string has already been created) !!!
alert(sBsbData);
那就是说 - 你应该只使用var sBsbData = BsbData.join(',');