WEB开发网: Ajax技术的实现主要依赖于xmlhttprequest,但我们在调用其来进行异步数据的传输时,由于xmlhttp是个短线过程(处理事件完成后就销毁)如果不对该对象进行包装处理的话,就不得不在需要
赞助商链接
中资源
>> 最新文章
>> 赞助商
>> 热门文章
WEB开发网文章阅读

XMLHTTP对象封装技术

作者:未知 文章来源:WEB开发者 更新时间:2007-4-10 21:42:10

     ajax(动态网站静态化)技术的实现主要依赖于xml(标准化越来越近了)httprequest,但我们在调用其来进行异步数据的传输时,由于xml(标准化越来越近了)http是个短线过程(处理事件完成后就销毁)如果不对该对象进行包装处理的话,就不得不在需要调用的地方重新构建xml(标准化越来越近了)httprequest,每次调用都要写一大段的代码,

实在不是个好办法。好在现在很多开源的ajax(动态网站静态化)框架都提供了对xml(标准化越来越近了)http封装的方案。这里以ajax(动态网站静态化)tags自带的prototype-1.4.0.js为母版,来看看如何将xml(标准化越来越近了)http对象封装成一个可复用的方法。

   在prototype.js中,首先定义了一个变量:ajax(动态网站静态化)
   var ajax(动态网站静态化) = {
   getTransport: function() {
   return Try.these(
   function() {return new ActiveXObject('Msxml(标准化越来越近了)2.xml(标准化越来越近了)HTTP')},
   function() {return new ActiveXObject('Microsoft.xml(标准化越来越近了)HTTP')},
   function() {return new xml(标准化越来越近了)HttpRequest()}
   ) || false;
   },

   activeRequestCount: 0
  }
  变量返回了一个xml(标准化越来越近了)httprequest,可以看到,如果我们调用了ajax(动态网站静态化).getTransport(),每次都会返回一个新的xml(标准化越来越近了)httprequest对象。
   在ajax(动态网站静态化)变量中定义了一个基础方法ajax(动态网站静态化).Base和该基础方法的原型(初始时,每个脚本方法默认都有个空的原型,该原型会继承Object的原型,如果我们在Object中改变了原型,则所有的脚本方法都会被改变。) 该基础方法被ajax(动态网站静态化).Request所继承,注意的是,如果在ajax(动态网站静态化).Request中填充了继承的原型的同名方法或变量,则会实现重载。
   ajax(动态网站静态化).Base原型中最主要的是setOptions方法,过会我们就会用到。
  setOptions: function(options) {
   this.options = {
   method: 'post',
   asynchronous: true,
   parameters: ''
   }
   prototype中对request是通过定义ajax(动态网站静态化).Request原型(ajax(动态网站静态化).Request.prototype)来实现的。但我们并不能直接对ajax(动态网站静态化).Request进行调用,主要原因是ajax(动态网站静态化).Request并没有提供一个统一处理的过程。而且我们可能需要通过request 再取得response。(试想一下,客户那边发出一条信息,都始终没与收到回复,那是会让人觉得很恼火的事~),prototype同样为我们封装好了resoponse(ajax(动态网站静态化).Responders),但两者都是相互独立的,如何把他们进行整合呢?

请保留地址 http://www.cncms.com.cn/ajax(动态网站静态化)/k308110.html

[1] [2]  下一页

百度搜索中共有相关主题
[阅读:次] [返回上一页] [打 印]
  • 相关文章
  • 本类热门