[英]Load libraries, scripts, etc for the website from external or internal sources?
我刚刚开始我的前端冒险,很可能是网页设计。 我一直在努力回答一个技术问题,但我找不到合理的答案。
您可以加载,下载这么多的库,以使您的Web开发更快。 因此有我的问题。 下载这些库(例如Boostrap,jQuery,Angular,Google的字体等)以及从官方来源链接到它们(外部)或下载它,上传到您的服务器然后链接到位置文件(内部源代码)是否更好? )在你的服务器上?
我的想象力告诉我,如果我要下载它们并在我的服务器上上传,那么链接到它会使整个网站加载更快。 这是一个好主意吗?
有时,如果从外部源链接,它实际上可能更快。 那是因为浏览器存储了它访问的最新数据,许多站点都使用Bootstrap,jQuery等。 对于不太受欢迎的库,它可能不会经常发生。
但请记住,由于您是从外部源下载的,因此您将受其服务器的支配。 如果由于某种原因它离线,您的页面将无法正常工作。 由于这个原因,CDN不应该脱机,但是要注意这一点很好。 此外,当您离线并在您的页面上工作时,您将无法在开发期间进行连接。
Pro托管和链接到外部资源 (可能是JS库,图像或其他):
缺点
如果您正在开发一些更安全的应用程序,那么在本地下载这些文件总是更好,这样您就不必依赖托管CDN的任何第三方服务器。
使用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.