jquery ajax abort

时间:2012-07-10 10:03:11

标签: jquery

我正在开发一种自动填充搜索选项,为此我使用了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控制台中看到很多中止的调用?我认为中止的调用并不是从服务器中逐字逐句中止的,但是我只是从浏览器中删除了吗?

这种方法还有其他替代方法,或者使用它是否合适?

1 个答案:

答案 0 :(得分:0)

当您致电abort()时,HTTP连接将被终止。这是否会停止你的PHP脚本(看起来你正在使用CodeIgniter)取决于你的服务器设置,但默认是,是的。

无论服务器是否完成请求,其结果都永远不会发送到客户端,因此结果永远不会显示

但是,我会问为什么你正在中止每个请求。如果我正在编写自动完成代码,我会在发送请求之前检测到一段时间不活动(例如用户停止输入),允许请求完成并显示; 一些结果(即使它们只有1个字符)比没有结果好,对吗?