AJAX是Asynchronous Javascript And XML(异步JavaScript + XML)。

用于创建快速动态网页的技术。通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。传统的网页(不使用 AJAX)如果需要更新内容,必需重载整个网页面。

同步是脚本会停留并等待服务器发送回复然后再继续;异步是脚本允许页面继续其进程并处理可能的回复。同步就是整个页面都刷新,而异步是只刷新用了Ajax技术的部分。

 
AJAX的交互模型:
是Ajax在Browser端引入一个执行引擎,它一边应付user的请求,一边把某些必须交给服务器处理的东西背地里传送给服务器,同时背地里把服务器的结果准备好(接受服务器端的数据),展现给客户的技术模式。这样增强了用户的操作性。
 
AJAX的交互流程:
1、启动,获取XMlHttpRequest对象,这时需要兼容浏览器
2、open,打开url通道,并设置异步传输 
       open(method,URL,async),method有get或post,URL是请求资源的地址,async表示是否异步请求

         setRequestHeader(header,value)向请求添加http头部
3、send,发送数据到服务器
         send(string),method为post
4、服务器接受数据并处理,处理完成后返回结果
         返回responseText,responseXML形式的数据。一般是responseText
5、客户端接收服务器端返回
        这个阶段有onreadystatechange,readyState,status三个属性
    当readyState属性改变时,就会调用onreadystatechange函数

        readyState存有XMLHttpRequest的状态0-4
          0:请求未初始化
          1:服务器连接已建立
          2:请求已接收
          3:请求已处理
          4:请求已完成,且响应已就绪
        status:200ok,404未找到页面
只有当readyState == 4 && status == 200时,表示请求成功
   
 代码示范:
 (function () {
var btn = document.getElementById('test');
btn.onclick = function () {
ajax('0821-a.txt', function (str) {
alert(str);
});
};
function ajax(url, success, fail) {
var xhr = null;
if(window.XMLHttpRequest) {
xhr = new XMLHttpRequest();
}else {
xhr = new ActiveXObject('Microsoft.XMLHTTP');
}
xhr.open('get', url, true);
xhr.send(null);
xhr.onreadystatechange = function () {
if(xhr.readyState == 4) {
if(xhr.status == 200) {
success(xhr.responseText);
}else {
fail && fail(xhr.status);
}
}
};
}
})();

喜欢就点赞吧<( ̄︶ ̄)>

 

最新文章

  1. 火车头dede采集接口,图片加水印,远程图片本地化,远程无后缀的无图片本地化
  2. python中文字符乱码(GB2312,GBK,GB18030相关的问题)
  3. nodeJS express框架 中文乱码解决办法
  4. 《Apache之访问本地用户家目录》——RHEL6.3
  5. IIs工作原理
  6. JS代码的window.location属性详解
  7. IntelliJ IDEA 14使用笔记
  8. c#中的数据类型简介(枚举)
  9. 泛泰A900 刷4.4中国民营TWRP2.7.1.1版本 支持自己主动识别移动版本号(世界上第一)
  10. 多线程学习之一独木桥模式Single Threaded Execution Pattern
  11. centos7下创建数据库和用户
  12. cygwin环境c语言开发
  13. 第6次结对作业--郑锦伟&amp;古维城
  14. react native输入框定位在底部(虚拟键盘弹起)
  15. Vue下载页面显示内容
  16. HDU 4283 You Are the One ——区间dp
  17. TinyXML用法小结2
  18. ESXi6.5中将虚拟机从厚置备转换为精简置备
  19. C#设计模式六大原则——接口隔离
  20. Android 时间日期Widget 开发详解

热门文章

  1. Android中,Context,什么是Context?
  2. 使用JMeter进行简单的压力测试
  3. ubuntu与登录有关的log配置信息
  4. 通过href简单实现单击a链接跳转到页面指定位置
  5. visual studio2015从git上clone(克隆)项目
  6. ios开发证书
  7. (地址)Spring Data Solr
  8. RDIFramework.NET平台代码生成器V3.0版本全新发布-更新于20160518(提供下载)
  9. mysql的三种驱动类型
  10. 一个简单的配置管理器(SettingManager)