ajax如何实现同步异步?ajax工作原理是什么?

Ajax 不是一种新的编程语言,而是一种用于创建更好更快以及交互性更强的Web应用程序的技术,它包括同步以及异步,那ajax如何实现同步异步?下面来我们就来给大家讲解一下。

代码如下:

$("#btn_saveFWSB")
    .click(function ()
    {
        var obj = checkData(arr);
        if (obj.flag == true)
        {
            hideAddDiv();
            $.ajax(
            {
                type: "POST"
                , url: "/vts/doInsertFWZT.do"
                , async: false, //ajax同步
                data: "ip=" + obj.ip + "&port=" + obj.port + "&lx=" + obj.lx + "&fwq=" + obj.fwq + "&connIP=" + obj.connIp + "&direct=" + obj.direct
                , success: function (data)
                {
                    if (data.success == false)
                    {
                        alert(data.msg);
                    }
                    else
                    {}
                }
            });
        }
        else
        {
            alert(obj.msg);
            obj.msg = "";
        }
    });

ajax工作原理是什么?

Ajax的工作原理相当于在用户和服务器之间加了—个中间层(AJAX引擎),使用户操作与服务器响应异步化。并不是所有的用户请求都提交给服务器,像—些数据验证和数据处理等都交给Ajax引擎自己来做, 只有确定需要从服务器读取新数据时再由Ajax引擎代为向服务器提交请求。

Ajax:Asynchronous javascript and xml,实现了客户端与服务器进行数据交流过程。使用技术的好处是:不用页面刷新,并且在等待页面传输数据的同时可以进行其他操作。

那如何使用Ajax技术?

首先,有客户端事件触发Ajax事件。

然后,创建xmlHttpRequest对象,根据浏览器不同,创建的xmlHttpRequest对象不同。用open调用,用send发送请求给Ajax引擎。

最后,执行完毕后,把结果返回给客户端。

执行的流程如下:\

ajax如何实现同步异步?ajax工作原理是什么?.jpg

测试代码如下:

创建xmlHttpRequest对象:

function createXMLHttpRequest()
{
    //表示当前浏览器不是ie,如ns,firefox
    if (window.XMLHttpRequest)
    {
        xmlHttp = new XMLHttpRequest();
    }
    else if (window.ActiveXObject)
    {
        xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
}

客户端事件触发:

function validate(field)
{
    if (trim(field.value)
        .length != 0)
    {
        //创建XMLHttpRequest
        createXMLHttpRequest();
        var url = "user_validate.jsp?userId=" + trim(field.value) + "×tampt=" + new Date()
            .getTime();
        // alert(url);
        xmlHttp.open("GET", url, true);
        //方法地址。处理完成后自动调用,回调。
        xmlHttp.onreadystatechange = callback;
        xmlHttp.send(null); //将参数发送到Ajax引擎
    }
    else
    {
        document.getElementById("userIdSpan")
            .innerHTML = "";
    }
}

结果返回操作:

function callback()
{
    {
        alert(xmlHttp.readyState);
        if (xmlHttp.readyState == 4)
        { //Ajax引擎初始化
            if (xmlHttp.status == 200)
            { //http协议成功
                //alert(xmlHttp.responseText);
                document.getElementById("userIdSpan")
                    .innerHTML = "" + xmlHttp.responseText + "";
            }
            else
            {
                alert("请求失败,错误码=" + xmlHttp.status);
            }
        }
    }

注意:

onreadyStateChange事件,当readyState状态值发生改变就会触发此事件。

其中,xmlHttpRequest提交http请求的过程中,readyState历经五个状态值(0,1,2,3,4),所以callback函数中的alert(xmlHttp.readyState)则会不断输出1,2,3,4。其中0状态不会输出,因为0状态的时候并不执行此事件。

使用AJAX的最大好处是它简化了用户体验,访问者不需要等待很长时间就可以访问内容。最后大家如果想要了解更多其他工具教程知识,敬请关注奇Q工具网。

推荐阅读:

json语法规则书写格式要求有哪些?Json语言有哪些类型?

json对象和json数组的区别是什么?json数组如何解析?

java写的web服务器怎么启动?实例讲解