哪些JavaScript框架相互冲突?

时间:2020-03-06 15:02:55  来源:igfitidea点击:

有时候,我想在某些网站上使用mootools,而对于其他人则使用Prototype和script.aculo.us。我什至考虑添加其他人,但担心冲突。任何人都有经验,还是我只是想让事情变得太复杂了?

解决方案

我们最好每个应用程序都坚持使用单个框架。否则,客户端将花费太多时间/带宽来下载JavaScript。

话虽如此,Prototype和JQuery可以一起工作。信息位于JQuery网站上。

AFAIK,所有流行的框架都旨在与其他框架组合。我认为将它们结合起来不是什么大问题。但是,我不鼓励纯粹从带宽需求的情况下将它们组合在一起。较慢的站点体验比较复杂的开发体验可原谅。

如果我们确实想要这样做,那么我们将能够毫无问题地将主库设计为在其自己的名称空间内表现良好,并结合使用"将JQuery与其他框架一起使用"中的几个显着例外:

The jQuery library, and virtually all of its plugins are constrained within the jQuery namespace. As a general rule, "global" objects are stored inside the jQuery namespace as well, so you shouldn't get a clash between jQuery and any other library (like Prototype, MooTools, or YUI).
  
  That said, there is one caveat: By default, jQuery uses "$" as a shortcut for "jQuery", which you can over-ride.

所以,是的,我们可以做到,但是我们可能会自己进一步造成维护难题。今天,对于我们来说,框架功能之间的细微差别可能显而易见,但在6个月后又回来了!因此,我建议我们使其尽可能简单,并在代码库中尽可能少地使用不同的框架(最好是1个!)。

我的建议是很好地学习一个(或者多个!)框架,这样我们就可以复制所需的功能,而无需增加多个框架的开销。

记住,推送给客户端的代码越多,一切变得越慢。

根据我的经验,我可以说某些JavaScript库与浏览器而不是彼此冲突。我的意思是:有时针对某些库编写的代码不会与针对浏览器DOM编写的代码很好地共存。

最近的一个问题:jQuery与原型冲突

Prototype.js库过去非常令人反感,并与许多其他库/代码冲突。但是,据我所知,他们最近放弃了一些真正的核心人员,例如更换Element对象等。

我的Framework Scanner工具对于查找库之间的JS / CSS冲突很有用:

http://mankz.com/code/GlobalCheck.htm