'锁定'a用户's在AJAX调用期间的操作
Technique for 'Locking' a User's Actions During AJAX Calls
我经常发现自己在设计对服务器、外部API、HTTP请求等进行AJAX调用的应用程序。问题是,当这种异步调用发生时,用户仍然可以点击进行相同AJAX调用或中断应用程序流的项目,但我想知道最被接受的方式是什么?
为了更具体地说,假设我有一个button
元素来进行AJAX调用,还有一个form
元素来更改我的应用程序用于AJAX调用的一些数据。设计按钮和表单函数以使它们在button's
AJAX调用过程中不起作用的最佳方法是什么?
实现所需功能的最佳方法是通过函数引导AJAX调用,这样您就可以在该函数中检查请求是否处于活动状态。下面是一个假设您使用JQuery:的示例
active_ajax_call = false;
function get_ajax(url, senddata) {
if(active_ajax_call == false) {
active_ajax_call = true;
$.ajax({
type: "POST",
url: url,
data: senddata
}).done(function (data) {
active_ajax_call = false;
console.log(data);
});
}
}
get_ajax("some_url", {name: "John", location: "Amsterdam"});
当然,向网站用户提供一个不错的ajax加载程序或其他东西,让他们知道数据正在被提取。
在按钮的处理程序中,禁用按钮(视觉上和功能上),然后执行AJAX调用。从AJAX调用返回,重新启用按钮。
这就是主要网站(例如PayPal)的做法。
相关文章:
- 如何使jQuery插件函数可调用以供独立使用,而不在集合上操作
- Rails操作只调用一次,但我在ajax中每秒钟都调用一次
- 如何使用Ajax调用特定的控制器和操作来重定向用户
- 无法在mvc视图中使用ajax调用获取操作返回的模型对象列表
- HTML class=Ajax操作,如何让类点击调用好的操作
- 控制台.log触发,但随后的 Jquery 调用不执行任何操作
- 是否可以将alertify.js的cancel按钮和onclose调用的操作分开
- 如何从 MVC4 链接调用 Javascript 方法(错误 JavaScript 运行时错误:对象不支持此操作)
- Rails:如何在jQuery(.js.erb)中调用“create”操作
- 如何重新加载调用部分视图的操作
- React/Redux 状态在第二次操作调用时为空
- 如何使用ROR从控制器操作调用javascript函数
- 表单操作调用按钮
- 从表单操作调用JS函数,然后从JS调用PHP
- 在对支柱 1 执行操作调用之前确认对话框
- 如何在 Yii 中通过操作调用 CJui对话
- EmberJS actions - 当包装在“actions”中时,从另一个操作调用一个操作
- ServiceNow UI操作调用客户端和服务器代码
- 在js文件中播放框架控制器操作调用
- 使用URL从html表单操作调用Java API时返回的响应