|
蓝森林 http://www.lslnet.com 2006年8月25日 8:28
[ajax]onreadystatechange的工作原理是什么?
onreadystatechange的作用是不是实时获取对象读取数据的状态?
如果是,那它的工作原理是什么? |
工作原理?
我的理解是:服务器端在状态改变时会向客户端浏览器发回一个讯号,而浏览器就根据这个讯号来确定它下一步应该怎么走。
我联想到:<select onchange=""> |
事件委托的接口
没啥原理 组件在分介段加载完数据后 都会调用此接口的实现 |
已经通过例子了解了一点点。
还有一个问题就是:是不是只有IE才支持这种属性,其他不支持?
拿去FF/OPERA里测试,没任何效果。 |
支持
只不过调用xmlhttp的方法不同而已 |
已做判断并调用相应的对象,还是我的写法有问题么?
[code]
var agt = navigator.userAgent.toLowerCase();
var opera = (agt.indexOf("opera") !=-1);
var is_ie = (agt.indexOf("msie") != -1) && document.all && !opera;
var is_ie5 = (agt.indexOf("msie 5") != -1) && document.all && !opera;
function createObj(){
var xmlObj = null;
if(is_ie){ //IE浏览器对象创建
var controller = (is_ie5)?"Microsoft.XMLHTTP":"Msxml2.XMLHTTP";
try{
xmlObj = new ActiveXObject(controller); }catch(e){
alert(xmlObj);
}
}else{ //非IE浏览器的对象创建
xmlObj = new XMLHttpRequest();
}
return xmlObj;
}
[/code] |
[code]
var http_request;
if (window.XMLHttpRequest) { // Mozilla, Safari,...
http_request = new XMLHttpRequest();
if (http_request.overrideMimeType) {
http_request.overrideMimeType('text/xml');
}
} else if (window.ActiveXObject) { // IE
try {
http_request = new ActiveXObject('Msxml2.XMLHTTP');
} catch (e) {
try {
http_request = new ActiveXObject('Microsoft.XMLHTTP');
} catch (e) {}
}
}
[/code]
试试看 |
|