当新的浏览器版本问世时,是否有任何不需要更新的JavaScript库?

时间:2011-09-20 18:22:26

标签: cross-browser javascript backwards-compatibility maintenance future-proof

在我的工作中,我使用dojo,而我的经验是,当主要的浏览器升级发生时,旧版dojo的某些部分会破坏。为了使Web应用程序保持最新的浏览器版本,您必须不断更新到最新版本的dojo。

我想知道所有javascript库是否都是这种情况,因为我现在正在开发一个硕士项目,这是我的教授已经投入使用的Web应用程序。我想使用一些库的一些很好的功能,但我不希望我会永远保持这个项目。我不希望应用程序在浏览器升级时停止工作。

无论如何,如果有人对此主题有任何信息或建议,我将非常感激。

4 个答案:

答案 0 :(得分:2)

当然,所有javascript库都是如此。

浏览器推出了新功能或破坏了旧版本的功能。图书馆唯一能做的就是发布一个处理破损的更新版本。

如果代码是实时的并且需要继续工作,那么这就是可以所做的全部。

减少它的唯一方法是坚持使用标准,并且只使用在选择的库中浏览器黑客的常见功能(这极大地限制了您,并且无法保证提供帮助)

答案 1 :(得分:1)

这比JavaScript更广泛。当新版本的操作系统问世时,原生应用程序需要进行一些调整。当新版本的软件问世时,插件需要进行一些调整。任何依赖于自身之外的东西,当“某些东西”发生变化时,可能需要进行一些维护。尽管如此......它确实会更糟糕......

这并不意味着它完全没有希望。您可以通过遵循一些准则来最小化问题:

  • 阅读您所依赖的内容的文档,并坚持记录的行为。你刚刚“看起来工作”的事情就更容易被打破,因为他们更有可能依赖于未记录的功能。您正确编码的内容越多(即框架提供商的期望),它就越有可能保持稳定。

  • 尽可能减少您所依赖的事物数量。如果你依赖六件事,其中一件就会破产。如果你依赖两件事,那么在出现问题之前可能需要更长的时间。

  • 寻找具有较长跟踪记录的框架,并查看它们在升级过程中的表现。除非开发团队有强烈声明他们已经改变了他们的方法,否则你应该期待未来看起来像过去。

  • 让你依赖的东西变得简单。更大,更全面的框架,当存在潜在的变化时,它的某些部分更有可能遇到麻烦。这样做的必然结果是:保持你正在做的事情。你的程序制作越复杂,就越有可能出现问题。

  • 如果需要复杂性,那么通常在框架中比在代码中更好。更有可能的是,我们会仔细编写一个广泛使用的框架,以避免将来的中断,而不是随机编写类似复杂性的内容。

最终,复杂的需求导致复杂的功能导致复杂的依赖导致脆弱的升级。保持您的要求简单,您的升级将更加无缝。华而不实/华丽与长期稳健之间存在着权衡。如果长期维护对您来说成本很高,那么请保持简单。

答案 2 :(得分:0)

Javascript库不依赖于浏览器,如果是这样的话就无法管理库。

答案 3 :(得分:-1)

你最好的选择是使用JQuery ......你可能需要更新它,不是为了兼容性,而是为了至少新的,改进的功能。但它会经常更新以保持兼容性。请记住,由于向后兼容性,更新库并不一定意味着更新代码。