`

AJAX基础学习

    博客分类:
  • ajax
阅读更多

什么是AJAX?

    AJAX (Asynchronous JavaScript and XML):异步的JavaScript和XML

    AJAX 不是一种新的编程语言,而是使用现有标准的新方法。

    AJAX 是与服务器交换数据并更新部分网页的艺术,在不重新加载整个页面的情况下。

    AJAX 是一种用于创建快速动态网页的技术。通过在后台与服务器进行少量的数据交换,AJAX可以是网页实现异步更新。

        这意味着可以在不重新加载整个网页的情况下,对网页的某一部分进行更新。传统的网页如果需要更新内容,必须重载整个网页。

 

XMLHttpRequest对象:

    XMLHttpRequest对象是AJAX的基础。

    所有现代浏览器均支持XMLHttpRequest对象。

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

 

    创建XMLHttpRequest对象:

        语法: var xhr = new XMLHttpRequest();

    老版本的Internet Explorer(IE5和IE6)使用ActiveX对象:

        语法: var xhr = new ActiveXObject("Microsoft.XMLHTTP");

 

    为了应对所有的现代浏览器,包括IE5和IE6,请检查浏览器是否支持XMLHttpRequest对象,支持则创建XMLHttpRequest对象,

        不支持则创建ActiveXObject对象

 

    例如:

        var xhr ;

        if(window.XMLHttpRequest){

            xhr = new XMLHttpRequest();

        }else{

            xhr = new ActiveXObject("Microsoft.XMLHTTP");

        }

 

    XMLHttpRequest对象用于和服务器进行数据交换:

        向服务器发送请求:

            如果需要将请求发送到服务器,我们使用XMLHttpRequest对象的open()和send()方法:

            open()语法:规定请求的类型,url以及是否异步处理请求

            open(method,url,async):

                method: 请求的类型.例如:get 或 post

                url: 文件在服务器上的位置

                async: true(异步) 或 false(同步)

            send()语法:将请求发送到服务器

            send(string):

                string: 仅用于post请求。

 

            请求时是使用get还是post?

                与post相比,get更简单快速,并且大部分情况下都能用.

                然而,在一下情况下请使用post请求:

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

                    2:向服务器发送大量数据(post没有数据限制)

                    3:发送包含未知字符的用户输入时,post比get更稳定也更可靠。

 

                get请求:

                    一个简单的get请求:

                    xhr.open('get','demo_get.asp',true);

                    xhr.send();

 

                    上面的例子,可能得到的是缓存的结果(当缓存中已经存在请求路径的结果是时)

                    为了得到的是最新的数据而不是缓存数据,可以向url添加一个唯一的ID:

                    xhr.open('get','demo_get.asp?t=' + Math.random(),true);

                    xhr.send();

 

                    如果想通过get方式发送信息,可以向url添加信息:

                   xhr.open('get','demo_get.asp?name=Bill&age=22',true);

                   xhr.send();

 

                post请求:

                    一个简单的post请求:

                    xhr.open('post','demo_post.asp',true);

                    xhr.send();

 

                    如果需要像HTML表单那样post数据,请使用setRequestHeader()来添加HTTP请求头信息。

                    然后在send()方法中规定你希望发送的数据:

                    xhr.open('post','ajax_test.asp',true);

                    xhr.setRequestHeader('Content-type','application/x-www-form-urlencoded');

                    xhr.send('name=Bill&age=22');

 

                    setRequestHeader()语法:向请求添加HTTP头

                        setRequestHeader(header,value);

                            header: 规定头的名称

                            value: 规定头的值

 

                url: 服务器上的文件:

                    open()方法的url参数是指服务器上的文件的地址,该文件可以是任何类型的文件。

 

                异步: true 或 false

                    XMLHttpRequest对象如果需要用于异步的话,其open()方法的async参数必须设置为true.

                    对于web开发人员来说,发送异步请求是一个巨大的进步。很多在服务器执行的任务都相当费时,

                    AJAX出现之前,这可能会引起应用程序挂起或停止。

                    通过AJAX,JavaScript无需等待服务器的响应,而是:

                        在等待服务器响应时执行其他脚本

                        当响应就绪后对响应进行处理

 

                    async = true:

                        当使用async=true时,请规定在响应处于onreadystatechange事件中的就绪状态时执行的函数:

                        例如:

                        xhr.onreadystatechange = function(){

                            if(xhr.readyState == 4 && xhr.status == 200){

                                //当响应处于就绪状态时要执行的任务代码

                                document.getElementById('myDiv').innerHTML = xhr.responseText;

                            }

                        };

                        xhr.open('get','test.txt',true);

                        xhr.send();

 

                    async = false:

                        如果使用async=false,JavaScript会等到服务器响应就绪才继续执行。

                        如果服务器繁忙或缓慢,应用程序会挂起或停止。

                        当你使用async=false时,请不要编写onreadystatechange函数,

                        把响应就绪要执行的代码放到send()语句后面即可:

                        例如:

                        xhr.open('get','test.txt',false);

                        xhr.send();

                        document.getElementById('myDiv').innerHTML = xhr.responseText;

 

服务器响应:

    如果需要获得来自服务器的响应,请使用XMLHttpRequest对象的 responseText 或 responseXML 属性。

        responseText: 获得字符串形式的响应数据

        responseXML: 获得XML形式的响应数据

 

    responseText 属性:

        如果来自服务器的响应数据不是XML,请使用responseText属性。

        例如:

        document.getElementById('myDiv').innerHTML = xhr.responseText;

 

    responseXML 属性:

        如果来自服务器的响应数据是XML,而且需要作为XML对象进行解析,请使用responseXML属性。

        例如:请求books.xml文件,并解析响应

            xmlDoc = xhr.responseXML;

            txt = "";

            x = xmlDoc.getElementsByTagName('artist');

            for(var i = 0; i < x.length; i++){

                txt = txt + x[i].childNodes[0].nodeValue + '<br/>';

            }

            document.getElementById('myDiv').innerHTML = txt;

 

onreadystatechange事件:

    当请求被发送到服务器时,我们需要执行一些基于响应的任务。

    每当readyState改变时,就会触发onreadystatechange事件。

    readyState属性存有XMLHttpRequest的状态信息。

 

    下面是XMLHttpRequest对象的三个重要属性:

        onreadystatechange: 存储函数(或函数名),每当readyState属性改变时,就会调用该函数。

        readyState: 存有XMLHttpRequest对象的状态。从0到4发生变化.

            0:请求未初始化

            1:服务器连接已建立

            2:请求已接收

            3:请求处理中

            4:请求已完成,并且响应已就绪

        status: 存有页面状态码

            200:“OK”

            404:未找到页面

 

    在onreadystatechange事件中,我们规定当服务器响应已经做好被处理的准备时所执行的任务。

        当readyState等于4且页面状态码为200时,表示响应已经就绪并且成功:

            xhr.onreadystatechange = function(){

                if(xhr.readyState == 4 && xhr.staus == 200){

                    document.getElementById('myDib').innerHTML = xhr.responseText;

                }

            };

 

        onreadystatechange事件被触发5次(0-4),对应着readyState的每个变化。

 

参考资料:http://www.w3school.com.cn/ajax/index.asp

分享到:
评论

相关推荐

    Ajax基础学习资料

    ### Ajax基础学习资料知识点解析 #### 一、Ajax概述 **定义:** Ajax(Asynchronous JavaScript and XML)是一种创建交互式网页应用的技术组合,通过在后台与服务器进行少量数据交换,使得网页能够异步更新。这...

    ajax基础学习总结及例子

    **Ajax基础学习总结及例子** Ajax(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。这种技术的核心在于利用JavaScript创建异步通信请求,与服务器交换数据并...

    ajax基础学习资料

    Ajax的基础知识点主要包括以下几个方面: 1. **XMLHttpRequest对象**:Ajax的核心是XMLHttpRequest对象,它是JavaScript内置的对象,允许浏览器向服务器发送异步HTTP请求。创建一个XMLHttpRequest对象,然后设置其...

    Ajax 基础学习

    Ajax 基础学习,本书共分为8章,详细讲解了Ajax的基础入门.如今几乎每个网站都会用到Ajax,可以给用户很好的体验.如:注册用户时Ajax的异步验证用户名,Ajax分页,搜索提示等...

    ajax基础学习文档

    **Ajax(Asynchronous JavaScript and XML)**是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。...通过不断学习和实践,我们可以更好地利用Ajax来构建更加高效和用户友好的Web应用。

    ajax简介及入门基础

    **Ajax 简介** Ajax,全称为"Asynchronous JavaScript and XML",是一种在无需刷新整个网页的情况下,能够更新部分网页内容的技术。它并不是一项全新的技术,而是由一系列成熟的技术组合而成,包括JavaScript、DOM...

    java Ajax 基础 例子 好用啊

    总的来说,Java AJAX基础学习主要包括理解XMLHttpRequest对象的使用,掌握AJAX请求的创建和发送,以及学会在JavaScript中解析和展示服务器返回的数据。同时,后端开发人员需要熟悉处理AJAX请求的Java框架或库。通过...

    学习ajax的文档——ajax基础文档

    **Ajax(Asynchronous JavaScript and XML)**是一种在无需刷新整个网页的情况下,能够更新部分网页的技术。这个技术由JavaScript实现,通常与...通过不断实践和深入学习,你将能够运用Ajax创造出更多优秀的Web项目。

    ajax基础知识总结

    学习ajax基础知识,让自己的前端技术更上一层,学会与后台交互

    ajax 的基础学习

    AJAX原理介绍 博文链接:https://bblove.iteye.com/blog/249360

    Ajax全套学习教程

    一、Ajax基础知识 1.1 Ajax的工作原理:Ajax通过JavaScript与服务器进行异步通信,用户在页面上执行操作时,后台可以发送请求获取数据,然后在不刷新页面的情况下更新指定区域的内容。 1.2 XMLHttpRequest对象:Ajax...

    Ajax基础入门简介

    **Ajax基础入门简介** Ajax(Asynchronous JavaScript and XML)是一种用于创建快速、动态网页的技术,它使得网页可以在不重新加载整个页面的情况下与服务器交换数据并更新部分网页内容。这一技术的出现极大地提升...

    Ajax学习资料 Ajax

    Ajax,全称Asynchronous JavaScript and XML(异步JavaScript和XML),是一种在无需重新加载整个网页的情况下,能够...在学习过程中,可以结合实例代码进行实践,加深对Ajax的理解,并逐步掌握其在实际项目中的应用。

    csdn 图书 Ajax基础教程.chm

    《Ajax基础教程.chm》 Ajax技术可以提供高度交互的Web应用,给予用户更丰富的页面浏览体验。本书重点介绍Ajax及相关的工具和技术,主要内容包括XMLHttpRequest对象及其属性和方法、发送请求和处理响应、构建完备的...

    精通Ajax 基础概念.核心技术与典型案例

    ## **一、Ajax基础概念** 1. **异步通信**:Ajax的核心是JavaScript对象XMLHttpRequest,它允许在后台与服务器进行通信,不阻塞用户对页面的操作。 2. **局部刷新**:Ajax可以只更新网页的部分区域,而不是整个页面...

    Ajax基础实例讲解

    在Ajax的基础实例中,通常包括以下几个关键步骤: 1. **创建XMLHttpRequest对象**:这是Ajax的核心,它是浏览器提供的一个内置对象,用于在后台与服务器通信。在JavaScript中,我们可以通过`new XMLHttpRequest()`...

    ajax ajax原理 ajax代码 ajax编程 ajax学习

    - **W3Schools**:提供Ajax基础教程和实例,适合初学者:https://www.w3school.com.cn/ajax/ - **jQuery 和 Axios**:学习Ajax时,可以了解jQuery的$.ajax()方法和现代JavaScript库Axios,它们都提供了更方便的接口...

    Ajax学习资料+实例

    1. **Ajax基础** - **Ajax简介**:Ajax的主要优点在于它可以实现页面的局部更新,提高网页的响应速度,减少用户的等待时间。它通过JavaScript在后台与服务器通信,无需用户感知,实现了无刷新的数据交互。 - **...

    精通Ajax_基础概念_核心技术与典型案例

    精通Ajax——基础概念、核心技术与典型案例 人民邮电出版社 本书主要介绍Ajax技术的组成元素,涉及JavaScript、CSS、DOM、XMLHTTP和XML等内容,其中详细介绍了JavaScript客户端语言,它是Ajax技术的核心组成,是...

    初学ajax 有关于ajax的学习

    在初学者的学习过程中,理解Ajax的核心概念、工作原理以及如何应用它,是至关重要的。 ### 1. **Ajax的核心概念** Ajax基于JavaScript语言,通过XMLHttpRequest对象与服务器进行异步通信。异步意味着它不会阻塞...

Global site tag (gtag.js) - Google Analytics