多次点击可防止AJAX请求

时间:2013-10-26 21:06:51

标签: jquery ajax google-chrome

我有多个按钮的页面,有时可以非常快速地点击 - 但是Chrome似乎可以保持速度?

$(document).ready(function() {
    $('.favorite-button').unbind('click').click(function() {
    addLine($(this).data('line-id'));
     });
});

addLine()函数:

function addLine(lineID) {
    $.ajax({
        type: 'POST',
        url: 'add-line.php',
        data: { lineID : lineID },
        success: function(server_response)  {
            $('#counter-lines').html(server_response);
        }
    });
}

我该怎么做才能让Chrome注册并完成每个ajax通话? 它似乎不是Chrome的限制 - 即使两次快速点击也会导致缺少ajax调用......

2 个答案:

答案 0 :(得分:0)

您似乎没有按顺序获得回复。

我看到你告诉服务器提供该行的ID。那么为什么不将发送的lineID保存在全局变量中,当你得到响应时,你可以看到它是否是对最近请求的响应。

像:

var latest_line = null;
    function addLine(lineID) {
            latest_line = lineID;
            $.ajax({
                type: 'POST',
                url: 'add-line.php',
                data: { lineID : lineID },
                success: function(server_response)  {
                    // Is this the most recent request?
                    if (latest_line == lineID)
                    {
                        $('#counter-lines').html(server_response);
                    }
                }
            });
        }

答案 1 :(得分:0)

您的代码必须是这样的:

update()

对我来说很好..;)