通过ajax向后台发送和接收数据时,常常会出现同步异步问题。由于ajax是默认异步加载的,但有时候需要同步或者同步的效果,有以下两种解决方案。
方案一:将某些方法放在回调函数中执行,即,等到从后台返回成功后再执行。
例:
$.getJSON("/data-access/sens-config/IPandPortSel",{},function(resp){ if(resp.code==0){ $.each(resp.data,function(i,obj){ option_net_type += addOption(obj); }); $("#edit-addr_id").append(option_net_type); addr_idOld = $('#edit-addr_id').val(addr_id); } });
红色的部分必须在数据返回成功后执行,如果放在if(resp.code==0){}外面((但放在$.getJSON();后面)会存在数据还没从后台返回,就已经执行到红色部分代码了。
方法二:利用标准ajax传递方式
$.ajax({ type : "post", url : "/data-access/manufacturer/deleteBranch", data : data, async : false,//取消异步 success : function(resp){ if(resp.code==0){ if(ids.length>=currentListNum&¤tPage!=1){ currentPage = currentPage - 1; } var para = { mypara :currentPage, startPage : currentPage, }; $('div.page-box').data('myPage').setOptions({data: para}); } } });
注意:这种方式只是局部的同步传输方式,不会对其他传输造成影响,是比较安全和推荐的一种
方式。
还存在另外一种方式:
// $.ajaxSettings.async = false; // $.getJSON("/data-access/ip-config/deleteBranch",data,function(resp){ // if(resp.code==0){ // if(ids.length>=currentListNum&¤tPage!=1){ // currentPage = currentPage - 1; // } // var para = { // mypara :currentPage, // startPage : currentPage, // }; // $('div.page-box').data('myPage').setOptions({data: para}); // } // }); // $.ajaxSettings.async = true;
这种方式是全局的,不是很推荐使用,因为会对其他ajax传输造成影响。
以上所述是小编给大家介绍的Ajax同步和异步问题浅析,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!
本文向大家介绍Ajax同步和异步的区别,如何解决跨域问题相关面试题,主要包含被问及Ajax同步和异步的区别,如何解决跨域问题时的应答技巧和注意事项,需要的朋友参考一下 同步的概念应该是来自于OS中关于同步的概念:不同进程为协同完成某项工作而在先后次序上调整(通过阻塞,唤醒等方式).同步强调的是顺序性.谁先谁后.异步则不存在这种顺序性. 同步:浏览器访问服务器请求,用户看得到页面刷新,重新发请求,等
问题内容: 同步和异步AJAX调用有什么区别?何时使用同步以及何时异步? 问题答案: 在最基本的级别上,当您希望调用在后台发生时,您可以使用异步模式,而当您希望代码等待直到调用完成时,则可以使用同步模式。 异步模式是AJAX调用的常用方法,因为通常在事件上附加一个回调函数,以便您可以在服务器端数据就绪时进行响应,而不必等待数据到达。
本文向大家介绍python线程中的同步问题及解决方法,包括了python线程中的同步问题及解决方法的使用技巧和注意事项,需要的朋友参考一下 多线程开发可能遇到的问题 假设两个线程t1和t2都要对num=0进行增1运算,t1和t2都各对num修改1000000次,num的最终的结果应该为2000000。但是由于是多线程访问,有可能出现下面情况: 运行结果可能不一样,但是结果往往不是2000000。问
本文向大家介绍Spring注解和同步锁不能同步问题解决,包括了Spring注解和同步锁不能同步问题解决的使用技巧和注意事项,需要的朋友参考一下 这篇文章主要介绍了Spring注解和同步锁不能同步问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 结论:如果在service层的方法上同时使用事务和同步锁无法保证数据同步。 上面这个例子无法保证数
本文向大家介绍jquery中的ajax同步和异步详解,包括了jquery中的ajax同步和异步详解的使用技巧和注意事项,需要的朋友参考一下 之前一直在写JQUERY代码的时候遇到AJAX加载数据都需要考虑代码运行顺序问题。最近的项目用了到AJAX同步。这个同步的意思是当JS代码加载到当前AJAX的时候会把页面里所有的代码停止加载,页面出去假死状态,当这个AJAX执行完毕后才会继续运行其他代码页面假
本文向大家介绍浅析JSONP之解决ajax跨域问题,包括了浅析JSONP之解决ajax跨域问题的使用技巧和注意事项,需要的朋友参考一下 JSON和JSONP JSONP和JSON好像啊,他们之间有什么联系吗? JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。对于JSON大家应该是很了解了吧,不是很清楚的朋友可以去json.org上了解下,简单易