【问题标题】:Ajax call delayAjax 调用延迟
【发布时间】:2011-12-17 11:16:30
【问题描述】:

我有以下 jquery 代码,它们基本上充当输入的自动完成功能。然而,当用户以相当快的速度(或某些人以正常速度)输入内容时,下拉菜单会在不同的自动完成之间来回闪烁。就像如果我很快输入“快乐”,它可能会在“快乐”和“快乐”之间闪烁。我认为这是由发送和接收数据之间的延迟引起的。有什么办法可以解决这个问题吗?

var textvalue= $(this).val();
    $("#facebookDropdown").html("
    loading...
    ");
     $.ajax({
    type: "GET",
    url: "../invites/afterauth.php",
    data: "q=" + textvalue,
    success:
    function(msg){ 
    $("#facebookDropdown").html(msg)}   
    })

【问题讨论】:

标签: jquery ajax autocomplete delay


【解决方案1】:

对于您发送的每个请求,我都会中止您之前的 ajax 请求。这样他们就不会互相踩踏。另一种选择是在每次按键后等待几毫秒,以查看在发送 ajax 请求之前是否还有另一个按键。前者响应更快但导致更多服务器负载,后者响应更慢但导致服务器负载更少。事实上,如果你愿意,你可以两者都做。

if(previousRequest) {
  previousRequest.abort();
}

previousRequest = $.ajax(...

更多信息在这里: Abort Ajax requests using jQuery

【讨论】:

    猜你喜欢
    • 2015-07-20
    • 2014-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-28
    • 2012-06-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多