生命潦草

原来曾经拥有,远比失去痛苦
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

自己模仿jQuery,protorype的Ajax框架

Posted on 2010-04-08 14:44  生命潦草  阅读(303)  评论(0编辑  收藏  举报

用惯了jQuery框架的ajax方法操作,感觉封装了之后,使用起来实在很简单,于是自己也模仿了一个,虽然没有jQuery那么强大

但是原理是一样的,写出来留个记忆:

 

创建xmlhttprequest对象
1 function CreateXMLhttpRequest() {
2 if (window.XMLHttpRequest) {
3 return new XMLHttpRequest();
4 }
5 if (ActiveXObject) {
6 var arryxml = ["MSXML2.XMLHTTP", "Microsoft.XMLHTTP"];
7 for (var i = 0; i < arryxml.length; i++) {
8 try {
9 return new ActiveXObject(arryxml[i]);
10 }
11 catch (e) {
12 alert('未能找到驱动');
13 }
14 }
15 }
16

 

 

创建Ajax类
1 function Ajax(url, options) {
2 var xmlhttp = CreateXMLhttpRequest();
3 xmlhttp.onreadystatechange = function() {
4 if (xmlhttp.readyState == 4) {
5 if (xmlhttp.status == 200) {
6 var header = xmlhttp.getResponseHeader("Content-Type");
7 var txt = null;
8 if (header.indexOf("text/html") != -1) {
9 txt = xmlhttp.responseText;
10
11 }
12 if (header.indexOf("text/xml") != -1) {
13 txt = xmlhttp.responseXML;
14 }
15 if (header.indexOf("application/json") != -1) {
16 txt = xmlhttp.responseText.toJSONString();
17 }
18 options.func.call(xmlhttp,txt);
19
20 }
21
22 }
23
24 };

 

为了演示起来简单,此处我使用了jQuery框架:

 

使用演示
1 $(function() {
2 $("#getjson").click(function() {
3 var id = "cyc";
4 var type = "post";
5 Ajax("Responses", {
6 method: 'POST',
7 send: "ddd=" + id + "&ss=" + type,
8 func: function(re) {
9 alert(re); }
10 });
11
12 });
13 });