[关闭]
@Tean 2016-10-19T03:52:09.000000Z 字数 1021 阅读 755

ajax (阿贾克斯)


ajax 异步JavaScript 和 XML。 无刷新更新页面局部部分

XML

  1. <?xml endoding="UTF-8" version="1.0" ?>
  2. <root>
  3. <student id="10086">
  4. <name>Lucy</name>
  5. <age>23</age>
  6. </student>
  7. </root>

数据交换基本上都是JSON数据

手机打电话

  1. 得有个手机
  2. 输入对方的手机号码
  3. 拨号
  4. 等对方响应(接听成功的话再开始沟通)

ajax

  1. 得有个XMLHttpRequest(ajax中核心对象)
    • 标准浏览器下:new XMLHttpRequest();
    • IE6下:new ActiveXObject("Microsoft.XMLHTTP");
  2. 调用.open(请求方式, 请求地址, 是否异步)函数
    • 请求方式:POST GET
    • 请求地址:
    • 是否异步: true(异步) false(同步)
  3. 调用.send(数据)函数
    • .send(null)
  4. 写.onreadystatechange()事件

请求方式

普通的ajax请求时,注意:域名、端口必须一样,否则就跨域了。

解决ajax读取缓存的问题

给url加上时间戳的参数

  1. var url = 'data.txt'; // 在IE下有缓存问题

解决方案:

  1. var url = 'data.txt?t=' + new Date().getTime();

DEMO

  1. document.getElementById('btn').onclick = function () {
  2. // 创建ajax对象
  3. var xhr = new XMLHttpRequest(); // IE7+、chrome、firefox、oprea、safari(不支持IE6)
  4. // 指定服务器地址 (服务器运行)
  5. xhr.open('GET','data.txt?t=' + new Date().getTime(),true);
  6. // 发送
  7. xhr.send();
  8. // 指定事件
  9. xhr.onreadystatechange = function () {
  10. if(xhr.readyState == 4) {
  11. if(xhr.status == 200) {
  12. // 获取服务器响应的信息
  13. var txt = xhr.responseText;
  14. alert(txt);
  15. }
  16. }
  17. };
  18. };
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注