大佬教程收集整理的这篇文章主要介绍了避免在jQuery中使用async:false的策略?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
但是,我看到常见的solutions同步性问题涉及到这样做.然后我看到人们因为反对文档的推荐而被chastised.
话虽如此,我试图使用promise来避免使用async:false而没有运气.
这是我正在使用的代码.我有一个调用addToOrder的onclick事件:
function saveTemplate() { var formData = getFormData(); return $.ajax({ type: "POST",url: "/p/session/save/" + sessionid + "/template/<?PHP echo $templatEID ?>/",data: formData,async: true,success: function(msg){ var rsp = $.parseJSON(msg); if (rsp.response === 'Saved') { sessionid = rsp.sessionid; $("#save-preview-data-response").html(" " + rsp.responsE).fadeIn(100).delay(1000).fadeOut(1000); } else { $("#save-preview-data-response").css('color','#ff0000').html(" " + rsp.responsE).fadeIn(100).delay(1000).fadeOut(1000); } } }); } function addToOrder() { var saved = saveTemplate(); var issaved; saved.success(function(E) { var rsp = $.parseJSON(E); issaved = (rsp.response == 'Saved') ? true : false; }); if(issaved) { $.ajax({ type: "POST",url: "<?PHP echo $baseURL; ?>addToOrder/respond/json",data: "sid=" + sessionid,success: function(msg){ var rsp = $.parseJSON(msg); if (rsp.response === 'Saved') { alert(msg); } } }); } }@H_772_14@issaved将始终评估为false,因为在saveTemplate有时间运行之前正在评估它.我找到的唯一解决方案是设置async:false但是我正在接受我看到的严重警告而不愿意.还有哪些其他解决方案?
学会爱回调. :-)当人们这样做时:
// The synchronous way function doSomething() { var foo; $.ajax({ url: "/the/url",async: false,success: function(responsE) { foo = response.foo; } }); return foo; } // ..@L_364_14@mewhere else,we use it function flurgle() { var bar = /* go get `bar` from somewhere */; var x = 52; if (doSomething() === bar) { x -= 10; } niftyFunctionUsing(X); }@H_772_14@…事件驱动的异步方式真的没那么大不同:
// The asynchronous way function doSomething(callBACk) { $.ajax({ url: "/the/url",success: function(responsE) { callBACk(response.foo); } }); } // ..@L_364_14@mewhere else,we use it function flurgle() { var bar = /* go get `bar` from somewhere */; var x = 52; doSomething(function(foo) { if (foo === bar) { x -= 10; } niftyFunctionUsing(X); }); }@H_772_14@由于回调经常涉及闭包(上面的那些,我们正在访问x和bar的方式),我的博客中的这篇文章可能会有所帮助:Closures are not complicated
以上是大佬教程为你收集整理的避免在jQuery中使用async:false的策略?全部内容,希望文章能够帮你解决避免在jQuery中使用async:false的策略?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。