多个AJAX(jquery)调用导致极端缓慢和崩溃

时间:2009-06-10 14:46:49

标签: jquery ajax performance

我写了一些代码,要求用户输入日期范围并单击下一步按钮。这会触发对文件的AJAX调用,该文件会确定那些日期中包含的日期并将其打印到屏幕上。

如果用户更改日期并再次按“下一步”,则会再次进行计算。在连续几次这样做之后,它开始运行得非常慢,最终它会一起崩溃浏览器。

有谁知道为什么会这样,以及我可以做些什么来解决它?

非常感谢你的时间。

$("#list").ajaxComplete(function(request, settings){
     $('#addNewDays').bind('submit', function() {
            $(this).ajaxSubmit(function() {
                  $('#dateDisplay').load('calculateDays.php?employeeId=' + $('#employeeId').val() + '&fromDay=' + $('#fromDay').val() + '&toDay=' + $('#toDay').val());
            });
            return false; // <-- important!
     });
});

3 个答案:

答案 0 :(得分:0)

您可以在请求开始时禁用该按钮,然后在请求完成后重新启用它。

答案 1 :(得分:0)

function enableMyButton(){
    $("#myNextButton").attr('disabled','false');
}

$("#myNextButton").click(function(){
    $("#myNextButton").attr('disabled','true');
    // do ajax stuff, set the callback function to enableMyButton
});

这样的事情对你说得对。

答案 2 :(得分:0)

为什么每次点击时都会将提交事件重新附加到按钮?我认为这是因为按钮正在被新内容替换。如果是这样,那么限制片段将回到日期,而不是其他任何东西。