Ajax的概念

AJAX即“Asynchronous Javascript And XML”(异步JavaScript和XML),是一种用于创建快速动态网页的技术。

动态网页:是指可以通过服务器语言结合数据库随时修改数据的网页。

静态网页,随着html代码的生成,页面的内容和显示效果就基本上不会发生变化了——除非你修改页面代码。

AJAX = 异步 JavaScript和XML(标准通用标记语言的子集)。

AJAX 是与服务器交换数据并更新部分网页的技术,在不重新加载整个页面的情况下。

Ajax运行机制:

  由客户端浏览器创建XMLHttpRequest对象向服务器发出请求,然后等待服务器响应,服务器响应后将数据返回到客户端,保存到XMLHttpReques的responsetext的属性下。

Ajax请求服务器的过程中有5个状态

0:表示请求服务器之前

1:表示打开远程服务器链接对应open方法

2:表示向服务器发送数据对应send方法

3:表示服务器响应过程中并未结束

4:表示服务器响应完成

Ajax的优势

1、AJAX 在浏览器与 Web 服务器之间使用异步数据传输(HTTP 请求),这样就可使网页从服务器请求少量的信息,而不是整个页面。

2、AJAX 可使因特网应用程序更小、更快,更友好。

3、AJAX 是一种独立于 Web 服务器软件的浏览器技术。 

4、AJAX 基于下列 Web 标准: JavaScriptXMLHTMLCSS在 AJAX 中使用的 Web 标准已被良好定义,并被所有的主流浏览器支持。

5、AJAX 应用程序独立于浏览器和平台。

Web 应用程序较桌面应用程序有诸多优势;它们能够涉及广大的用户,它们更易安装及维护,也更易开发。 不过,因特网应用程序并不像传统的桌面应用程序那样完善且友好。 通过 AJAX,因特网应用程序可以变得更完善,更友好。

Ajax异步

异步:是相对于同步而言的,定时器也是异步的一种,也就是其他程序不需要等待定时器的代码全部执行完毕以后才能执行代码。因为定时器有可能是无限循环执行代码的,如果等待定时器执行完毕那么其他的代码将永远无法运行。所以异步编程就是相对于其他代码是独立完成的。也就是上面所说的ajax是独立于浏览器平台的。

Tip:事件也是异步执行的,事件是发生某件事情后才会执行代码的。

同步:就是同一个代码块中代码都是从上到下执行的。

Ajax核心对象XMLHttpRequest

var _hr=new window.XMLHttpRequest();//低版本的IE不兼容

  创建兼容对象:

  function createXHR(){

    try{

      return new window.XMLHttpRequest();

      }catch(e){

         try{

          return new ActiveXObject(“Microsoft.XMLHttpRequest”);

          }catch(e){

          if(window.confirm("浏览器版本太低,是否要下载新版本的浏览器")){  
         
window.location.href="http://download.firefox.com.cn/releases/firefox/48.0/zh-CN/Firefox-latest.dmg";       }     }   } }

  

Ajax请求服务器过程

调用上面的方法:

var _xhr=createXHR();

   if(_xhr){  

     _xhr.onreadystatechange=function(){        

  if(_xhr.readystate==4){//等于4表示服务器响应完成,一定要等服务器响应完成后才可以处理数据;

          //TODO…

       }

     }

    _xhr.open(“post”,”url”,true);

//简单请求分为post和get方式两种,第二个参数表示远程服务器接口的地址,第三个参数表示是否为异步;

    _xhr.setRequestHeader(“content-type”,”application/x-www-form-urlencoded;charset=utf-8”);

    _xhr.send(null);

}

  

  

最新文章

  1. 探索c#之Async、Await剖析
  2. sicily 猴子选大王
  3. C# 使用memcache(memcache安装)
  4. 关于java多线程
  5. K2 BPM + SAP,实现全方面管理企业
  6. 如何在我们项目中利用开源的图表(js chart)
  7. iOS 设计模式之抽象工厂
  8. React Native学习-将 'screen', 'window' or a view生成图片
  9. ffmpeg 2.8.1 最新版本 VS2013 可调式动态库
  10. 反转链表 --剑指offer
  11. SSH-KEY服务及批量分发与管理实战
  12. Javascript 计算分页
  13. Android NDK开发Crash错误定位[转]
  14. Kindeditor上传图片到七牛云存储插件(PHP版)
  15. 6T GPT 移动硬盘在linux下的挂载
  16. 常用的meta标签总结
  17. 【2017-04--28】Winform中ListView控件
  18. Python笔记·第九章—— 函数 (一)
  19. javascript装饰器模式
  20. 如何导出chrome已安装的拓展程序

热门文章

  1. DDD 领域驱动设计-商品建模之路
  2. Redis百亿级Key存储方案(转)
  3. thinkphp数据的查询和截取
  4. XAMARIN ANDROID 二维码扫描示例
  5. JQuery阻止事件冒泡
  6. Mysql 学习之基础操作
  7. Linux实战教学笔记02:计算机系统硬件核心知识
  8. NYOJ 975
  9. 记从安装centos系统在到使用mono3.2部署MVC过程遇到的问题
  10. web前端的春天 or 噩梦