【问题标题】:How to limit AJAX requests per custom time如何限制每个自定义时间的 AJAX 请求
【发布时间】:2012-04-27 12:58:43
【问题描述】:

如果我有一个搜索框,它会为每个 keyup 事件加载建议。我认为对于我的服务器来说,响应每个 keyup 事件的每个请求会变得最糟糕,这可能在一秒钟或更长时间内大约 10 次。我的意思是应该有一些 AJAX 请求限制功能来限制每秒或任何特定时间的请求。能否通过编码示例告诉我如何限制 ajax 请求?

第二件事,如果我们使用 JSP 来限制 AJAX 请求,我想分享一下。将 JSP 用作客户端语言是否是个好主意,并且恶意用户可以轻松删除那些 ajax-request-limiting 函数并破坏服务器。

或者!有什么补救办法吗?

感谢阅读。

【问题讨论】:

标签: javascript ajax jsp request limit


【解决方案1】:

你可以自己写一个去抖方法:

var timer = null;
searchInput.addEventListener('keyup', function (evt) {
    clearTimeout(timer);
    timer = setTimeout(function () {
        // this event listener will postpone its execution until after 1 second have elapsed since the last time it was invoked
        // send your ajax request here
    }, 1000);
}, false);

或者你可以使用underscore来限制keyup事件:

searchInput.addEventListener('keyup', _.debounce(function (evt) {
    // this event listener will postpone its execution until after 1 second have elapsed since the last time it was invoked
}, 1000), false);

【讨论】:

    【解决方案2】:

    您需要设置一个计时器,该计时器将在每次发生关键事件时重置。如果在计时器结束之前没有按下任何键,则发送您的 ajax 请求。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-02-04
      • 1970-01-01
      • 2016-04-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多