如何使用for循环语句通过Ajax发送大数据数组
how to sending big data array using for loop statement via Ajax
我正在学习javascript编程。
我的js代码有效。但有一个问题是,下面的代码简化为要求几乎同时向服务器发送大数据。我想一个接一个地发送数据。如何使用闭包修复它?:-)
$("#dataupload").click(function(){
for (var i = 0 ; i < datafiles.length; i++) {
var f = datafiles[i] ;
$.post("/upload.php",f,function(result){
console.log(result);
});
}
});
如果你想连续地做,你可以做这样的事情:
(function send(i) {
if(i < datafiles.length) {
$.post("/upload.php", datafiles[i], function(result) {
console.log(result);
send(++i);
});
}
})(0);
这里send
是一个函数,它是立即调用的函数表达式的一部分。我们正在使用回调复制一个循环。尽管我们在这里调用send
,但需要注意的是,这并不是严格递归的,因为对send
的后续调用是在send
本身执行时完成的,而是在执行$.post
的回调时调用的。
send
有一个参数,它是datafiles
数组的索引。如果i
小于数组的长度,则表示我们仍有文件要发送。我们调用$.post
,在回调中,我们增加i
的值,并用i
的新值再次调用send
。当i
等于datafiles
数组的长度时,意味着我们完成了。
相关文章:
- 使用数据数组创建多个类似组件
- WebAudio API数据数组大小
- Jquery 循环一次或在数据数组中显示一次数据
- Cakephp 访问不在模型数据数组上的输入
- 使用来自 Ajax 响应的 JSON 数据数组
- Angular JS(离子)数据数组到$scope元素
- handontable:在不更改数据数组/对象的情况下隐藏某些列
- 如何使用for循环语句通过Ajax发送大数据数组
- 压缩 JS 中的数据数组
- 传递的参数D3提示回调是完整的数据数组
- 如何在数据数组的每次迭代中创建一个内容为“i+1”的新 HTML 元素
- 在 laravel 4 上使用循环将数据数组存储到单个数组中
- 为什么它说输入数据数组的格式不正确 jqchart.
- Javascript - 使用变量 RegExp 匹配数据数组中的多个关键字
- 尝试将数据数组设置为从视图调用函数后$scope
- 如何在 PHP 中创建 jqplot 数据数组
- 如何使用该数据数组从左向右移动画布
- 如何根据数字列从 Parse 中对数据数组进行排序
- 为什么 php json 响应不会将数据数组发送回 ajax jquery 请求
- 如何将内容添加到 JQuery Flot 图表数据数组工具提示