首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Ajax >

javascript封装一个Ajax方法。解决思路

2012-05-13 
javascript封装一个Ajax方法。求解。不想用Jquery。[解决办法]楼主搜下 ajax类 很多的。比如JScript code/** *

javascript封装一个Ajax方法。
求解。不想用Jquery。

[解决办法]
楼主搜下 ajax类 很多的。

比如

JScript code
/** * 执行基本ajax请求,返回XMLHttpRequest * Ajax.request(url,{ *         async     是否异步 true(默认) *         method     请求方式 POST or GET(默认) *         data     请求参数 (键值对字符串) *         success 请求成功后响应函数,参数为xhr *         failure 请求失败后响应函数,参数为xhr * }); * */Ajax = function(){    function request(url,opt){        function fn(){}        var async   = opt.async !== false,            method  = opt.method     || 'GET',            data    = opt.data         || null,            success = opt.success     || fn,            failure = opt.failure     || fn;            method  = method.toUpperCase();        if(method == 'GET' && data){            url += (url.indexOf('?') == -1 ? '?' : '&') + data;            data = null;        }        var xhr = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject('Microsoft.XMLHTTP');        xhr.onreadystatechange = function(){            _onStateChange(xhr,success,failure);        };        xhr.open(method,url,async);        if(method == 'POST'){            xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded;');        }        xhr.send(data);        return xhr;        }    function _onStateChange(xhr,success,failure){        if(xhr.readyState == 4){            var s = xhr.status;            if(s>= 200 && s < 300){                success(xhr);            }else{                failure(xhr);            }        }else{}    }    return {request:request};    }();
[解决办法]
可以用javascript 直接实现,此链接一步步教你原理,不过是英文版的

其实ajax的各种框架也是把上面的方法帮你封装在内了。除此如果你不想用jquery,其他ajax框架有好多:

ASP.NET AJAX,
Dojo Toolkit,
Ext JS, 
MooTools, 
Prevel Framework,
Prototype, 
Spry framework, 
YUI Library,

热点排行