1、静态创建:这种创建方式会在页面显示给用户之前完成XMLHttpRequest对象的创建。(虽然根据规范不能完全精确地 知道这些代码何时运行对浏览器有什么影响,但是可以保证这些代码在用户能够与页面交互之前运行行。)
2、动态创建:这种创建方式推迟了XMLHttpRequest对象的创建时间,只有在触发函数时才创建XMLHttpRequest对象。(这种创建方式相比静态创建方式来说,推迟了错误的时间,只有当函数getRequestInfo()触发时才会知道XMLHttp对象是否正确创建,假设用户录入大篇文字后却发现无法提交。确实非常令人讨厌.)
<script language="javascript" type="text/javascript">
var request = false ;
try {
request = new XMLHttpRequest();
} catch (trymicrosoft) {
try {
request = new ActiveXObject("Msxml2.XMLHTTP" );
} catch (othermicrosoft) {
try {
request = new ActiveXObject("Microsoft.XMLHTTP" );
} catch (failed) {
request = false ;
}
}
}
if (! request)
alert("Error initializing XMLHttpRequest!" );
</script>
var request = false ;
try {
request = new XMLHttpRequest();
} catch (trymicrosoft) {
try {
request = new ActiveXObject("Msxml2.XMLHTTP" );
} catch (othermicrosoft) {
try {
request = new ActiveXObject("Microsoft.XMLHTTP" );
} catch (failed) {
request = false ;
}
}
}
if (! request)
alert("Error initializing XMLHttpRequest!" );
</script>
2、动态创建:这种创建方式推迟了XMLHttpRequest对象的创建时间,只有在触发函数时才创建XMLHttpRequest对象。(这种创建方式相比静态创建方式来说,推迟了错误的时间,只有当函数getRequestInfo()触发时才会知道XMLHttp对象是否正确创建,假设用户录入大篇文字后却发现无法提交。确实非常令人讨厌.)
<script language="javascript" type="text/javascript">
var request;
function createRequest() {
try {
request = new XMLHttpRequest();
} catch (trymicrosoft) {
try {
request = new ActiveXObject("Msxml2.XMLHTTP" );
} catch (othermicrosoft) {
try {
request = new ActiveXObject("Microsoft.XMLHTTP" );
} catch (failed) {
request = false ;
}
}
}
if (! request)
alert("Error initializing XMLHttpRequest!" );
}
function getRequestInfo() {
createRequest();
// something other code
}
</script>
var request;
function createRequest() {
try {
request = new XMLHttpRequest();
} catch (trymicrosoft) {
try {
request = new ActiveXObject("Msxml2.XMLHTTP" );
} catch (othermicrosoft) {
try {
request = new ActiveXObject("Microsoft.XMLHTTP" );
} catch (failed) {
request = false ;
}
}
}
if (! request)
alert("Error initializing XMLHttpRequest!" );
}
function getRequestInfo() {
createRequest();
// something other code
}
</script>