代码:
用法:
- /*
- * Ajax 封装
- *@author Kyle @time 2008-11-12
- *@author Kyle @time 2008-11-13
- *@veision 0.1
- */
- var $XhrCreator = false;// XMLHttpRequest 创造器
- /**
- * XMLHttpRequest 创造器1 用于非MS IE
- *
- * @return XMLHttpRequest
- */
- function xhr1() {
- return new XMLHttpRequest();
- }
- /**
- * XMLHttpRequest 创造器2 用于MS IE
- *
- * @return XMLHttpRequest
- */
- function xhr2() {
- return new ActiveXObject("Microsoft.XMLHTTP");
- }
- /**
- * 浏览器XMLHttpRequest对象创建工厂
- *
- * @return XMLHttpRequest 创造器
- */
- function XhrCreatorFactory() {
- try {
- xhr1();
- return xhr1;
- } catch (trymicrosoft) {
- try {
- xhr2();
- return xhr2;
- } catch (other) {
- alert('Browser does not support xhr');
- return null;
- }
- }
- }
- function Ajax(url) {
- /**
- * 如果XMLHttpRequest 创造器未初始化,则通过创造器工厂初始化
- */
- if (!$XhrCreator) {
- $XhrCreator = XhrCreatorFactory();// 初始化XMLHttpRequest 创造器
- }
- this.request = $XhrCreator();// 创建XMLHttpRequest对象
- this.url = url;
- this.ready = function() {
- alert('ready function is null');
- };// 当加载完成回调的函数
- }
- // 发送请求
- Ajax.prototype.send = function() {
- var request = this.request;
- var ready = this.ready;
- request.open("GET", this.url, true);
- function ready() {
- this.ready();
- }
- request.onreadystatechange = function() {
- if (request.readyState == 4)
- if (request.status == 200) {
- var data = request.responseText;
- ready(data);
- // 销毁XMLHttpRequest对象
- }
- }
- request.send(null);// !ff中间参数不可为空
- }
- var url='';//请求的url
- var ajax=new Ajax(url);
- //数据加载完毕是时执行
- ajax.ready=function(data){
- // 业务处理
- ajax=null;//销毁ajax
- }
- ajax.send();//发送数据