下面有2个AJAX请求:
function sFunction(str) {
xmlhttp = new XMLHttpRequest();
xmlhttp.open("GET", "some.php?q=" + str, true);
xmlhttp.send();
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
document.getElementById("ajax").innerHTML = this.responseText;
}
}
}
和
function sFunction(str) {
xmlhttp = new XMLHttpRequest();
xmlhttp.open("GET", "some.php?q=" + str, true);
xmlhttp.send();
xmlhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
document.getElementById("ajax").innerHTML = this.responseText;
}
}
}
两者都在起作用,唯一的区别是是否使用this
参考xmlhttp
。在这种特殊情况下,我的问题是:
- 哪一个更合适?
- 是否有任何情况,一个在此Ajax功能中具有优势?
需要一些专业意见。谢谢。
在这种情况下,这两个都不是有利的,因为它们都指向同一对象。
使用this
的一个可能优点是您可以在多个Ajax对象上重复使用该函数。
function rsc() {
if (this.readyState == 4 && this.status == 200) {
document.getElementById("ajax").innerHTML = this.responseText;
}
}
xmlhttp1 = new XMLHttpRequest();
xmlhttp1.open("GET", "some.php?q="+str, true);
xmlhttp1.send();
xmlhttp1.onreadystatechange = rsc;
xmlhttp2 = new XMLHttpRequest();
xmlhttp2.open("GET", "some.php?q="+str, true);
xmlhttp2.send();
xmlhttp2.onreadystatechange = rsc;
您可能可以节省一些记忆并以这种方式工作,但是在大多数情况下,它会很小。