`

ajax同步请求和异步请求

    博客分类:
  • JS
 
阅读更多

ajax同步和异步的差异, 先看2段代码:

 代码一:

     

Synchronize = function(url,param) {
    function createXhrObject() {
        var http;
        var activeX = [ "MSXML2.XMLHTTP.3.0", "MSXML2.XMLHTTP", "Microsoft.XMLHTTP" ];
        try {
            http = new XMLHttpRequest;
        } catch (e) {
            for (var i = 0; i < activeX.length; ++i) {
                try {
                    http = new ActiveXObject(activeX[i]);
                    break;
                } catch (e) {}
            }
        } finally {
            return http;
        }
    }
    var conn = createXhrObject();
    conn.open("POST", url, false);//ajax同步
    conn.send(param);
    var strReturn = conn.responseText;
    alert("1");
    if (strReturn != "") {
        return Ext.decode(conn.responseText);
    } else {
        return null;
    }
    alert("2");
};

 

代码二:

  

Ajax 同步请求方式:


Synchronize = function(url,param) {
    function createXhrObject() {
        var http;
        var activeX = [ "MSXML2.XMLHTTP.3.0", "MSXML2.XMLHTTP", "Microsoft.XMLHTTP" ];
        try {
            http = new XMLHttpRequest;
        } catch (e) {
            for (var i = 0; i < activeX.length; ++i) {
                try {
                    http = new ActiveXObject(activeX[i]);
                    break;
                } catch (e) {}
            }
        } finally {
            return http;
        }
    }
    var conn = createXhrObject();
    conn.open("POST", url, true);//ajax异步
    conn.send(param);
    var strReturn = conn.responseText;
    alert("1");
    if (strReturn != "") {
        return Ext.decode(conn.responseText);
    } else {
        return null;
    }
    alert("2");
};

 

同步和异步的差异如下:

conn.open('POST',Url,true);         // ajax异步

conn.open('POST',Url,false);        // ajax同步

 

对于代码二,为异步的ajax请求,执行结果为:先执行alert(2)再执行alert(1), 异步的意思就是说一旦conn.open请求一发出,前端不去等待它的响应便执行后面的代码,所以alert(2)先执行了,然后当响应response到达以后才执行alert(1);

对于代码一,为同步的ajax请求,执行结果为:先执行alert(1)再执行alert(2), 同步的意思就是说一旦conn.open请求一发出,前端就去等待它的响应,响应完成以后,alert(1)先执行了,然后alert(2);

 

 

 

分享到:
评论

相关推荐

    ajax 同步请求和异步请求的差异分析

    对于异步请求,错误处理通常在回调函数中进行,而同步请求则可以在请求完成后立即检查状态并处理错误。 总的来说,理解AJAX的同步和异步请求的区别是开发高效、用户友好的Web应用的关键。选择合适的请求类型,结合...

    解决js ajax同步请求造成浏览器假死的问题

    总结一下,解决js ajax同步请求造成浏览器假死的问题的关键在于理解浏览器单线程的特性及其在执行同步请求时会阻塞UI线程的行为。开发者可以通过使用异步请求或将耗时的请求操作放入setTimeout等JavaScript定时器中...

    extjs ajax同步请求所需js

    标题中提到的"extjs ajax同步请求所需js"是指ExtJS框架中用于执行同步Ajax请求的相关JavaScript代码。在ExtJS中,Ajax请求通常通过`Ext.Ajax`对象来实现。与传统的异步请求不同,同步请求会阻塞浏览器,直到请求完成...

    ajax异步请求小结

    **Ajax异步请求小结** Ajax(Asynchronous JavaScript and XML)是一种用于创建快速、动态网页的技术,它允许在不重新加载整个页面的情况下,与服务器交换数据并更新部分网页内容。这种技术极大地提升了用户体验,...

    AJAX同步或异步流程图

    AJAX(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。它通过在后台与服务器交换...理解并熟练运用AJAX的同步和异步模式,是提升Web应用性能和交互性的重要手段。

    extjs3.0 ajax 同步请求

    ### ExtJS 3.0 AJAX 同步请求详解 #### 一、引言 ExtJS 是一款基于 JavaScript 的开源框架,用于构建现代化的 Web 应用。它提供了丰富的 UI 组件以及强大的数据处理能力,使得开发者能够快速地开发出高质量的企业...

    浅谈js的ajax的异步和同步请求的问题

    实现Ajax同步请求的方式是通过设置`async`属性为`false`。在jQuery中,可以通过AJAX调用的选项中设置`async: false`来达到这一目的。然而,需要注意的是,在实际开发中,推荐使用异步模式,因为同步模式会阻塞浏览器...

    Ajax异步请求的验证

    同步请求会阻塞浏览器,直到请求完成,而异步请求不会。异步请求允许用户在等待响应的同时继续操作页面,提高了用户体验。 七、总结 Ajax异步请求的验证涉及多个方面,包括请求状态的检查、数据解析、错误处理以及...

    尚筹网-加餐-Ajax的同步和异步请求1

    本文将深入探讨Ajax的同步和异步请求,以及它们的工作原理。 ### 1. 异步工作方式 **1.1 图解** 在异步模式下,Ajax请求发送后,浏览器不会等待服务器的响应,而是继续执行后续的代码。当服务器返回响应时,会调用...

    Java通过jQuery实现ajax异步请求

    综上所述,"Java通过jQuery实现ajax异步请求"的示例工程涵盖了客户端与服务器端的交互流程,包括使用jQuery发起AJAX请求、Java后端处理请求并返回数据,以及数据格式的转换和错误处理。了解并掌握这些知识点,对于...

    解决ajax请求后台,有时收不到返回值的问题

    jquery中ajax方法有个属性async用于控制同步和异步,默认是true,即ajax请求默认是异步请求,有时项目中会用到AJAX同步。这个同步的意思是当JS代码加载到当前AJAX的时候会把页面里所有的代码停止加载,页面出现

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

    本文将详细解析如何利用`Ext.Ajax.request`实现同步请求,并探讨其背后的原理和注意事项。 首先,我们需要理解Ajax的本质,它是Asynchronous JavaScript and XML的缩写,虽然现在XML已不再是主要的数据交换格式,但...

    javascript发送ajax请求,获取返回值res,async 同步/异步

    javascript发送ajax请求,获取返回值res,async 同步/异步 var res = sendRequest({ url : "1.php", //necessary method : "post", params : { param1 : "123", param2 : "234" }, async : false });

    jquery异步请求例子

    jQuery还提供了更简洁的$.get()和$.post()方法,它们是$.ajax()的简化版本,适用于快速构建简单的异步请求。例如,上面的GET请求可以简化为: ```javascript $.get('/api/users', function(users) { // 处理用户...

    异步请求和同步请求1

    异步请求和同步请求是Web开发中的两个核心概念,它们决定了客户端与服务器之间的交互方式。 同步请求,也称为阻塞请求,是传统的HTTP请求方式。在这种模式下,当用户在浏览器中触发一个操作,比如点击一个链接或者...

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

    标题提到的"ext-basex.js进行Ext.Ajax.request同步请求 FF无法正常"问题,涉及到浏览器兼容性和异步/同步请求的理解。 `Ext.Ajax.request`是ExtJS中的一个方法,用于发起Ajax(异步JavaScript和XML)请求。它可以...

    ajax .net 异步请求方式

    综上所述,.NET为开发者提供了丰富的工具和方法来实现AJAX异步请求,无论是在传统的ASP.NET Web Forms、MVC,还是现代的Web API和Blazor框架中,都能找到合适的方式实现高效、无刷新的交互体验。在实际项目中,...

    layui-tree实现Ajax异步请求后动态添加节点的方法

    在本示例中,我们需要实现一个功能:当用户在树形菜单中选择某一节点时,通过 AJAX 异步请求向后台添加新的子节点,并在前端动态显示出来。 首先,我们看到 HTML 结构中有一个 `#demo` ID 的 `ul` 元素,它是 layui...

    jQuery中的ajax async同步和异步详解

    总之,理解和正确使用jQuery中ajax的同步和异步请求是非常重要的。同步请求虽然有其限制,但在一些特定场景下,它能确保处理顺序和逻辑的正确性。而异步请求则是现代Web开发中不可或缺的一部分,它极大地提高了Web...

Global site tag (gtag.js) - Google Analytics