function downloadUrl(url, callback) 
{       
var request = window.ActiveXObject ? new ActiveXObject('Microsoft.XMLHTTP') :new XMLHttpRequest;        
request.onreadystatechange = function() 
{         
if (request.readyState == 4) 
{           
request.onreadystatechange = doNothing;           
callback(request, request.status);         
}       
};        
request.open('GET', url, true);       
request.send(null);     
} 这个里面的callback(request, request.status); 怎么理解?是个函数?还是?

解决方案 »

  1.   

    当你的 ruquest.readyState 值等于4时,就执行那个callback函数啊,然后传两个参数进去也就是一个 ajax回调,当请求响音时,调用这个 callback函数
      

  2.   

    downloadUrl("z.php", function(data) 
    {         
    var xml = data.responseXML;         
    var ers = xml.documentElement.getElementsByTagName("er");         
    for (var i = 0; i < ers.length; i++) 
    {           
    var name = ers[i].getAttribute("name");           
    var address = ers[i].getAttribute("address");           
    var type = ers[i].getAttribute("type");  
             
    var point = new google.maps.LatLng(               
    parseFloat(ers[i].getAttribute("lat")),               
    parseFloat(ers[i].getAttribute("lng")));           
    var html = "<b>" + name + "</b> <br/>" + address;           
    var icon = customIcons[type] || {};           
    var er = new google.maps.Marker({             
    map: map,             
    position: point,             
    icon: icon.icon,             
    shadow: icon.shadow           }); 
    //bindInfoWindow(er, map, infoWindow, html);         


    }); 
    function downloadUrl(url, callback) 
    {       
    var request = window.ActiveXObject ? new ActiveXObject('Microsoft.XMLHTTP') :new XMLHttpRequest;        
    request.onreadystatechange = function() 
    {         
    if (request.readyState == 4) 
    {           
    request.onreadystatechange = doNothing;           
    callback(request, request.status);         
    }       
    };        
    request.open('GET', url, true);       
    request.send(null);     
      

  3.   

    多谢楼上的各位回答,上面是这个函数定义和具体的使用例。。按照我的理解,downloadUrl()这个函数是传递进去一个url地址,对这个地址进行解析,如果满足状态四,那么就对这个地址进行callback函数,然后返回一个值。是不是这样的?
    那么第一个使用这个函数时候,里面的callback换成了function(data),这个是系统自定义的函数?还是就是指的后面的这个函数?只不过是function将downloadurl返回的值data再调用到后面这个函数中?
      

  4.   

    readyState==4 就是响应成功完成 。
    里面的callback换成了function(data) 也是可以的 ,进入一个匿名函数 。