`

1 _AJAX内置对象的创建及使用

    博客分类:
  • AJAX
阅读更多

AJAX的原理:利用浏览器内置的XMLHttpRequest对象同步或者异步的获得和显示来自服务器的数据,也是利用HTTP协议为载体,和普通点击网页链接发送请求的区别就是,AJAX不会刷新页面。这个特性可以弥补BS架构装载页面慢的缺点。

 

        由于IE6/IE5.5都将XMLHttpRequest对象实现为一个ActiveX对象,所以在javascript中需要依靠条件判断代码来创建XMLHttpRequest对象。

 

创建AJAX对象的模板代码

 

var xhr = false;

if (window.XMLHttpRequest) {
    //在IE7+,firefox,Mozilla浏览器中被支持
    xhr = new XMLHttpRequest();
} else {
    //在IE5.5,IE6中被支持
    if (window.ActiveXObject) {
        xhr = new ActiveXObject("Microsoft.XMLHTTP");
    }
}

if (xhr) {
    //注册回调函数
   xhr.onreadystatechange = method;
    xhr.open("", url, true);
    xhr.send(null);
} else {
    alert("浏览器不支持AJAX,请升级");
}
//回调函数
function method() {
    if (xhr.readyState == 4) {
        if (xhr.status == 200) {
            //这里就可以利用XMLHttpRequest对象提供的方法进行操作
     }
    }
}

 

 

      之所以要先判断window.XMLHttpRequest属性而不是window.ActiveXObject,是因为在IE7+中也开始和AJAX标准靠拢支持XMLHttpRequest,并且现在用IE7+的人越来越多。

   

    在上述代码中,window.XMLHttpRequest返回的是一个对象或者null,if语句会把调用结果转换成ture或者false。

 

    if (xhr)语句判断xhr对象是否已经被创建,如果没有则会alert一个提示框说明浏览器不支持AJAX。

 

    如果xhr对象被创建,则这里需要三步来完成和服务器的数据交互:    

  1. xhr.onreadystatechange = method();设置xhr对象的onreadystatechange事件监听函数,每当xhr.readyState属性值发生变化时,就会触发该事件。readyState属性值会从0-4,所以method函数一共可以被触发5次。
  2. xhr.open("", url, true);该方法做向Server发送请求的参数准备,第一个参数中说明HTTP请求的方法,"GET","POST"或者"HEAD",第二个参数请求的URL,相当于FORM表单提交中的action属性,第三个参数说明method的调用是同步(false)还是异步(true)。 若是同步,则在send方法后等待服务器的响应完成才能进行操作,在等待期间浏览器不能响应用户输入,若是异步,则浏览器继续响应用户输入,同时后台等待服务器的响应。建议尽量使用异步,例如在用户填写表单验证的时候,用户填写的同时,浏览器在后台进行与服务器的表单验证,此时不会打断用户的输入,如果某个表单字段验证失败,则用户可以马上得到通知,这样就大大节省了用户的时间,也降低了Server的负载,因为Server不必重新返回整个页面,而只要进行验证并且返回验证信息。
  3. xhr.send(null);发送上面创建的请求,如果在步骤2中设置的是POST方式,则send方法需要一个参数指明post 的发送参数。

    xhr.readyState属性==4代表了和服务器交互已经完成。

 

    xhr.status则说明了从服务器返回的响应中的状态码,熟悉HTTP协议的人都知道code是200时代表正常响应(404代表请求的url资源不存在),这时就可以利用xhr对象的方法处理从Server返回的数据了。

分享到:
评论

相关推荐

    smarty+AJAX.rar_ajax_ajax php_php ajax_smarty_smarty ajax

    Ajax在网页中的运用主要涉及XMLHttpRequest对象,这是JavaScript的一个内置对象,用于在后台与服务器交换数据并更新部分网页。通过创建XMLHttpRequest对象,打开连接,发送请求,然后处理服务器返回的数据,我们可以...

    Ajax_json.rar_JSON_ajax_ajax+json

    AJAX的核心是XMLHttpRequest对象,它是JavaScript的一个内置对象,允许我们与服务器进行异步数据交换。 在"Ajax_json.rar_JSON_ajax_ajax+json"这个例子中,我们将看到如何结合使用AJAX和JSON来实现数据的高效传输...

    ajax_example.rar_ajax_ajax html_html ajax

    它创建XMLHttpRequest对象,打开一个到服务器的新连接,设置请求方法(GET或POST),并指定要访问的URL。然后,设置回调函数来处理服务器的响应。当请求完成时,这些回调函数会被调用,从而更新HTML页面的部分内容,...

    尚硅谷_教学课件_Ajax

    - **XMLHttpRequest对象**:Ajax的核心,它是JavaScript中的一个内置对象,负责在后台与服务器进行异步数据交换。 - **DOM(Document Object Model)**:是HTML和XML文档的结构化表示,Ajax通过DOM操作来更新页面的...

    day6_ajax01.zip

    1. **异步通信**:Ajax的核心是浏览器内置的XMLHttpRequest对象,它允许JavaScript在后台与服务器进行通信,而不会中断用户的界面交互。这种异步处理方式提高了用户体验,因为用户可以继续浏览页面,而数据在后台...

    json.rar_Highstock json_JSON_ajax json_json Ajax Java

    1. **创建Java对象**:根据需要在后端创建对应的Java对象,这些对象将代表要传递的数据。 2. **序列化为JSON**:使用Jackson库的`ObjectMapper`将Java对象转换为JSON字符串。 3. **使用AJAX发送请求**:前端使用...

    分页_ajax 分页_MsgBox

    在网页上,我们可以通过JavaScript创建Ajax请求,向服务器发送获取特定分页数据的请求。这通常涉及以下几个步骤: 1. 用户点击分页按钮或输入分页信息。 2. JavaScript捕获这个事件并构建Ajax请求,包括请求类型...

    web-15-ajax.zip_ajax_web ajax_zip_视频web

    Ajax的基本工作原理是通过JavaScript创建XMLHttpRequest对象,然后使用这个对象向服务器发送异步请求。请求可以是GET或POST方式,服务器响应后,JavaScript处理返回的数据,更新DOM树,从而实现页面局部刷新。XML...

    14ajax课程_AJAX基础_

    XMLHttpRequest是AJAX的核心,它是JavaScript内置的一个对象,负责在后台与服务器通信。通过创建XMLHttpRequest实例,我们可以发送HTTP请求并接收响应。例如: ```javascript var xhr = new XMLHttpRequest(); xhr....

    四天学会ajax_ajax教程

    2. **XMLHttpRequest对象**:Ajax的核心是XMLHttpRequest(XHR)对象,它是JavaScript的一个内置对象,用于在后台与服务器通信。你需要掌握如何创建、初始化以及使用XHR对象发送HTTP请求。 3. **HTTP请求与响应**:...

    ThinkAjax_ajax.rar

    Ajax的核心在于创建XMLHttpRequest对象,它是浏览器内置的对象,用于在后台与服务器端通信。通过JavaScript调用XMLHttpRequest对象的方法,我们可以发送异步请求到服务器,并接收服务器返回的数据。在ThinkAjax项目...

    Eclipse_AJAX开发

    在Eclipse中,可以使用内置的调试器来测试和调试JavaScript代码,查看AJAX请求的发送过程以及服务器返回的结果。同时,WTP插件还提供了资源管理器,方便查看和管理HTML、JavaScript、CSS等文件,以及服务器部署和...

    jQuery_Ajax_Json全解析

    **jQuery、Ajax与JSON全解析** ...总结,jQuery、Ajax和JSON的结合使用,为网页动态交互提供了强大的支持,使开发者能够更高效地创建富交互性的Web应用。理解并熟练掌握这些技术,对于提升Web开发技能至关重要。

    ajax-day01.rar_ajax_union1de

    1. **创建XMLHttpRequest对象**:这是Ajax的核心,它是浏览器提供的一个内置对象,用于与服务器进行通信。 2. **初始化连接**:通过XMLHttpRequest对象的open()方法建立到服务器的连接,指定请求类型(GET或POST)、...

    jsonmeapi_ajax应用

    - 如果项目使用了Vue、React或Angular等前端框架,它们都有内置的API或库简化Ajax调用,如Vue的axios插件,React的`useEffect`和`useState`钩子。 8. **测试**: - 使用工具如Postman或curl进行接口测试,验证...

    Ajax基础_Ajax入门

    1. **创建XMLHttpRequest对象**:所有现代浏览器都内置了XMLHttpRequest对象,用于处理Ajax请求。 2. **初始化连接**:通过XMLHttpRequest对象的`open()`方法,指定请求类型(GET或POST),URL和是否异步执行。 3. *...

    Asp.net_AJAX

    ASP.NET AJAX(Asynchronous JavaScript and XML)是一种微软提供的技术,用于创建高度交互性和响应迅速的Web应用程序。它通过结合JavaScript、XML以及服务器端的ASP.NET功能,使得网页能够在不刷新整个页面的情况下...

    Web_Ajax.zip

    1. 创建XMLHttpRequest对象:这是Ajax的基础,现代浏览器通常都内置了这个对象。 2. 打开连接:使用XMLHttpRequest对象的open()方法,指定请求类型(GET或POST)、URL和是否异步执行。 3. 发送请求:调用...

    ajax完整代码与实现.rar_ajax_java_servlet_实现_源码

    - **创建XMLHttpRequest对象**:在JavaScript中,可以通过new XMLHttpRequest()创建一个实例。 - **初始化请求**:调用open()方法,参数包括请求类型(GET或POST),URL,以及是否异步执行。 - **设置请求头**:对于...

Global site tag (gtag.js) - Google Analytics