异步交互之Ajax原生编写

一提到异步交互大家就会说ajax,仿佛ajax这个技术已经成为了异步交互的代名词.那下面将研究ajax的核心对象!

利用ajax实现异步交互无非4步:

1.创建ajax核心对象

2.与服务器建立连接

3.向服务器发送请求

4.接收服务器响应的数据

看似神秘的异步交互当明确这4步后,也许在大家脑海里已经有了初步的思路了

首先我们创建ajax的核心对象,由于浏览器的兼容问题我们在创建ajax核心对象的时候不得考虑其兼容问题,因为要想实现异步交互的后面步骤都基于第一步是否成功的创建了ajax核心对象.

 function getXhr(){
            // 声明XMLHttpRequest对象
            var xhr = null;
            // 根据浏览器的不同情况进行创建
             if(window.XMLHttpRequest){
           // 表示除IE外的其他浏览器
                     xhr = new XMLHttpRequest();
             }else{
                 // 表示IE浏览器
                 xhr = new ActiveXObject(‘Microsoft.XMLHttp‘);
             }
             return xhr;
 }
 // 创建核心对象
 var xhr = getXhr();            

通过上述代码我们已经成功的创建了ajax核心对象,我们保存在变量xhr中,接下来提到的ajax核心对象都将以xhr代替.

第二步就是与服务器建立连接,通过ajax核心对象调用open(method,url,async)方法.

open方法的形参解释:

method表示请求方式(get或post)

url表示请求的php的地址(注意当请求类型为get的时候,请求的数据将以问号跟随url地址后面,下面的send方法中将传入null值)

async是个布尔值,表示是否异步,默认为true.在最新规范中这一项已经不在需要填写,因为官方认为使用ajax就是为了实现异步.

xhr.open("get","01.php?user=xianfeng");//这是get方式请求数据
xhr.open("post","01.php");//这是以post方式请求数据

第三步我们将向服务器发送请求,利用ajax核心对象调用send方法

如果是post方式,请求的数据将以name=value形式放在send方法里发送给服务器,get方式直接传入null值

xhr.send("user=xianfeng");//这是以post方式发送请求数据
xhr.send(null);//这是以get方式

第四步接收服务器响应回来的数据,使用onreadystatechange事件监听服务器的通信状态.通过readyState属性获取服务器端当前通信状态.status获得状态码,利用responseText属性接收服务器响应回来的数据(这里指text类型的字符串格式数据).后面再写XML格式的数据和大名鼎鼎的json格式数据.

xhr.onreadystatechange = function(){
                    // 保证服务器端响应的数据发送完毕,保证这次请求必须是成功的
                            if(xhr.readyState == 4&&xhr.status == 200){
                          // 接收服务器端的数据
                          var data = xhr.responseText;
                          // 测试
                          console.log(data);
                              }
                          };
时间: 2024-08-05 11:15:16

异步交互之Ajax原生编写的相关文章

Ajax异步交互基础

1. ajax是什么? * asynchronous javascript and xml:异步的js和xml * 它能使用js访问服务器,而且是异步访问! * 服务器给客户端的响应一般是整个页面,一个html完整页面!但在ajax中因为是局部刷新,那么服务器就不用再响应整个页面!而只是数据! > text:纯文本 > xml:大家都熟悉!!! > json:它是js提供的数据交互格式,它在ajax中最受欢迎! 2. 异步交互和同步交互 * 同步: > 发一个请求,就要等待服务器的

325 AJAX介绍,XMLHttpRequest对象,实现Ajax的异步交互步骤,服务器端通信状态

* Asynchronous JavaScript and Xml \* 直译中文 - javascript和XML的异步 \* (不严格的定义)客户端与服务器端进行交互,而无需刷新当前页面的技术,称之为Ajax. * Ajax实现的是B/S架构下的异步交互 * 实现异步交互的技术: \* <iframe src="">元素 * 同步与异步的区别 * 同步交互 \* 执行速度相对比较慢 \* 响应的是完整的HTML页面 * 异步交互 \* 执行速度相对比较快 \* 响应的是

spring mvc 和ajax异步交互完整实例

Spring MVC 异步交互demo: 1.jsp页面: <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR

ajax异步交互梳理

最近在学习ajax,开始的时候感觉步骤有些混乱,老是记不住,自己梳理了下,觉得很好玩,就顺便记下来. ajax异步交互的步骤: 1.创建XMLHttpRequest核心对象 2.与服务器建立连接(open) 3.向服务器端发送请求(send) 4.接收服务器端的响应数据onreadystatechange 如同生意场上一样,A公司(客户端)有事情求B公司(服务器端)帮忙,于是 1.先在内部选定了一个主题XMLHttpRequest(创建核心对象), 2.委托open,与位于url地址的B公司接洽

spring mvc 和ajax异步交互完整实例(转自CSDN) 附下载地址

spring mvc 和ajax异步交互完整实例 spring MVC 异步交互demo: demo下载地址:http://download.csdn.net/download/quincylk/9521375 1.jsp页面: [java] view plain copy print? <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-

ajax 异步交互

<script>     $(function(){         $("#sub").click(function () {             $.ajax({                 url: 'CheckPvUv.php',                 data: {                     act:'login',                     un:$("#un").val(),          

什么是Ajax与Ajax原生的实现方式

一.什么是Ajax? Aiax:异步的Javascript和XML. 作用:用于完成局部刷新 XML是用于数据传输,现在开始被JSON所替代. 1.1.交互方式问题 传统的交互方式每次都必须返回整个页面,宽带,响应速度都有影响的, Ajax的交互方式是从 客户端(浏览器)从服务器加载网页完毕后,网页中的内容如果需要更改,不使用浏览器发送请求,而是使用JavaScript中的XMLHttpRequest(及Ajax对象)对象发送请求到服务器,服务器接收请求并处理完毕后只返回页面需要的内容,XMLH

ajax_异步交互-get/post方式

Ajax的异步交互: 客户端向服务器端发送请求,直到服务器端进行响应,这个过程中,用户可以做任何其他事情(不等). 实现Ajax的异步交互步骤(举例说明): get方式: 1.创建XMLHttpRequest核心对象 var xhr=getXhr(); 2. 与服务器端建立连接 xhr.open("get","01.php?user=zhangwuji"); 3. 客户端向服务器端发送请求 //send()方法不起作用,但是不能被省略 xhr.send(null);

Struts2+JQuery+JSON实现异步交互

Struts2+JQuery+JSON实现异步交互,包括从后台获得单个值.对象.List和Map数据并从前台的表达中获取值把值进行序列化通过JQuery的$.ajax({})传到后台和后台的对象进行绑定. 第一步:在MyEclipse中创建JavaWeb工厂并把Struts2 和 json的jar包添加到工程中添加完成后的工程图是: 第二步:创建后台: 1. UserInfo实体类: Userinfo实体类代码: package struts2jsonjquery.test.entity; im