- 浏览: 98565 次
- 性别:
- 来自: 无锡
文章分类
最新评论
ajax同步异步参数async(在debug下step by step运行正常,正常发布运行不正常)
- 博客分类:
- JS
//遇到的问题,在debug下step by step运行正常,正常发布运行不正常,ajax返回的数据有问题。在ajax中添加async: false,程序变正常 以下是知识点。 这其中涉及到代码的顺序问题,有时后台还未返回数据,但已执行后面代码, 所以就会造成取不到值 $.ajax({ type: "post", url: "admin/PfmOptionRuleItem.do", success: function(data){ $("#ruleItem").val(data.ruleItem); //① } }); return $("#ruleItem").val(); //② 如果①还未从后台返回数据 此时执行②就获取不到值 Ajax的第一个字母是asynchronous的开头字母,这意味着所有的操作都是并行的,完成的顺序没有前后关系。 $.ajax()的async参数总是设置成true,这标志着在请求开始后,其他代码依然能够执行。 如果把这个选项设置成false,这意味着所有的请求都不再是异步的了,这也会导致浏览器被锁死。 虽然官方不建议这么干,只是不能用太多,否则会造成用户体验不佳。 alert("setp 1"); $.ajax({ url: "admin/PfmOptionRuleItem.do", async: false, success: function(data){ alert("hello ajax"); //① } }); alert("setp 2"); //② 当把asyn设为false时,这时ajax的请求时同步的,也就是说,这个时候ajax块发出请求后, 他会等待在①这个地方,不会去向下执行②,直到①执行完毕 此时依次执行顺序为 setp 1 hello ajax setp 2 如果async为true 则执行顺序为 setp 1 setp 2 hello ajax 总结一下: 1.ajax默认所有请求都是设置为异步的,如果需要同步,则设为false 2.如果请求是异步的,不能在回调之外直接拿到返回的data 3.如果设为同步的话,会阻塞后面的代码,也就是说如果这个请求需要执行30秒,就必须等30秒执行完之后,才能继续执行下面的 4.同步不支持跨域请求和数据类型:’jsonp'请求 5.如果将请求设置为同步的话,则不支持延迟方法,不能使用延迟方法$.Deferred,只能使用success/error/complete来代替比如deferred.always()/$.when等方法
发表评论
-
js两浮点数加减乘除
2018-02-12 17:53 495页面上输入两个数, 进行运算 //加 func ... -
js判断浮点类型相等, 相加, 相减
2018-02-12 16:38 737// 首先保留两位小数 var settleTotalA ... -
获取两个数组的交集
2017-05-03 14:38 355/* finds the intersection o ... -
request.getParameterValues与request.getParameter区别
2017-03-10 18:13 534一、 简单的对比 request.getParamete ... -
ajax form表单序列化 追加字段以及中文乱码问题
2017-03-09 11:47 875function saveProDes() { va ... -
ajax json的遍历,长度等
2017-03-08 15:06 1086//json对象 一、$.each遍历json对象 查看一 ... -
setTimeout()
2017-03-06 18:15 372JavaScript里的这两个定时器函数,大家一定耳熟能详: ... -
JS Replace 全部替换字符 用法
2017-01-10 10:14 375<script language="javas ... -
js文本框或者按钮鼠标悬停提示说明文字
2016-12-22 17:21 1108function title_show(fileId,Inve ... -
jQuery对select遍历option(添加、移除)
2016-12-22 17:09 5601. $("#select_id").ap ... -
js中没有equals方法,用==比较字符串
2016-11-28 21:28 626在 javaScript或者jQuery中字符串比较没有equ ... -
split判断小数点前数字(截取字符串)
2016-11-02 10:08 1047方法一:找到小数点位置然后截取 String number ... -
JS Date()对象
2016-09-21 14:23 446//使用 getDay() 和数组来显示星期,而不仅仅是数字。 ... -
window.opener.location.reload();弹出确认对话框
2016-09-20 17:53 1081window.opener.location.reload() ... -
addEventListener() 方法用于向指定元素添加事件句柄。
2016-09-15 17:11 442就是在JS中给HTML增加事件 <!DOCTYPE ht ... -
JavaScript 是脚本语言。浏览器会在读取代码时,逐行地执行脚本代码。而对于传统编程来说,会在执行前对所有代码进行编译。
2016-09-15 15:55 384JavaScript 是脚本语言。浏览器会在读取代码时,逐行地 ... -
element.src.match("bulbon")
2016-09-15 14:51 2295<!DOCTYPE html> <html ... -
disabled和readonly的区别
2016-07-13 16:00 349Readonly和Disabled它们都 ... -
<td align="center"> </td>不居中
2015-12-14 11:26 676<table> <tr> ... -
JS indexOf()
2015-12-11 11:37 531<script type = "text/j ...
相关推荐
在本文中,我们将详细讲解在jQuery的ajax方法中如何使用async参数控制请求是同步还是异步。 首先,我们需要理解什么是同步和异步请求。异步请求是指当一个请求发送给服务器后,浏览器不会等待服务器的响应,而是...
javascript发送ajax请求,获取返回值res,async 同步/异步 var res = sendRequest({ url : "1.php", //necessary method : "post", params : { param1 : "123", param2 : "234" }, async : false });
jquery中ajax方法有个属性async用于控制同步和异步,默认是true,即ajax请求默认是异步请求,有时项目中会用到AJAX同步。这个同步的意思是当JS代码加载到当前AJAX的时候会把页面里所有的代码停止加载,页面出现假死...
之前一直在写JQUERY代码的时候遇到AJAX加载数据都需要考虑代码运行顺序问题。最近的项目用了到AJAX同步。这个同步的意思是当JS代码加载到当前AJAX的时候会把页面里所有的代码停止加载,页面出去假死状态,当这个AJAX...
在Web开发中,使用AJAX与服务器进行异步通信是常见的需求,jQuery为此提供了便捷的$.ajax()方法。但开发者们可能会遇到一个问题:在$.ajax()方法中,尽管我们试图通过return语句返回一些值,却常常发现这些返回值...
需要注意的是,在异步模式下,由于`alert(a);`语句会在`$.ajax()`请求完成之前被执行,因此`a`的值始终为1;而在同步模式下,`alert(a);`将会在`$.ajax()`完成后执行,此时`a`已经更新为服务器返回的数据。 #### ...
在正常情况下,我们推荐使用异步请求,因为它们不会阻塞用户界面,从而允许用户继续与页面上的其他元素交互。然而,在某些特定的场景中,开发者可能会选择同步请求。本文将探讨由同步AJAX请求造成的浏览器假死现象,...
2. **回调处理**:在异步请求中,要处理服务器的响应,必须在回调函数中进行。确保你定义了一个合适的回调函数,并在其中处理数据。 3. **错误处理**:同时,也要关注`success`和`failure`回调,以便在请求成功或...
AJAX允许网页在不重新加载整个页面的情况下与服务器交换数据并更新部分网页内容,提升了用户体验。以下是对"jquery封装下的ajax同步加载代码实例"的详细解释: 首先,jQuery的$.ajax()函数是进行AJAX请求的核心方法...
异步(async=true)的AJAX请求会在后台发送请求,不阻塞其他JavaScript代码的执行。这意味着在请求的等待过程中,用户可以与页面的其他部分交互,浏览器也可以同时进行其他任务处理。异步操作的优点是用户体验好,对...
虽然同步 AJAX 请求在特定场景下非常有用,但考虑到它可能导致的性能问题和用户体验下降,建议仅在确实必要的场合使用。同时,在使用同步请求时要注意跨浏览器兼容性问题,并采取相应的解决方案。随着技术的发展,...
它允许网页在不重新加载整个页面的情况下与服务器交换数据并更新部分网页内容,从而提升了用户体验。本示例代码是基于C#编程语言,利用Ajax技术实现的PostBack Async Callback程序,这通常用于ASP.NET开发中。 在...
Ajax代表了异步JavaScript和XML,它允许网页在不重新加载整个页面的情况下,更新网页的部分内容。Ajax的核心技术是XMLHttpRequest对象,这是一个预留给开发者使用的接口,可以通过JavaScript来开启一个服务器端请求...
标题中的知识点包括“jquery ajax 同步异步执行”的解决方案,即通过设置`async`属性的不同值来控制AJAX请求是同步执行还是异步执行。描述部分讲述了同步执行的一个关键点,即在AJAX请求完成前,程序会等待,不会...
AJAX(Asynchronous JavaScript and XML)是一种技术标准,允许网页异步加载数据,也就是说网页在不重新加载整个页面的情况下,对用户界面进行更新。它是一种在无需重新加载整个网页的情况下,能够更新部分网页的...
Ajax-render_async.zip,render_async允许使用ajax异步包含页面,ajax代表异步javascript和xml。它是多种web技术的集合,包括html、css、json、xml和javascript。它用于创建动态网页,其中网页的小部分在不重新加载...
在Web开发中,Ajax(Asynchronous JavaScript and XML)是一种创建动态网页的技术,允许在不刷新整个页面的情况下与服务器交换数据并更新部分网页内容。这里提到的"ajax00009_async_trigger"是一个自定义的Ajax框架...
然而,当设置`async: false`参数时,`Ext.Ajax.request`将变为同步请求。同步请求会使得浏览器在等待服务器响应之前挂起,直到收到回应或请求超时。这种方式在某些场景下是有用的,比如在需要确保数据加载完成后再...
在异步模式下,由于Ajax请求返回的时间不确定,循环会不断执行,导致index变量不断增加,形成了死循环。而在同步模式下,由于JavaScript会等待Ajax请求完成,flag变量被设置为false后,循环会停止,从而避免死循环的...
总的来说,虽然同步Ajax请求在某些特定情况下有其用武之地,但在多数现代Web应用中,推荐使用异步请求配合回调函数或Promise来确保良好的用户体验。在实际开发中,应谨慎考虑是否使用同步请求,并充分评估其潜在影响...