1
我正面临一个奇怪的问题,其中ajax请求没有完成,当后续的请求被做出。jQuery ajax请求没有完成
当第一次加载网页时,ajax调用正常工作。但是如果我在不刷新页面的情况下调用相同的方法,那么请求永远不会完成,甚至Apache也没有响应。我检查apache的错误日志,发现如下条目:
[Tue Nov 01 16:41:42 2011] [error] server reached MaxClients setting, consider raising the MaxClients setting
这里是我试图执行jQuery代码:
(function($) {
$(function(){
form = $('form.crud');
$("#end_date").datepicker({dateFormat: 'yy-mm-dd'});
/** Contract Comments **/
$('#actionbar ul li:nth-child(1) a').colorbox({
scrollable: false,
innerWidth: 600,
innerHeight: 280,
href: SITE_URL + 'admin/contracts/comments/create_ajax',
onComplete: function() {
$.colorbox.resize();
$('form#comments').removeAttr('action');
$('form#comments').live('submit', function(e) {
var form_data = $(this).serialize();
$.ajax({
url: SITE_URL + 'admin/contracts/comments/create_ajax',
type: "POST",
data: form_data,
success: function(obj) {
if(obj.status == 'ok') {
$.colorbox.close();
} else {
$('#cboxLoadedContent').html(obj.message + obj.form);
$('#cboxLoadedContent p:first').addClass('notification error').show();
}
}
});
e.preventDefault();
});
}
});
});
})(jQuery);
看来浏览器充斥多余的请求的服务器。是否是有意义的增加MaxClients的数(目前为256 prefork的MPM和300工人MPM。
我将console.log添加到live函数并重新测试它。下面是我发现的行为:在第一次请求期间,一切正常,并且单个请求正常工作,并且在完成ajax请求后,colorbox被关闭。第二个请求也完成了,但这次有两个请求被发送到服务器。第三个要求根本没有完成。我需要更好地理解live()方法,然后再回到你身边。 – libregeek