Ajax是异步javascript和xml,可以在不重新加载整个网页的情况下,与服务器异步数据交换,对网页中某个部分进行局部刷新。

Ajax是如何实现局部刷新的:

在脚本设置window对象的location属性和调用表单对象的submit方法时,都会初始化HTTP请求,这时浏览器就会刷新页面。Ajax技术使用XMLHttpRequest对象后台与服务器通讯,这样就可以达到局部刷新的目的。

Ajax是如何实现异步调用的:

异步调用主要通过回掉函数来实现。一旦服务器响应,就执行回掉函数callback()。

浏览器在XMLHttpRequest类上定义了HTTP API,使用这个API发送异步请求的过程,主要的方法是open()和send()。

open(method,url,async) 规定请求的类型、URL 以及是否异步处理请求。
send(string) 将请求发送到服务器。

一个完整的HTTP响应由状态码、响应头集合和响应主体组成。在异步请求中,通过监听XMLHttpRequest对象上的readystatechange事件来得到响应就绪时的通知。

readyState指定了HTTP请求的状态。当readyState为4时或服务器的响应完成时,浏览器会触发readystatechange事件。在Ajax执行过程中,服务器会通知客户端当前的通信状态,就是通过更新readyState来完成。

 1 xmlhttp.onreadystatechange=function()
2 {
3 if (xmlhttp.readyState==4 && xmlhttp.status==200)
4 {
5 document.write(xmlhttp.responseText);
6 var type = request.getResponseHeader("content-Type");
7 if(type=="application/json") {
8 callback(xmlhttp.responseText); //回掉函数解析HTTP响应
9 }
10 }
11 }
12 xmlhttp.open("GET",url,true);
13 xmlhttp.send()

最新文章

  1. SQL创建字段信息(表值函数)
  2. Ubuntu下安装Docker
  3. jq load()方法用法
  4. POJ 1185 炮兵阵地(经典的状态压缩DP)
  5. 翻译 - 元编程动态方法之public_send
  6. Hadoop教程之编写HelloWorld(2)
  7. Part 100 Func delegate in c#
  8. angular启动过程分析
  9. .net framework3.0 以上版本开发的软件乱码问题
  10. 8051、ARM和DSP指令周期的测试与分析
  11. java课程设计-猜数游戏
  12. linux防火墙简单的使用
  13. 芝麻HTTP:在无GUI的CentOS上使用Selenium+Chrome
  14. Python函数的定义、参数传入与函数的调用
  15. 软件测试面试-如何高质量提交缺陷bug?
  16. 清除Windows 10的文件夹浏览痕迹
  17. 数据库新增“自动添加”类字段 auto_now_add 如何不影响之前数据
  18. Oracle数据库查看表空间是否为自增的
  19. whatweb tree
  20. mysql 创建merge表方便查询

热门文章

  1. docker使用dockerfile 构建redis镜像
  2. 【java并发核心一】Semaphore 的使用思路
  3. LoRaWAN 1.1 网络协议规范 - 4 MAC 帧格式 Part II
  4. 三篇文章带你极速入门php(一)之语法
  5. 认证登录装饰器与form组件的使用
  6. Shell中的>/dev/null 2>&1 与 2>&1 >/dev/null 与&>/dev/null 的区别
  7. Linux 标准目录结构 FHS
  8. 奇怪吸引子---Halvorsen
  9. Python中多进程的使用
  10. Cassandra的数据模型的理解