• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Flash & Ajax 操作 XML 实例:无刷新分页
    其实标题只是一个噱头罢了,只是想谈一下,Javascript 与 Actionscript 是如何操作XML的。
    希望能帮助一些只用 Javascript  或 只懂 Actionscript 的朋友,了解两者的相同与不同之处。
    Flash 与 后台连接有许多种,Actionscript 调用 XML() 算是比较简单的一种了,
    而Javascript 调用 xmlHttp ,便形成了现在很流行的Ajax了。
    现在就用一个网上常出现的分页效果来对 Flash 和 Ajax 做个入门学习。
     效果预览
    源文件下截
    source.rar
    实际运用中一般是通过后台脚本生成XML文件,再对其产生的数据进行操作
    由于篇幅关系在本文中将用1.xml 2.xml 3.xml代替。后台脚本不做说明
    首先了解一个XML的结构:
    复制代码 代码如下:

    data>  
      movie id="1" type="爱情">幸福终点站/movie>  
      movie id="2" type="恐怖">绝命终结站/movie>  
      movie id="3" type="喜剧">恐怖电影/movie>  
      …  
      ….  
    /data>

    从简单的Flash开始吧
    复制代码 代码如下:

    function setxml(page){  
      pageXml = new XML();                                         //申明XML对象  
      pageXml.ignoreWhite = true;                                 //允许空白  
      pageXml.load(page+".xml?rid="+Math.random());                //读取XML文件  
      pageXml.onLoad = function(success)  
      {  
        if (success)  
          {  
          parseXml(pageXml);                                       //如果读取成功,分析XML文件  
        }  
      }  
    }  
    function parseXml(pageXml){  
      xmlroot = ageXml.firstChild;                                     //定义XML根目录  
      for (i=0;ixmlroot.childNodes.length;i++)  
      {  
        attachMovie("tr","tr_"+i,i);                                     //生成行  
        this["tr_"+i]._x = 13;  
        this["tr_"+i]._y = 25*i+33;  
        this["tr_"+i].no = xmlroot.childNodes[i].attributes.id;         //取得一条记录的ID  
        this["tr_"+i].name = xmlroot.childNodes[i].firstChild;          //片名  
        this["tr_"+i].type = xmlroot.childNodes[i].attributes.type;     //类型  
        page = pageXml.firstChild.attributes.page;                      //获取当前页  
      }  
    }  
    if (!page)                                                         //初始页码为第一页 page=1;  
      setxml(page);                                                    //初始第一页内容  
    presetxmlbtn.onRelease = function()  
    {  
      setxml(page*1-1);                                                //向前翻页,读取内容  
    }            
    nextbtn.onRelease = function()  
    {  
      setxml(page*1+1);                                                //向后翻页,读取内容  


    接下来是Ajax了
    关于Ajax 入门学习可以有翻一下我以前的日志,我推荐过两篇不错的文章
    复制代码 代码如下:

    var xmlHttp  
    /*  
    第一部分是有关xmlHttp的申明,因为IE和其它一些浏览生成xmlHttp的对象有一点两样,所以申明时比较麻烦  
    其它主要功能相当于Flash方式中的 "new XML()" 当然还包函其它功能   
    */  
    function GetXmlHttpObject(handler)  
    {   
      var objXmlHttp=null;   
      if (navigator.userAgent.indexOf("MSIE")>=0)  
      {   
        var strName="Msxml2.XMLHTTP";  
        if (navigator.appVersion.indexOf("MSIE 5.5")>=0)             //既使是IE都有两种申明方式  
        {  
          strName="Microsoft.XMLHTTP";  
        }   
        try  
        {   
          objXmlHttp=new ActiveXObject(strName);  
          objXmlHttp.onreadystatechange=handler;   
          return objXmlHttp;  
        }   
        catch(e)  
        {   
          alert("Error. Scripting for ActiveX might be disabled");   
          return;  
        }   
      }  
      else  
      {  
        objXmlHttp=new XMLHttpRequest();                             //Firefox、Opera等都是用这种  
        objXmlHttp.onload=handler;  
        objXmlHttp.onerror=handler;  
        return objXmlHttp;  
      }  
    }  
    //首先要被调用的函数,可看作上面Flash中的 setxml()函数,  
    function showpage(no)  
    {  
      document.getElementById("loadstatus").innerHTML = "Lading…";  
      var url = no+".xml?rid="+Math.random();  
      //stateChanged_showplist是下面的函数名,注意的是不要加括号  
      xmlHttp=GetXmlHttpObject(stateChanged_showplist);  
      //传递方式是GET,也可以选择POST方式,有时传递变量是中文要记得设置文件头                     
      xmlHttp.open("GET", url , true);  
      xmlHttp.send(null);  
    }  
    //分析XML函数  
    function stateChanged_showplist()  
    {  
      if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete") //xmlHttp.readyState==4  4表示读取结束  
      {  
        document.getElementById("loadstatus").innerHTML = " ";  
        table = document.getElementById("pagebody");               //生成TALBE Element  
        for (i = table.rows.length-1; i >= 0; i–)                 //要删除原来有的行,不然表格会无限延伸  
          table.deleteRow(i);  
        xmlroot = xmlHttp.responseXML.getElementsByTagName("movie");  //取得XML所需要的根  

        for (i=0;ixmlroot.length;i++)  
        {  
          //简单的DOM,生成表格。  
          tr = table.insertRow(-1);   
          td = tr.insertCell(-1);  
          td.align = "center";  
          td.innerHTML = ‘span class="warntxt">'+xmlroot[i].getAttribute('id')+'/span>';  
          td = tr.insertCell(-1);  
          td.innerHTML = xmlroot[i].firstChild.data;  
          td = tr.insertCell(-1);  
          td.innerHTML = xmlroot[i].getAttribute('type');  
        }  
        //定义翻页链接  
        page = xmlHttp.responseXML.getElementsByTagName("data")[0].getAttribute('page')  
        if (page >1)  
        {  
          prepage = page*1-1;  
          var changpage = "a href='javascript:showpage("+ prepage +")'>上一页/a> ";  
        }  
        else  
        {  
          changpage = "上一页 ";  
        }  
        if (page 3)  
        {  
          nextpage = page*1+1;  
          changpage += "a href='javascript:showpage("+ nextpage +")'>下一页/a> ";  
        }  
        else{  
          changpage += "下一页 ";  
        }  
        document.getElementById("changpage").innerHTML = changpage;  
      }  
    }
    您可能感兴趣的文章:
    • php ajax无刷新分页,支持id定位
    • jquery 插件 web2.0分格的分页脚本,可用于ajax无刷新分页
    • AspNetAjaxPager,Asp.Net通用无刷新Ajax分页控件,支持多样式多数据绑定
    • JS+Ajax+Jquery实现页面无刷新分页以及分组 超强的实现
    • ajax实现无刷新分页(php)
    • jQuery Pagination Ajax分页插件(分页切换时无刷新与延迟)中文翻译版
    • JQuery+Ajax无刷新分页的实例代码
    • php+ajax实现无刷新分页的方法
    • asp.net使用AJAX实现无刷新分页
    • 实例代码讲解ajax实现的无刷新分页
    上一篇:AJAX打造博客无刷新搜索
    下一篇:Ajax 汇总以及初步评价
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    Flash & Ajax 操作 XML 实例:无刷新分页 Flash,amp,Ajax,操作,XML,实例,