我正在开发一种自动填充搜索选项,为此我使用了jquery's abort function
,因为我需要中止之前的调用并让新调用开始于下面的每个keypress
代码< / p>
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控制台中看到很多中止的调用?我认为中止的调用并不是从服务器中逐字逐句中止的,但是我只是从浏览器中删除了吗?
这种方法还有其他替代方法,或者使用它是否合适?
答案 0 :(得分:0)
当您致电abort()
时,HTTP连接将被终止。这是否会停止你的PHP脚本(看起来你正在使用CodeIgniter)取决于你的服务器设置,但默认是,是的。
无论服务器是否完成请求,其结果都永远不会发送到客户端,因此结果永远不会显示。
但是,我会问为什么你正在中止每个请求。如果我正在编写自动完成代码,我会在发送请求之前检测到一段时间不活动(例如用户停止输入),或允许请求完成并显示; 一些结果(即使它们只有1个字符)比没有结果好,对吗?