最容易看到此代码中的注释。据我所知,这是所有AJAX代码的内务管理,但我不了解它的某些部分!
var xmlHttp = createXmlHttpRequestObject();
function createXmlHttpRequestObject() {
var xmlHttp;
//Why are we calling/redefining the xmlHttp variable?
// Why define it as createXmlHttpRequestObject() in the first place?
if(window.XMLHttpRequest) {
xmlHttp = new XMLHttpRequest(); //What exactly is an XMLHttpRequest?
}else{
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
return xmlHttp;
}
可能是个愚蠢的问题:AJAX需要一个xml对象吗?我知道它的缩写部分,但我并不认为服务器响应必须是XML格式。
如果这不是提出这个问题的正确方法,我很抱歉,但我不知所措,不知道我还能去哪里!
答案 0 :(得分:1)
//Why are we calling/redefining the xmlHttp variable?
我们不是。
// Why define it as createXmlHttpRequestObject() in the first place?
我们没有。
这是两个不同的变量。一个是本地的,另一个不是。不幸的是,作者为两者选择了相同的名称,因为这让你很困惑。
最终,他们最终持有相同的资源,因为本地资源从函数返回并成为非本地资源的值。
考虑以下类似的例子:
function foo() {
var x = 0;
return x;
}
var y = foo();
就像那样,除了在你的代码中,函数定义在调用之后出现,并且变量恰好具有相同的名称。你的功能用它做了更多有趣的东西。 :)
// What exactly is an XMLHttpRequest?
这是浏览器内部技术的内部名称,它使AJAX成为现实。你应该简单地谷歌谷歌所有有趣的细节。
AJAX需要一个xml对象吗?我知道它的缩写部分,但我并不认为服务器响应必须是XML格式。
没有。从历史上看,XmlHttpRequest是为XML设计的,因此名称,但它绝不是一个要求。坦率地说,我现在说这种情况非常罕见;人们喜欢JSON作为交换格式......虽然我敢肯定,在某些组织中,你仍然无法摆脱20世纪90年代。
据我所知,这是所有AJAX代码的内务管理
实际上,由于您标记了此问题jquery,因此您不应该对此进行任何。 jQuery将在内部执行所有这些gubbins,允许你坚持使用the handy $.get
-family of functions。同样,所有细节都可以在网上找到。