前端AJAX讲解

前端AJAX讲解

码农世界 2024-05-15 前端 61 次浏览 0个评论

目录

1.AJAX是什么?

2.异步交互和同步交互

3.AJAX常见应用情景和优缺点

4.AJAX的优缺点

5.AJAX发送异步请求(四步操作)

6.经典案例


1.AJAX是什么?

AJAX即“Asynchronous JavaScript and XML”(异步的JavaScript与XML技术),指的是一套综合了多项技术的浏览器端网页开发技术。

2.异步交互和同步交互

    同步:

    (1)发一个请求,就要等待服务器的响应结束,然后才能发第二个请求!中间这段时间就是一个字“卡”

    (2)刷新的是这个页面

    异步:

    (1)发一个请求后,无需等待服务器的响应,然后就可以发第二个请求!

    (2)可以使用js接口服务器的响应,然后使用js来局部刷新

    【示例】使用JS点击按钮触发事件,设置内容改变标签内容(局部刷新)

3.AJAX常见应用情景和优缺点

 3.1 应用情景

    (1)当我们在百度中输入一个"Java"后,会马上出现一个下拉列表!列表中显示的是包含"Java"字的10个关键字。

    其实这里就使用了AJAX技术!当文件框发生了输入变化时,浏览器会使用AJAX技术向服务器发送一个请求,查询包含"Java"的前10个关键字,然后服务器会把查询到的结果响应给浏览器,最后浏览器把这10个关键字显示在下拉列表中。

    整个过程中页面没有刷新,只是刷新页面中的局部位置而已。

    当请求发出后,浏览器还可以进行其它操作,无需等待服务器的响应。

    (2)当输入用户名后,把光标移动到其它表单项上时,浏览器会使用AJAX技术向服务器发出请求,服务器会查询名为张三的用户是否存在,最终服务器返回true表示名为张三的用户已经存在了,浏览器在得到结果后显示"用户名已被注册!"。

    

    整个过程中页面没有刷新,只是局部刷新了

    在请求发出后,浏览器不用等待服务器响应结果就可以进行其它操作。

    =========================================

    百度的搜索框

    用户注册时(校验用户是否存在)

4.AJAX的优缺点

    优点:异步交互:增强了用户的体验

    性能:因为服务器无需再响应整个页面,只需要响应部分内容,所以服务器的压力减轻了!

    缺点:

    ajax不应用在所有场景

    ajax无端的增多了对服务器的访问次数,给服务器带来了压力。

5.AJAX发送异步请求(四步操作)

    XMLHttpRequest 对象用于在后台与服务器交换数据。

(1)第一步(得到XMLHttpRequest)

    ajax其实只需要学习一个对象:XMLHttpRequest,如果掌握了它,就掌握了ajax。

    得到XMLHttpRequest

        --》大多数浏览器都支持: var xmlHttp = new XMLHttpRequest();

        --》IE6.0:var xmlHttp = new ActiveXObject("Msml2.XMLHTTP");

        --》IE5.5:var xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");

    **--封装得到XMLHttpRequest的函数

    function createXMLHttpRequest() {

        try {

            return new XMLHttpRequest(); //Firefox, Opera 8.0+, Safari

        } catch (e) {

            try {

                return new ActiveXObject("Msml2.XMLHTTP"); // Internet Explorer 6.0

            } catch (e) {

                try {

                    return new ActiveXObject("Microsoft.XMLHTTP"); // Internet Explorer 5.5

                } catch (e) {

                    alert("哥们儿,你用的是什么浏览器啊");

                    throw e;

                }

            }

        }

    };

(2)第二步(打开与服务器的连接)

    XMLHttp.open():用来打开与服务器的连接,它需要三个参数

    ---》请求方式:可以是GET或POST请求

    ---》请求的URL:指定服务器端资源,例如:/demo/LoginServlet

    ---》请求是否为异步:如果为true表示发送异步请求,否则同步请求

    =====》xmlHttp.open("GET","/demo/LoginServlet",true);----GET请求

    

    如果是POST请求如下(如果发送请求时需要带有参数,一般都用POST请求)

    =====》open:xmlHttp.open("post",...);

    =====》添加一步:设置Content-Type请求头:

        ----》xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");

        ---->send: xmlHttp.send("username=zhangsan&password=123");//发送请求时指定的请求体

    (3)第三步(发送请求)

    ---》xmlHttp.send(null):如果不给参数可能会造成部分浏览器无法发送

    *****参数:就是请求的内容!如果是GET请求,必须给出null。

    (4)第四步()

    ---》在xmlHttp对象的一个事件上注册监听器:onreadystatechange

    ---》xmlHttp对象5个状态

    0:初始化未完成状态,只是创建了XMLHttpRequest对象,还未调用open()方法

    1:请求已开始,open()方法已调用,但还没调用send()方法

    2:请求发送完成状态,send()方法已调用

    3:开始读取服务器响应

    4:读取服务器响应结束(通常我们只关心这个状态)

    ----》得到xmlHttp对象的状态

    ---------》var state = xmlHttp.readyState;//可能是0 1 2 3 4

    ----》得到服务器响应的状态码

    ---------》var status = xmlHttp.status;//200    404    500

    

    ----》得到服务器响应的内容

    ---------》var content  = xmlHttp.responseText;//得到服务器的响应的文本格式的内容

    ---------》var content =  xmlHttp.responseXML;//得到服务器的响应的xml响应的内容,document对象

    xmlHttp.onreadystatechange = function(){//xmlHttp的5种状态都会调用本方法

        if(xmlHttp.readyState == 4 && xmlHttp.status == 200){//双重判断:判断是否为4状态,而且还要判断是否为200

            //获取服务器的响应内容

            var content  = xmlHttp.responseText;

        }

    };

6.经典案例

    (1)点击按钮,使用ajax响应内容在客户端某标签中显示响应的内容

    (2)发送POST请求

    (3)用户名是否已被注册

转载请注明来自码农世界,本文标题:《前端AJAX讲解》

百度分享代码,如果开启HTTPS请参考李洋个人博客
每一天,每一秒,你所做的决定都会改变你的人生!

发表评论

快捷回复:

评论列表 (暂无评论,61人围观)参与讨论

还没有评论,来说两句吧...

Top