繁体   English   中英

从外部或内部源加载网站的库,脚本等?

[英]Load libraries, scripts, etc for the website from external or internal sources?

我刚刚开始我的前端冒险,很可能是网页设计。 我一直在努力回答一个技术问题,但我找不到合理的答案。

您可以加载,下载这么多的库,以使您的Web开发更快。 因此有我的问题。 下载这些库(例如Boostrap,jQuery,Angular,Google的字体等)以及从官方来源链接到它们(外部)或下载它,上传到您的服务器然后链接到位置文件(内部源代码)是否更好? )在你的服务器上?

我的想象力告诉我,如果我要下载它们并在我的服务器上上传,那么链接到它会使整个网站加载更快。 这是一个好主意吗?

有时,如果从外部源链接,它实际上可能更快。 那是因为浏览器存储了它访问的最新数据,许多站点都使用Bootstrap,jQuery等。 对于不太受欢迎的库,它可能不会经常发生。

但请记住,由于您是从外部源下载的,因此您将受其服务器的支配。 如果由于某种原因它离线,您的页面将无法正常工作。 由于这个原因,CDN不应该脱机,但是要注意这一点很好。 此外,当您离线并在您的页面上工作时,您将无法在开发期间进行连接。

Pro托管和链接到外部资源 (可能是JS库,图像或其他):

  1. 传播负载:您的服务器不必为所有内容提供服务,它可以专注于其主要功能并为应用程序本身提供服务。
  2. 传播HTTP连接:由于越来越多的异步工作应用程序,使用每个站点/子域的最大并行HTTP连接来传递应用程序数据并从其他服务器加载所有必要的其他资源是一件好事。
  3. 正如上面提到的Rafael,CDNs规模非常好,很少下线。

缺点

  1. 即使有快速的互联网连接,当资源位于同一个内联网上时,很有可能更快地提供资源。 这就是为什么一些公司在其本地网络中拥有自己的“Micro-CDN”,以结合多个服务器和本地可用性的优势。
  2. 外部依赖性:只要Internet连接不可用或代理服务器出现故障,所有外部资源都将变为不可用,导致应用程序处于损坏状态。

如果您正在开发一些更安全的应用程序,那么在本地下载这些文件总是更好,这样您就不必依赖托管CDN的任何第三方服务器。

使用CDN谈论性能可能是有益的,因为您需要的库可能会缓存在浏览器中,因此可以节省获取文件的时间。 但如果文件在本地可用,加载这些文件肯定会花费时间和空间。

https://halfelf.org/2015/cdn-vs-local/

https://www.sitepoint.com/7-reasons-not-to-use-a-cdn/

我同意Rafael上面的回答,但是想要注意一下他们在本地提供这些库的一些好处,他或她省略了。

通过将许多文件连接到单个文件中来尝试最小化网站下载量,仍然被认为是最佳实践(直到HTTP2变得普遍)。 所以 - 如果你使用三个Javascript库/框架(例如,Angular,jQuery和Moment.js),如果你使用CDN是三个单独的脚本元素,下拉三个单独的.js文件。 但是,如果您在本地托管它们,则可以让构建过程包括将三个库捆绑在一起称为“vendor.js”的单个文件或沿着这些行的某个步骤。 这在某种程度上简化了依赖性加载还有额外的好处,因为您可以根据需要以某种顺序连接它们。

最后,虽然如果你刚刚开始它有点先进,如果你考虑用你的项目托管你的库文件,肯定值得研究bower( https://bower.io/docs/api/ ) -它是一个节点构建工具,允许您定义需要包含在项目中的软件包,然后使用单个命令安装它们 - 对于将不必要的库文件保留在版本控制之外特别有用。 祝好运!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM