Javascript 每个循环的JQuery,延迟不适用于post请求
我必须解析30多个对象并将它们发布到php文件中。有时我会收到一个错误,因为每个函数的速度都很快。我试图通过实现一个延迟函数来解决这个问题(就像这里提到的:)。 这是我的代码:Javascript 每个循环的JQuery,延迟不适用于post请求,javascript,jquery,performance,Javascript,Jquery,Performance,我必须解析30多个对象并将它们发布到php文件中。有时我会收到一个错误,因为每个函数的速度都很快。我试图通过实现一个延迟函数来解决这个问题(就像这里提到的:)。 这是我的代码: $( "#rules_textfield>div" ).each(function( index ) { var delay = (function(){ var timer = 0;
$( "#rules_textfield>div" ).each(function( index ) {
var delay = (function(){
var timer = 0;
return function(callback, ms){
clearTimeout (timer);
timer = setTimeout(callback, ms);
};
})();
delay(function(){
$.post( "getdata.php", { 'parameter1': parameter1, 'parameter2': parameter2})
.done(function( data ) {
$("#logs_result").append(data);
});
}, 1000);
});
但它似乎只适用于1次迭代。在此之后的所有迭代都没有延迟。您没有按照相关代码中提到的完全相同的方式进行。我会从你的代码中删除一些东西
clearTimeout()
,因为它在setTimeout完成后无论如何都会被执行setTimeout()
的函数time+=500都会添加到计时器中代码>
所以,就这样吧
var time = 1000;
$( "#rules_textfield>div" ).each(function( index ) {
setTimeout(function(){
$.post( "getdata.php", { 'parameter1': parameter1, 'parameter2': parameter2}).done(function( data ) {
$("#logs_result").append(data);
});
}, time);
time += 1000; //to ensure that delay is introduced for every call
});
您的操作方式与相关代码中提到的完全不同。我会从你的代码中删除一些东西
不需要clearTimeout()
,因为它在setTimeout完成后无论如何都会被执行
无需返回只启动setTimeout()
的函数
再看一下这个工作示例中的代码,它每次time+=500都会添加到计时器中代码>
所以,就这样吧
var time = 1000;
$( "#rules_textfield>div" ).each(function( index ) {
setTimeout(function(){
$.post( "getdata.php", { 'parameter1': parameter1, 'parameter2': parameter2}).done(function( data ) {
$("#logs_result").append(data);
});
}, time);
time += 1000; //to ensure that delay is introduced for every call
});
你可以使用这个插件
提供了易于使用的方法来定义迭代、超时、间隔、延迟以及基于事件的循环和处理程序,这些方法与jQuery的所有内容一致
这里有一个CDN链接:
例子
$(函数(){
$('#rules_textfield>div')。每个($)。等待(1000,函数(索引){
$('#logs_result')。追加($(''.html(this.html());
});
});代码>
福
酒吧
噢
拉布
您可以使用该插件
提供了易于使用的方法来定义迭代、超时、间隔、延迟以及基于事件的循环和处理程序,这些方法与jQuery的所有内容一致
这里有一个CDN链接:
例子
$(函数(){
$('#rules_textfield>div')。每个($)。等待(1000,函数(索引){
$('#logs_result')。追加($(''.html(this.html());
});
});代码>
福
酒吧
噢
拉布