太多Ajax请求导致服务器故障

时间:2013-09-21 22:15:28

标签: jquery ajax

我一直试图找出我遇到的一个相对较新的问题。我有一个基本表,允许用户将项目拖放到行中。我正在使用查询来遍历每一行,如果丢弃的项目尚未在那里,我会调用

$.post( "submitassignment.php", {type: assignment[0], id : assignment[1], name: username[1], order: order} );

根据具体情况,此行将被调用10到100次。在大约第60次(不总是相同)之后,我开始在我的网络面板上看到chrome Method Post - Status(失败) - Type Pending。

可能导致此问题的原因是什么?

当用户将项目放入表格时调用的完整函数是:

function removeAll( item, name ) {
    console.log('remove all');
    assignment = item.attr('id').split('id');
    var all = $('.container:visible')
    all.each(function(){                //remove all only removes visible users
        var fullId = $(this).attr('id').split('id');
        var uId = fullId[1];
        console.log(uId);
        var removedItem = $(this).find('#' + assignment[0] + 'id' + assignment[1] + 'id' + uId);
        if(removedItem.length){
        removedItem.closest('div').removeClass('full');
        removedItem.closest('div').addClass('open');
        removedItem.fadeOut();
        $.post( "removeall.php", {type: assignment[0], id: assignment[1], userId: uId} );
        }
    });     
}

removeall.php文件的代码是

<?php session_start();
include('../includes/teacherstartup.php');
$type = $_POST['type'];
$id = $_POST['id'];
$studentId = $_POST['userId'];
deleteAssignment($studentId, $userGradeLevel, $userSubject, $type, $id);
?>

1 个答案:

答案 0 :(得分:0)

您是否检查过服务器错误日志?增加超时或内存限制...在Apache上启用keep-alive。显然请求堆积,并且在某些时候您的服务器无法响应。