javascript - 快速重复ajax程序有什么危险吗?
问题描述
$('#gd').on('click', function(){
// move up and down DOM elements
// some ajax procedure to store new values on database (php/mysql)
});
长时间快速重复这个点击有什么危险吗?
例如 - 如果连接很差 - ajax 每次都不会完成吗?
我在我的实时服务器上进行了测试 - 似乎没有问题,但是......我仍然担心。
以及在这种情况下避免可能出现的问题的方法是什么 - 即如果用户不断快速单击#gd
按钮。
解决方案
这种“危险”可以更准确地描述为不受欢迎的行为。然而,这确实是一个应该被处理的问题——因为当只需要 1 个请求时发送多个请求会无缘无故地消耗客户端和服务器上的资源。
如果您想阻止用户在处理请求时单击按钮,请在客户端发送按钮后禁用该按钮,并在响应处理完成后重新启用它:
$('#gd').on('click', function(){
// 1. do some stuff with DOM
// 2. disable button + make ajax call
$.ajax({someRequestOptions})
.always(function() {
// 3. re-enable button
});
});
推荐阅读
- javascript - 使用内联 javascript 设置一些值
- c++ - 如何在directx/c++中进行平移/缩放操作
- javascript - Firebase 自定义操作网址中断验证
- android-studio - recyclerView.isLayoutFrozen 已弃用。Kotlin 中的替代方案是什么?
- mysql - 如何创建具有两个连接到同一个查找表的查询
- django - TypeError: 无法获取,我得到的错误,我使用 reactjs 作为前端和 django 作为后端
- python - 将清理后的 BS4 数据写入 csv 文件
- firebase - Firebase数据库规则阻止任何写入但只允许删除?
- karate - 我如何添加这个数组的所有值
- c++ - 将最大可能值设置为变量 C++