对AJAX的总结

作者:Jasmine - 2016年07月27日

通过前面对 AJAX 的讲解,我们可以将 AJAX 请求分成以下几个步骤:

创建 XMLHttpRequest 对象;

设置事件处理函数,处理返回的数据;

初始化并发送请求。


可以将 AJAX 请求概括为一段固定的代码:

<script type="text/javascript">
    var xmlhttp;  // XMLHttpRequest 对象
    try{  // code for IE7+, Firefox, Chrome, Opera, Safari
        xmlhttp=new XMLHttpRequest();
    }catch(e){  // code for IE6, IE5
        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlhttp.onreadystatechange=function(){  // 事件处理函数
        if (xmlhttp.readyState==4 && xmlhttp.status==200){
            // 这里写你的代码,可以使用 responseText 接收返回的数据
        }
    }
    xmlhttp.open(POST/GET,url,true);  // 选择发送方式,确定 url
    xmlhttp.send(data);  // POST 方式发送的数据,GET 方式留空
</script>

GET 还是 POST

与 POST 相比,GET 更简单也更快,在大部分情况下都能用。


然而,在以下情况中,请使用 POST 请求:

无法使用缓存文件(更新服务器上的文件或数据库);

向服务器发送大量数据(POST 没有数据量限制);

发送包含未知字符的用户输入时,POST 比 GET 更稳定也更可靠。

是否异步请求

对于 open() 方法:

    open(method,url,async)

async 为 true 或 false。

async=true 时,JavaScript 无需等待服务器的响应,可以在等待服务器响应的同时执行其他脚本,当响应完成后再对返回的数据进行处理,所以,AJAX 请求与其他脚本的执行是分开的,互不影响。


async=false 时,JavaScript 会等到服务器响应完成后才继续执行其他脚本,如果服务器繁忙或缓慢,JavaScript 会一直等待,可能会挂起或停止。这种方式只适用于一些小而简单的请求。


AJAX 指的是异步 JavaScript 和 XML(Asynchronous JavaScript and XML),对于 web 开发人员来说,发送异步请求是一个巨大的进步,能在很大程度上减少服务器的开销,提高客户端脚本的执行速度。AJAX 重在“异步”,如果 async=false ,AJAX 就是去了意义。所以,如无特殊要求,一般是 async=true ,既能充分发挥 AJAX 的作用,也不会遇到莫名其妙的错误。

本文作者: Jasmine

本文链接: https://www.jianbaizhan.com/article/479

版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 3.0 许可协议。转载请注明出处!


 请勿发布不友善或者负能量的内容。审查将对发布广告等违规信息进行处罚!