文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Ajax如何实现异步交互

2024-04-02 19:55

关注

这篇文章主要介绍了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);
   } 
};

ps:Ajax简单的异步交互

ajax简单的异步交互,可以先从get方式开始说起

那么创建一个Ajax与服务器端的异步请求,需要完成三个

步骤1、XMLHttpRequest对象的创建

if(window.XMLHttpRequest){//针对IE7以上 以及标准浏览器
var xhr=new XMLHttoRequest();
}else if(window.ActiveXObject){
var xhr=new ActiveXObject("Microsoft.XMLHTTP");
}

步骤2、注册回调函数

xhr.onreadystatechange=callback;
或者xhr.onreadystatechange=function(){
//codes here 
}

步骤3、设置连接信息

xhr.open("GET",url,true)//其中true表示为异步交互

步骤4、发送数据

xhr.send(null);

感谢你能够认真阅读完这篇文章,希望小编分享的“Ajax如何实现异步交互”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网行业资讯频道,更多相关知识等着你来学习!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-前端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯