Javascript分割冻结浏览器
我有一个5000行的大字符串,除以\n思想文本区域 这里我想把这个大字符串转换成数组 我的绳子是这样的Javascript分割冻结浏览器,javascript,Javascript,我有一个5000行的大字符串,除以\n思想文本区域 这里我想把这个大字符串转换成数组 我的绳子是这样的 query= '1\n2\n3\n4\n5\n6\n6...........'; 因此,我转换为: var array = query.split('\n'); console.log(array); 但在它显示在控制台上之后,它会将浏览器冻结30秒 在转换成字符串后,我通过POST将数据一个一个地发送到服务器,在验证之后,我将一个一个地显示结果 所以,如果有人知道它更好的方法,那么告诉我
query= '1\n2\n3\n4\n5\n6\n6...........';
因此,我转换为:
var array = query.split('\n');
console.log(array);
但在它显示在控制台上之后,它会将浏览器冻结30秒
在转换成字符串后,我通过POST将数据一个一个地发送到服务器,在验证之后,我将一个一个地显示结果
所以,如果有人知道它更好的方法,那么告诉我其他方法可以帮助我防止浏览器冻结。
演示链接,但不工作,你可以看到我的html和js代码
拆分5000行不到一秒钟,至少在Chrome上是这样: 然而,在each中使用AJAX是一个非常糟糕的主意,除非您想让服务器泛滥
$.each(array, function (index, value) {
$.ajax({
取而代之的是
function sendIt() {
if (array.length==0) return; // stop
var value = array.pop();
$.ajax({
...
success: function() {
...
send();
}
...
});
}
$(function() {
$("#formID").on("submit",function(e) { // give the form an ID
e.preventDefault(); // cancel submission
....
sendIt();
....
})
});
好的,现在我已经删除了,但仍然冻结,我使用5000作为第一个5000值。您能分享发送n处理响应的代码吗?这可能是您面临的问题的根源。在这种情况下,拆分不应花费30秒。在Chrome上这需要不到一秒的时间以便更好地理解,请提供一个工作演示(代码片段,JSFIDLE…)我有JSFIDLE演示,它不工作,但你们都可以看到codecan。请提供示例pop,因为我已经尝试了很多次,但没有成功。什么pop?请详细说明