[英]AJAX: advantages to using jQuery's .ajax() instead of XMLHttpRequest?
與下面顯示的AJAX函數類型相比,使用jQuery AJAX函數有什么真正的優勢? 顯然,語法更簡潔/更短-但是有什么明顯的區別可以證明重寫我現有的Ajax代碼嗎?
var ajax = getXmlObject();
var url= '/addPartToCart.php?m=' + encodeURIComponent(m) +
'&q=' + qty +
'&refresh=' + randomString();
if (ajax.readyState == 4 || ajax.readyState == 0) {
ajax.open("POST", url, true);
ajax.onreadystatechange = function (){
if (ajax.readyState == 4) {
}
};
ajax.send(null);
}
function getXmlObject() {
if (window.XMLHttpRequest) {
return new XMLHttpRequest();
} else if(window.ActiveXObject) {
return new ActiveXObject("Microsoft.XMLHTTP");
} else {
//error
}
}
UPDATE
我已經對所有AJAX函數進行了重新編程,以使用jQuery的.ajax()
。 我必須說,我已經看到速度和可靠性方面的顯着改善。
您可能想看看jQuery的src / ajax.js源代碼 。 它是720 sloc而不是10的一個原因的主要原因是:
修復並包裝不同瀏覽器之間的已知不一致。 評論將揭示許多這些問題。
提供額外的功能,例如通過相同的接口處理JSONP,事件掛鈎等。以及其他語法糖。
我不確定是否值得重寫,除非您已經在網站的其他部分使用了jQuery。 主要優點是使用jQuery可以輕松閱讀代碼,並且可以為您解決跨瀏覽器的兼容性問題。
但是,僅將jQuery用於AJAX可能不是最好的主意。
作為JS和Jquery的新手,我可以說jQuery.Post(url); 比上面更容易閱讀一百萬倍... :-)
這實際上取決於您是否需要jquery ajax提供的其他功能。 我傾向於將數據作為對象文字而不是字符串concats發送。 我經常使用的一項功能是能夠評估響應HTML中的腳本標簽。 jQuery ajax很好地處理了這些事情。
如果您對代碼感到滿意,那就堅持吧。 我認為,如果包含jQuery,您會發現很多地方(除了ajax之外)都可以實現jQuery。 :)
是的,goto的w / if語句可以在while循環中進行所有操作,for循環,列表理解或數組map / filter / reduce可以進行。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.