`
weitao1026
  • 浏览: 1074624 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

ajax 和post 可以设置它是否同步执行

 
阅读更多
ajax的async设置成false,为什么没效果

$.ajax( { async : false, type : "POST", dataType : "html", url : getURL() + "sysset/sysmonit/operation!check.action?id="+level.val(), success : function(json) { if(json==3){               alert(" 等于3就是不让过") return false; }}});alert("谁先");_
_________________________________________________________________返回的值是3,json=3,进入if,   alert(" 等于3就是不让过")这个也执行了,紧接的就是return false;按常理说,他不应该弹alert("谁先");,但是他弹出了“谁先”。。。求解!!!

你在回调函数里return是没有效果的




Jquery的同步和异步请求

    1 异步请求:
    1.1 $.ajax
       $.ajax({
                url : 'your url',
                data:{name:value},
                cache : false,
                async : true,
                type : "POST",
                dataType : 'json/xml/html',
                success : function (result){
                    do something....
                }
            });
    2 同步请求
    2.1 $.ajax
        $.ajax({
                 url : 'your url',
                 data:{name:value},
                 cache : false,
                 async : false,
                 type : "POST",
                 dataType : 'json/xml/html',
                 success : function (result){
                     do something....
                 }
             });
    2.2 $.post
       $.post(
                'your url',
                {name:value},
                function(data) {
                    do something...
                },
            'json/xml/html'
            );


最近在测试,发现有些效果不对,最后发现是post的执行顺序问题,所以研究了下,写了以下总结

1.post被请求多次,解决方法:

连接加入随机数 rand=""+Math.random()


复制代码
$.post("/Control/webControl.ashx?rand ="+Math.random(), { Method: "LoginIn", Parems: ps }, function (data, textStatus) {
                $("#divOver").css("visibility", "hidden");
                switch (data) {
                    case "1":
                        window.location = '/default.aspx';
                        break;
                    case "0":
                        $("#tips").text("找不到该用户");
                        u.focus();
                        changevcode();
                        errcount++;
                        break;
                    case "-1":
                        $("#tips").text("用户或密码错误");
                        changevcode();
                        c.val("").focus();
                        errcount++;
                        break;
                    default:
                        alert(data);
                }
            });

复制代码

2.因为post默认为异步请求,可是有时候我们会发现,本来要求请求马上出现,可是异步会导致后面突然再执行,这样就出问题了

所以,我们需要加入

$.ajaxSetup({  
            async : false 
        });

3.如果需要有些同步有些异步,那么我们应该使用最原始的ajax请求,然后把async设置为false


复制代码
$.ajax({ 
         type : "post", 
          url : "register/RegisterState", 
          data : "test=" + test, 
          async : false, 
          success : function(data){ 
            data = eval("(" + data + ")"); 
            aDataSet = data; 
          } 
     });

复制代码
分享到:
评论

相关推荐

    使用ajax的post同步执行(实现方法)

    使用Ajax的Post同步执行实现方法可以帮助我们在服务器端执行某些操作,并将结果返回给客户端。这种方法可以减少服务器端的负载和压力,并提高客户端的响应速度。 知识点: 1. Ajax的异步模式和同步模式。 2. 如何...

    Ext.Ajax.request2.x实现同步请求

    在EXTJS库中,`Ext.Ajax.request`是用于发送Ajax请求的核心方法,它支持异步和同步操作。本文将详细解析如何利用`Ext.Ajax.request`实现同步请求,并探讨其背后的原理和注意事项。 首先,我们需要理解Ajax的本质,...

    ExtJs Ajax 同步问题

    `Ext.Ajax.request()`方法是进行Ajax请求的核心函数,它接受一系列参数,包括URL、方法(GET或POST)、请求数据、回调函数等。同步与异步的控制则通过`async`参数来决定。默认情况下,`async`设置为`true`,意味着...

    AJAX同步或异步流程图

    3. **设置请求头**(可选):如果需要发送POST请求或者设置自定义头,可以使用`setRequestHeader()`方法。例如:`xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');` 4. **发送请求**:...

    extjs ajax同步请求所需js

    在使用`Ext.Ajax.request`方法时,设置`async`参数为`false`可以使请求变为同步。例如: ```javascript Ext.Ajax.request({ url: 'your-url', method: 'GET', async: false, // 设置为false表示同步请求 ...

    jquery封装下的ajax同步加载代码实例

    在Web开发领域,jQuery是一个非常流行的JavaScript库,它极大地简化了JavaScript操作,特别是处理DOM操作、事件处理以及,如本例所示,AJAX(异步JavaScript和XML)请求。AJAX允许网页在不重新加载整个页面的情况下...

    基于ajax相册系统

    2. **初始化请求**:通过XMLHttpRequest对象的open()方法设置请求类型(GET或POST)、URL以及是否异步执行。 3. **发送请求**:调用send()方法向服务器发送数据,对于GET请求,数据通常附在URL后面;对于POST请求,...

    AJAX访问PHP函数库AJASON的同步(非异步)版

    2. **配置请求**:设置HTTP方法(如GET或POST)、URL、同步标志(设置为true表示同步)以及可能的其他请求头。 3. **发送请求**:通过XMLHttpRequest对象的`open()`和`send()`方法启动请求。 4. **处理响应**:在`...

    AJAX 参考手册 ajax 教程

    - **打开连接**:调用 `open()` 方法,设置请求类型(GET、POST等)、URL 和是否异步执行。 - **发送请求**:使用 `send()` 方法发送请求。GET 请求通常不需参数,POST 请求则需传递数据。 - **监听状态变化**:通过...

    各种ajax提交demo

    创建XMLHttpRequest对象,然后设置其open()方法来指定请求类型(GET或POST)、URL以及是否异步执行。接着,使用send()方法发送请求,接收数据则通过onreadystatechange事件和readyState、status属性。 2. **GET与...

    实例详解Android Webview拦截ajax请求

    如果可以,那就需要一种在 JavaScript 和 Native 之间通信的桥梁(JavaScript Bridge),通过它,JavaScript 将请求信息传递给 Native,Native 完成真正的请求后再将结果数据传递给 JavaScript。 思路虽然简单,但...

    ajax视频教程1

    2. **初始化请求**:然后,我们调用XMLHttpRequest对象的open()方法,设置请求的类型(GET或POST)、URL以及是否异步执行。 3. **发送请求**:使用send()方法发送HTTP请求。如果是GET请求,通常直接发送null;如果是...

    14ajax课程_AJAX基础_

    AJAX的关键特性是异步性,这意味着请求发送后,浏览器不会等待响应,而是继续执行后续代码。这样,用户可以继续浏览页面,而不会感到卡顿。 ### 7. 错误处理 在使用AJAX时,必须考虑到可能出现的错误,例如网络...

    ajax资源包,jquery

    可以通过`async: false`设置为同步请求,但不推荐,因为它会阻塞浏览器直到请求完成。 6. **回调函数**:jQuery的Ajax方法允许定义success、error和complete回调,以便在请求完成后执行特定的代码。 7. **全局事件...

    ext-basex.js 进行Ext.Ajax.request 同步请求 FF无法正常

    4. **调整浏览器设置**:虽然不建议,但如果你必须使用同步请求,可能需要检查用户的Firefox设置,看是否允许同步XMLHttpRequests。不过这并不是一个长期解决方案,因为大多数浏览器会逐渐限制这种行为。 在`ext-...

    selenium-08-ajax的使用法术post请求.ev4.rar

    总的来说,通过结合Selenium的`WebDriverWait`和`ExpectedConditions`,我们可以有效地处理Ajax的异步特性,确保在进行下一步操作时,Ajax请求已经完成。在“selenium-08-ajax的使用法术post请求.ev4.mp4”视频中,...

    AJAX教案和例子

    2. **JavaScript调用**:通过JavaScript代码触发XMLHttpRequest对象,创建请求,设置请求方法(GET或POST)、URL和任何必要的数据。 3. **HTTP请求**:XHR对象向服务器发送HTTP请求,这个过程对用户来说是透明的,...

    unigui_ajax网页交互

    在Unigui中,可以通过设置`Async`属性控制请求是否异步执行。异步请求不会阻塞用户界面,提高了交互性。 7. **错误处理**: 处理可能出现的网络错误或服务器错误是必要的。Unigui的Ajax组件提供了`OnError`事件,...

    jq_ajax练习

    如果需要同步请求,可以在`.ajax()`中设置`async: false`,但这会导致浏览器冻结,应谨慎使用。 通过上述描述,"jq_ajax的练习"项目很可能是为了帮助学习者理解并实践如何使用jQuery的$.ajax()函数和其他相关方法来...

Global site tag (gtag.js) - Google Analytics