我正在使用以下代码通过AJAX提交表单:
$( 'form' ).submit(function(e) {
$.ajax({
type: 'POST',
url: ajax_url,
dataType: 'json',
data: {
'action': 'my_action',
'str': $( 'form' ).serialize()
},
success: function( data ) {
// Do something here.
},
error: function( data ) {
// Do something here.
}
});
return false;
});
背景
我的PHP处理程序执行各种任务,然后发回响应。然后,我可以data
在成功或错误函数中执行某些操作。
我的问题
当用户双击表单的“提交”按钮时,将发生两次AJAX调用,这将导致我的PHP处理程序中的代码执行两次。
我的问题
如果用户双击提交,如何避免我的代码执行两次?
当AJAX调用再次出现时,请先禁用首次单击的“提交”按钮,然后重新启用它。
例如:
$( 'form' ).submit(function(e) {
var $form = $(this);
$form.find('submit').attr('disabled', true);
$.ajax({
type: 'POST',
url: ajax_url,
dataType: 'json',
data: {
'action': 'my_action',
'str': $( 'form' ).serialize()
},
complete: function() {
$form.find('submit').removeAttr('disabled');
},
success: function( data ) {
// Do something here.
},
error: function( data ) {
// Do something here.
}
});
return false;
});
本文向大家介绍如何避免回调地狱?相关面试题,主要包含被问及如何避免回调地狱?时的应答技巧和注意事项,需要的朋友参考一下 你可以有以下方式避免回调地狱 模块化:将回调函数转换为独立的函数 使用流程控制库,例如[aync] 使用Promise 使用aync/await 使用来计算生成器或Promise 解析:这个问题有很多种答案,取决你使用的场景,例如ES6, ES7,或者一些控制流库。
问题内容: 当我打开多个流并且必须获得一个绝对事件来完成逻辑时,如何避免使用类似递归的结构。 我有几个文件必须通过tp进行一些处理。如何设置一个事件,告诉我所有这些事件何时完成?目前,我得到的是每个事件都是单独的。 我绝对可以同时开始每个视频流。我只需要以某种方式收集结局? 我可以为每个事件调用一个函数调用并对其进行计数……虽然听起来很hacky? 我觉得有办法兑现诺言,但我不知道怎么做。 问题答
问题内容: 我正在构建一个Web应用程序,该应用程序需要同时使用jquery ajax简短形式进行大约28000个数据库调用。 它可以正常处理大约6000个调用,但随后浏览器在浏览器控制台中向我提供了大约20000以下错误(每个调用一个): POST(我的数据库调用)网:: ERR_INSUFFICIENT_RESOURCES 有谁知道如何解决这个问题?也许要创建一个缓冲区或什么? 谢谢! 编辑1
问题内容: 我从以下代码调用函数: 我的功能是 我怎么只能拨打一次ajax电话?所以当内容被加载并且页面不被拒绝时不加载ajax吗?我尝试做布尔变量,但什么也没做,我支持这是因为我调用了everytime函数。请给我一个想法。 谢谢 问题答案: 当您想对该事件做某事时。 确定何时已加载数据。 或在您想一次调用时使用。 参考
我有以下代码。 HTML
问题内容: 我正在尝试通过从客户端向服务器发送密钥和随机数来认证用户。 我的代码未向我显示客户端的响应。执行下面的代码时,我得到了一个空指针异常。 问题答案: 解决大多数问题的固定步骤: 阅读堆栈跟踪以确定哪一行代码引发NPE 在该行代码处设置一个断点 使用调试器,在遇到断点时,确定该行中的对象引用是 弄清楚为什么引用该文件(到目前为止,这是唯一实际的困难部分) 解决根本原因(也可能很困难)