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

时间:2016-09-19 18:38:54

标签: javascript html css

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

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

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

4 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

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

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

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

答案 2 :(得分:0)

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

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

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

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

答案 3 :(得分:0)

我同意Rafael在上面的回答,但是想要注意一下他们在本地提供这些图书馆的一些好处。

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

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