在构建网站时,我应该在特定用户控件或母版页中引用 JavaScript 库


when building a website, should I refer to javascript libraries in specific user controls or in the master page?

以下哪种情况在客户端(JavaScript)库引用和加载方面最强。

请注意,我假设Web解决方案设计良好,因此组件封装良好

另外,为了

清楚起见,我所说的母版页可以是用户控件或任何保存所有库引用并在站点加载时加载的内容,而不管当前网站的内容如何

1 - 在母版页中包含所有自定义(例如第三方)库的引用(链接 href)。

  • 可以说这很容易维护,因为所有引用都在一个地方。

  • 也有争议的是,执行库升级很容易,因此您无需在引用库的解决方案中寻找更新其引用。

2 - 在其特定用户控件中包含对库的引用

  • 这不应该提高性能,因为网站只在需要时加载库。例如,可以参考适用于用户控件中的地图的 JavaScript 库,该库处理地图与加载地图库相反,即使当前视图上没有地图也是如此。

  • 这样可以很好地封装组件。 例如,尝试修复 Map 组件中的 bug 的开发人员在打开 Map 用户控件时将看到它引用的所有库。这样就无需浏览母版页并查看使用了哪些库。

我认为这不是正确的思考方式。

不加载所有库的唯一原因是性能。您给出的调试原因太小,无法考虑。

您可以通过多种不同的方式提高性能。到目前为止,最简单,最直接和可实现的是将所有JavaScript缩小到一个文件中。您还可以使用Google的闭包编译器或Yahoo YUI Compressor等编译器来获得更小的文件大小和更快的执行速度。

如果此时您仍然遇到性能问题(可归因于网络延迟),那么可以考虑延迟加载库。

这并不意味着你应该放弃依赖注入的准则。任何好的框架都会为你提供依赖注入的机制。这应该使以后切换到解决方案 2 变得相当微不足道。