`
阅读更多

看到这个标题,一些AJAX老鸟可能就要看不惯我了,没关系,多元化嘛!
废话少说,我所说的AJAX本质,其实就是几个AJAX底层函数,在任何AJAX框架底层所封装的方法(几个javascript函数)
1 发送数据,当然对结果的处理可以按需要去修改
function sendXmlData(xmlData,serverUrl)
{
 var xmldoc = new ActiveXObject("Msxml2.DOMDocument");
 xmldoc.async = false;
 xmldoc.loadXML(xmlData);
 var xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
 

 var url=serverUrl; 

 xmlhttp.open("post", url, false);
 xmlhttp.send(xmldoc);
 if(xmlhttp.status = 200)
 {
  return xmlhttp.responseText;
 }
 else
 {
  var result="<Result><value>0</value><msg>" + xmlhttp.statusText + "</msg></Result>";
  return result;
 }
}

2 发送简单提交需求
function sendXmlHttp(serviceUrl)
{
 var xmlhttp = new ActiveXObject("MSXML2.XMLHTTP"); 
 xmlhttp.open("GET", serviceUrl, false);
 xmlhttp.send();

 var reMsg="";
 if(testXmlhttp(xmlhttp))
 {
        reMsg=xmlhttp.responseText;
    }
    return reMsg;
}
注:serviceUrl就是一个页面的链接地址,可以绝对也可以相对
可能sendXmlData会有一个不同的版本,主要是发送数据量大小不同的原因。
有了这两个函数,你就能实现大部分无刷的效果了

============================================================================

 

一直说ajax的异步调用、局部刷新,除了级联菜单用过确实很惊奇之后,再也没再用过。
    最近要用ajax,看了jquery和YUI,疑惑重重。
    所以频频问朋友如何在struts1.2中使用jquery、YUI?
   也频频问朋友jquery无非就是js的封装而已,怎么ajax了?
    大概4,5日,念头一闪,再想这个问题,突然发现自己忽略了ajax的本质:
    1) 封装htmlhttpobject 这个对象的跨浏览器....
    2) 异步调用
    3) 局部刷新
   
    那和传统做法到底有什么不同呢?


    传统做法:界面-->直接调用后台逻辑-->处理-->得到结果-->包装结果-->在新页面显示结果


    ajax做法:界面-->直接调用ajax/js函数-->调用    后台逻辑-->处理-->得到结果-->包装结果-->在本来页面的div或者某标记那里显示结果

 


     这个区别,如果仅仅从用户角度来说,如果不需要同一个页面展现,或者不需要当前页面的其他东西,新页面和不跳转实在没有什么区别
     但是正是往往需要把结果展示在同一页面,比如数据对比,或者关联显示(级联,细目图显示)等,这个意义就出来了。

     而像jquery,其就是封装了一些函数,把该封装的封装好,从而你一调用就产生了一个对象。
     这个思想真的好,我可以开发一些创建组件(flash组件,或者其它展示组件,一调用就产生一个引用,这样对它一赋参数,从而达到了组件开发的可行性)。

      对用户来说,使用Ajax可以消除网页跳转带来的空白和闪烁,网页访问的用户体验就像本地应用程序一样。
另一个好处是可以提高效率。传统方法每次要显示新内容时,都要在服务器端生成整个html页,再传输到浏览器,如果网页复杂,而变化的内容只占一小部分,这种方式的数据传输量大;使用Ajax则只把需要变化的数据传输过来,对现在很多应用情况,都能大量减少网络传输。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics