【问题标题】:How to prevent too frequent request in Ajax如何防止 Ajax 中的请求过于频繁
【发布时间】:2012-04-14 15:17:21
【问题描述】:

我正在使用 jQuery 将数据从表单提交到我的控制器文件。

它正在向数据库中添加一个喜欢的片段,但是,如何防止用户通过 ajax 脚本过于频繁地发送数据?

我的意思是,我可以点击表单中的提交按钮数千次 - 如何防止这种情况发生?那么例如,每 10 秒 1 个请求?

【问题讨论】:

  • 你必须防止在文件中被调用,因为 AJAX 所做的只是一个简单的请求,你也可以通过在地址栏中输入 URL 来调用它。您可以在被调用的文件中进行简单的 IP 或 cookie 检查。
  • 您可以在他们点击按钮时禁用该按钮,并在您收到 AJAX 响应时添加延迟回调函数以重新启用它。
  • @Andy 你能发布一个例子吗?

标签: php codeigniter jquery


【解决方案1】:

就在我的脑海中,我会说这样的话:

$("#button_id").one('click', DoSomething);    // attaches the function for ONE click

function DoSomething() {
    $.post("test.php", function(data) {
        alert("Data Loaded: " + data);
        $("#button_id").delay(10000).one('click', DoSomething);   // reattach the listener 
    });        
}

来源复制自this questionjQuery manual

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-03
    • 1970-01-01
    • 2011-09-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多