使用外部库的风险和利益
External Libraries: Risks and Benefits
考虑到Prototype实际应用中可能涉及一些外部库。比较普遍的问题是:
·这个库会变大。
·它会使应用程序调试困难。
·它会引入一些非常隐秘的个性化内容,从而导致不可预料的行为。
·它会和本地库,以及其他外部库发生冲突。
使用Firebug来跟踪一个典型的Ajax请求,你就可以看到一个库可以在应用程序中添加多少内容。我对Prototype进行过这样的尝试,并统计出了大约50条不同的语句,已经大大超出了一个Ajax请求的正常水平。
Prototype是一个非常小而且非常紧凑的库,大小小于15KB。而其他库,像Dojo(我们将在接下来的“Dojo”一节进行讨论)就要大得多,而且还会导致页面加载缓慢。
在使用外部库时,最令人沮丧的是:当出了问题时,即使是使用Firebug来跟踪这些代码也很难确切地找到原因。
显然这些库也有一些好处。在跨浏览器管理方面,Prototype为我们做了大量工作,因此我们不必处理所有怪癖,也不必再为向Web开发过程追加各种各样的浏览器而感到忧心忡忡。尤其是当访问页面元素的样式时,它处理差异的能力非常受人青睐,就和它的事件处理以及其他DOM扩展一样。
最后一条就是为什么不把Prototype或者任何库用于小型应用程序的原因,也是没有使用它们来建立Ajax请求的原因。因为如果要建立一个比较大的,而且将广泛用于整个网站的Ajax应用程序, 它必须和所有类型的浏览器打交道,并且要非常健壮,这时应该使用Prototype或者其他一种库,例如:jQuery、Dojo或者MochiKit。
本书中的大部分章节都会从头开始使用JavaScript来演示功能,但是很多章节也会特别描述其他库的用法,或者研究如何使用其中的一个库来实现同样的功能。至少这将有助于熟悉大量流行而且健壮的Ajax库。你也将学习如何使用标准的JavaScript功能来完成同样的功能,以便于可以自行判断什么时候该使用库,而什么时候不该使用。
提示:可能我对本章中的Prototype或者任何库的批判有些过火,原因是我想要确保本书的读者清楚地意识到使用外部库的潜在问题。实际上我觉得本章中涉及的所有库都是非常有用的工具,并且非常钦佩这些开发者,他们不仅提供了它们而且允许你免费使用。
| 回书目 上一节 下一节 |