我正在开发一种自动完成搜索选项,为此,我使用了jquery's abort function,因为我需要中止前一个调用,让新调用在每个keypress上开始,下面是代码
if(ajaxCall) ajaxCall.abort();
ajaxCall = $.ajax({
url: '<?php echo base_url(); ?>welcome/' + target,
beforeSend: function() {},
complete: function() {},
data: data,
type: 'post',
success: function(result) {
....
}
});虽然它工作得很好,但是,是否关心它的使用是否可以使用这种方法,因为我在firebug控制台中看到了许多中止的调用?我认为中止的调用不是从服务器上真正中止的,而是只有从浏览器中才是正确的?
有没有其他方法可以替代这种方法,或者使用这种方法可以吗?
发布于 2012-07-10 18:05:06
当您调用abort()时,HTTP连接将被终止。这是否会停止您的PHP脚本(看起来您正在使用CodeIgniter)取决于您的服务器设置,但默认值是,是的。
但是,无论服务器是否完成请求,其结果都永远不会发送到客户端,因此永远不会显示结果。
然而,我会问你为什么要放弃每一个请求。如果我在编写自动完成的代码,我要么在发送请求之前检测到一段时间的不活动(例如用户停止键入),要么让请求完成并显示;一些结果(即使它们是1个字符的旧结果)总比没有结果好,对吧?
https://stackoverflow.com/questions/11410911
复制相似问题