蓝森林首页 | 返回主页 | 本站地图 | 站内搜索 | 联系信箱 |
 您目前的位置:首页 > 自由软件 > 技术交流 > 应用编程


    

蓝森林 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]
试试看




Copyright © 1999-2000 LSLNET.COM. All rights reserved. 蓝森林网站 版权所有。 E-mail : webmaster@lslnet.com