用AJAX编写一个简单的相册

AJAX(AsynchronousJavaScriptAndXML)是一种运用JavaScript和可扩展标记语言(XML),在网络浏览器和服务器之间传送或接受数据的技术。主要应用于Ria(Richinternetapplications)的开发上。

xml问题终于在今天还是解决了。最后在FireFox里还是使用了Dom的一些老方法。我这里就具体解释一下方法吧.

代码:

varXmlHttp;//用来定义一个xmlHttpRequest对象
vartemp_url_arr=newArray()
vartemp_title_arr=newArray()
varlist_arr=newArray()
if(window.XMLHttpRequest){
 XmlHttp=newXMLHttpRequest()
 if(XmlHttp.overrideMimeType){
  XmlHttp.overrideMimeType('text/xml');
 }
}elseif(window.ActiveXObject){
 XmlHttp=newActiveXObject("Microsoft.XMLHTTP");
}
//上面这段话是判断当前浏览器版本,以定义给XmlHttp不同的xmlHttpRequest对象.如果服务器的响应没有XMLmime-typeheader,某些Mozilla浏览器可能无法正常工作。所以需要XmlHttp.overrideMimeType('text/xml');来修改该header.

functiongetData(){//读取数据
 XmlHttp.onreadystatechange=praseXml;
 XmlHttp.open("GET","xmldata2.xml",true);
 XmlHttp.send(null);
}

functionpraseXml(){//解析数据
 if(XmlHttp.readyState==4){
  if(XmlHttp.status==200){
   varxmldoc=XmlHttp.responseXML;
   varroot=xmldoc.getElementsByTagName('data').item(0)
   //使用这样的方法才可在FireFox里面生效.至少xPath我没成功过.
   for(variRoot=0;iRoot<root.childNodes.length;iRoot++){
    //alert(root.childNodes.item(iRoot))
    varpic_node=root.childNodes.item(iRoot)
    for(iPic=0;iPic<pic_node.childNodes.length;iPic++){
     varurl_node=pic_node.childNodes.item(iPic)
     for(iURL=0;iURL<url_node.childNodes.length;iURL++){
      varobj=newObject()
      obj.type=url_node.nodeName
      obj.content=url_node.childNodes.item(iURL).nodeValue
      if(url_node.nodeName=="url"){
       temp_url_arr.push(obj)
      }elseif(url_node.nodeName=="title"){
       temp_title_arr.push(obj)
      }
     }
    }
   }
   install_list()
  }
 }
}

functioninstall_list(){//整理得到的数据并装载到list_arr数组中。
 list_arr=newArray()
 vartarget_div=document.getElementById('catelog');
 target_div.innerHTML=""
 for(vari=0;i<temp_url_arr.length;i++){
  varobj=newObject()
  obj.url=temp_url_arr[i].content
  obj.title=temp_title_arr[i].content
  list_arr.push(obj)
 }
 for(vari=0;i<list_arr.length;i++){
  target_div.innerHTML+="<ahref='#' onClick='img_loader(/""+list_arr[i].url+"/");'>"+list_arr[i].title+"</a><br>";
 }
}

functionimg_loader(param1){//加载图片方法
 vartarget_div=document.getElementById('pic');
 target_div.innerHTML="<imgsrc="+param1+">"
}

你可能感兴趣的:(Ajax)