| {
var httpStatus=req.status;
if (httpStatus==200 || httpStatus==0)
{
this.onload.call(this);
}
else
{
this.onerror.call(this);
}
}
},
defaultError:function()//default error handler
{
alert("error fetching data!"
+"\n\nreadyState:"+this.req.readyState
+"\nstatus: "+this.req.status
+"\nheaders: "+this.req.getAllResponseHeaders());
}
};
怎么样,看到了吗?没有?那好,让我来解释一下这段代码如何应用Adapter和Facade模式的。当然,这里并不分析具体代码的含义了。
1、 Adapter模式
在Ajax应用中经常用到的XHR(xmlHttpRequest)对象,就是需要Adapter模式的一个很好的例子。
XHR对象非W3C标准,所以,尽管现有的较新的浏览器都支持XHR对象,但其具体实现是不一致的。在微软的IE里,XHR是以“ActiveXObject”的样式实现的。而在mozilla浏览器里,其又以一种build-in对象的形式实现。天知道在其他的什么浏览器或者日后的日子里,这种实现方式会不会发生变化。
而对于我们常用的应用程序来说,我们并不关心这些所有的细节。我们所需要知道的,就是当我们希望创建一个XHR对象时,有一个XHR对象会被创建,并且供我们使用。至于究竟如何创建,我们对它并不关心。所以,你可以看到,在上面的代码里,我们是通过在ContentLoader类的loadXMLDoc的方法中实现的。
if (window.XMLHttpRequest)
上一页 [1] [2] [3] [4] [5] [6] 下一页 |