如何限制每个自定义时间的 AJAX 请求
How to limit AJAX requests per custom time
如果我有一个搜索框,可以加载每个keyup事件的建议。我认为对我的服务器来说,在每个 keyup 事件上响应每个请求会变得最糟糕,这可能是一秒或更长时间的 10 次左右。我的意思是应该有一些 AJAX 请求限制函数来限制每秒或任何特定时间的请求。你能通过编码示例告诉我如何限制 ajax 请求吗?
第二件事,我想分享一下,如果我们使用 JSP 来限制 AJAX 请求。将JSP作为客户端语言是一个好主意,恶意用户可以轻松删除那些ajax请求限制函数并破坏服务器。
或!有什么补救措施吗?
感谢您的阅读。
你可以自己写一个去抖方法:
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);
或者,您可以使用下划线来限制键控事件:
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);
您需要设置一个计时器,该计时器将在每次发生密钥事件时重置。 如果在计时器关闭之前没有按下任何键,则发送您的 AJAX 请求。
相关文章:
- ajax请求的顺序总是不同的
- 从ajax请求中获取javascript对象
- Ajax请求文档就绪会导致jquery加载缓慢
- MockJax没有在JavaScript应用程序中发送对我AJAX请求的响应
- 正在传递JSONP标头's数据参数到另一个文件中的AJAX请求
- JavaScript代码未正确检查ajax请求
- "日期“;AJAX请求返回的类型值未定义
- 在等待ajax请求时显示微调器并禁用页面
- 跨域ajax请求
- Ajax请求返回空的数据字符串,但首先得到了正确的数据
- Javascript-如何让脚本与Ajax请求的数据一起运行
- ajax请求成功,但可以'我看不到我的数据
- 如何将给定的curl命令复制为jquery ajax请求
- 为什么我能够从javascript控制台发送跨域ajax请求
- 一台特定计算机的Ajax请求数据未定义/失败
- 获取ajax请求的请求头
- 原型Ajax请求参数为嵌套json
- 可以't从AJAX请求中筛选数据
- jQuery Mobile Collapse上的AJAX请求
- 暂停函数执行流程,直到ajax请求完成