使用jQuery AJAX函数对于下面显示的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
}
}
更新
我已经将我的所有AJAX函数重新编程为使用jQuery的.ajax()
。我必须说我已经看到了速度和可靠性的显着提高。
答案 0 :(得分:2)
您可能希望了解jQuery的src/ajax.js source code。其中720 sloc而不仅仅是10的一个原因主要是:
修复并包装不同浏览器之间的已知不一致。评论将揭示其中许多问题。
提供额外的功能,例如通过相同的界面,事件挂钩等处理JSONP以及其他语法糖。
答案 1 :(得分:1)
除非您已经在网站的其他部分使用jQuery,否则我不确定是否值得重写。主要优点是使用jQuery更容易阅读代码,并且它会为您解决跨浏览器兼容性问题。
仅为AJAX使用jQuery可能不是最好的主意。
答案 2 :(得分:0)
作为JS和Jquery的新手,我可以说jQuery.Post(url);比以上容易阅读的百万次......: - )
答案 3 :(得分:0)
这实际上取决于您是否需要jquery ajax提供的其他功能。我倾向于将数据作为对象文字而不是字符串连接发送。我经常使用的一个功能是能够在响应html中评估脚本标记。 jQuery ajax非常好地处理这些事情。
如果您对代码感到满意,那么它就会坚持下去。我想你会发现很多地方(除了ajax)实现jQuery,如果你包含它。 :)
答案 4 :(得分:-2)
是的,并且goto的w / if语句可以执行while循环,for循环,列表推导或数组映射/ filter / reduce都能做到。