Kook ajax v1.0

来源:互联网 发布:最新免费读书软件 编辑:程序博客网 时间:2024/04/30 10:20
代码:
  1. /*
  2.  * Ajax 封装
  3.  *@author Kyle @time 2008-11-12
  4.  *@author Kyle @time 2008-11-13
  5.  *@veision 0.1
  6.  */
  7. var $XhrCreator = false;// XMLHttpRequest 创造器
  8. /**
  9.  * XMLHttpRequest 创造器1 用于非MS IE
  10.  * 
  11.  * @return XMLHttpRequest
  12.  */
  13. function xhr1() {
  14.     return new XMLHttpRequest();
  15. }
  16. /**
  17.  * XMLHttpRequest 创造器2 用于MS IE
  18.  * 
  19.  * @return XMLHttpRequest
  20.  */
  21. function xhr2() {
  22.     return new ActiveXObject("Microsoft.XMLHTTP");
  23. }
  24. /**
  25.  * 浏览器XMLHttpRequest对象创建工厂
  26.  * 
  27.  * @return XMLHttpRequest 创造器
  28.  */
  29. function XhrCreatorFactory() {
  30.     try {
  31.         xhr1();
  32.         return xhr1;
  33.     } catch (trymicrosoft) {
  34.         try {
  35.             xhr2();
  36.             return xhr2;
  37.         } catch (other) {
  38.             alert('Browser does not support xhr');
  39.             return null;
  40.         }
  41.     }
  42. }
  43. function Ajax(url) {
  44.     /**
  45.      * 如果XMLHttpRequest 创造器未初始化,则通过创造器工厂初始化
  46.      */
  47.     if (!$XhrCreator) {
  48.         $XhrCreator = XhrCreatorFactory();// 初始化XMLHttpRequest 创造器
  49.     }
  50.     this.request = $XhrCreator();// 创建XMLHttpRequest对象
  51.     this.url = url;
  52.     this.ready = function() {
  53.         alert('ready function is null');
  54.     };// 当加载完成回调的函数
  55. }
  56. // 发送请求
  57. Ajax.prototype.send = function() {
  58.     var request = this.request;
  59.     var ready = this.ready;
  60.     request.open("GET"this.url, true);
  61.     function ready() {
  62.         this.ready();
  63.     }
  64.     request.onreadystatechange = function() {
  65.         if (request.readyState == 4)
  66.             if (request.status == 200) {
  67.                 var data = request.responseText;
  68.                 ready(data);
  69.                 // 销毁XMLHttpRequest对象
  70.             }
  71.     }
  72.     request.send(null);// !ff中间参数不可为空
  73. }
用法:    
  1. var url='';//请求的url

  2.  var ajax=new Ajax(url);

  3.         //数据加载完毕是时执行
  4.         ajax.ready=function(data){
  5.             // 业务处理       
  6.             ajax=null;//销毁ajax
  7.             }
  8.         ajax.send();//发送数据
原创粉丝点击