原生AJAX基础讲解及兼容处理-阿里云开发者社区

开发者社区> 晚来风急> 正文

原生AJAX基础讲解及兼容处理

简介:
+关注继续查看
AJAX = Asynchronous JavaScript and XML (异步的JavaScript和XML)。
  AJAX不是新技术 ,但却是热门的技术。它可以在不重载(刷新)整个页面的情况下与服务器进行数据交互并更新网页模块。
  AJAX的优点有很多:可以局部刷新、按需加载,这样就减轻了服务器的数据流量。并且在页面更新的同时,用户可以浏览器网页的其它内容而不受影响,也减轻了结构负担。AJAX也不是万能的,在有以上优点的同时SEO也受到了影响。
  在学习AJAX之前,必须先有HTML/XHTML、CSS、JavaScript/DOM的基础。
  AJAX与服务器进行数据交互,必然涉及到服务器端,与此同时也就涉及到了服务器请求对象的创建(new XMLHttpRequest())、确认请求方式(open())、发送请求(send())以及响应请求(responseText)。
  创建对象:
  IE9+及其它浏览器支持使用new XMLHttpRequest()的创建对象方式,而IE8及以下则使用new ActiveXObject()的方式进行创建。
  看了网上许多人使用如下代码进行兼容:
1 try {
2     xml = new ActiveXObject("Msxml2.XMLHTTP");
3 } catch(e) {
4     try {
5         xml = new ActiveXObject("Microsoft.XMLHTTP");
6     } catch(e1) {
7         xml = new XMLHttpRequest();
8     }
9 }
  笔者用IE11调试功能测试IE10及以下不写new ActiveXObject("Msxml2.XMLHTTP")也是没问题的,于是在创建对象时可以使用代码:
  var xml = window.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest();
  确认请求:
  xml.open('get', 'url', true/false);
  第一个参数表示:string. 访问方式,有两具值:get/post,大部分的时候使用get
  第二个参数表示:string. 要连接的服务器网址
  第三个参数表示:boolean. 表示是否需要异步请求(true为发起异步加载)
  发送请求:
  xml.send();
  如果需要发送数据则采用xml.send(str);
  响应数据:
  xml.onreadystatechange = function() {
  if (xml.readyState == 4 && xml.status == 200) {
  alert(xml.responseText);
  }
  }
  status返回链接的状态,一般返回200与404,200表示成功返回,404表示未找到页面。
  readyState有5个值,分别为:0、1、2、3、4。而每当值改变时都会触发一次onreadystatechange。
  readyState的5个值含义分别为:
  0: 请求未初始化
  1: 服务器连接已建立
  2: 请求已接收
  3: 请求处理中
  4: 请求已完成,且响应已就绪
  也就是当请求完成,并且找到页面时,然后才获取服务器上的数据。

最新内容请见作者的GitHub页:http://qaseven.github.io/

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
01_spring_ 简介| 学习笔记
快速学习01_spring_ 简介
10 0
02_spring_ioc| 学习笔记
快速学习02_spring_ioc
3 0
Django框架介绍与安装
软件框架就是为实现或完成某种软件开发时,提供了一些基础的软件产品, 框架的功能类似于基础设施,提供并实现最为基础的软件架构和体系 通常情况下我们依据框架来实现更为复杂的业务程序开发 二个字,框架就是程序的骨架
5 0
03_spring_ioc 实现| 学习笔记
快速学习03_spring_ioc 实现
4 0
xshell+阿里云linux+vue+mysql开发练习
这篇文章记录了我在阿里云进行Linux基础学习的过程,以及根据阿里云进行一些简单的开发实践。
9 0
无影云畅享
“无影是阿里云打造的云端一体、安全高效的一站式云上办公空间。无影的云桌面、云应用、应用中心、安全浏览器等一系列的云办公能力,通过流化的技术,提供给终端用户,在算力、安全、成本、敏捷、开放等方面,无影具有超越传统PC的优势。”
13 0
jquery获取多个相同name的input的value值
jquery获取多个相同name的input的value值
10 0
05_spring_ 配置文件| 学习笔记
快速学习05_spring_ 配置文件
6 0
飞天加速计划·高校学生在家实践
我用阿里云服务器的一些心得
18 0
+关注
9380
文章
243
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载