我习惯将所有内容存储在本地,并确保我的网站即使在没有互联网连接的情况下也能够在本地服务器上运行。从那时起,这一直是我的原则,这样我的网站就可以离线独立运行,特别是在开发阶段,我的页面刷新速度非常快,即使没有互联网,我也可以继续开发我的网站。
因此,在我所有的网络应用程序和网站中,我总是下载我需要的包和库,并在本地链接到它们以获取包含内容和不包含内容。
我知道越来越多的人通过公共 CDN 等链接/导入库,所以我想知道这样做是否有任何真正的显着好处?
我已经确定了显而易见的事情(请随时纠正我):
专业本地 - 更快的开发体验 - 对可能中断的其他服务器的零依赖 - 更快的用户体验(?),因为站点页面可以快速执行,并且可以使用同一服务器上的文件/库(已本地化)
专业CDN - 节省网络空间(但在当今世界,这似乎微不足道..在一个典型的网站中,您可能只能节省 10-20mb 的空间,而这在当今的宏伟计划和廉价服务器等中是什么)
谢谢大家。
CDN 的好处不(也不应该)为您带来。它适合您的客户/用户。使用 CDN 文件 - 特别是对于 jQuery(或任何其他大型库)等广泛使用的库 - 意味着他们将从附近的物理位置接收文件的缓存副本。在大多数情况下,为大型图书馆使用流行的 CDN 意味着用户之前也从其他人的网站下载过该资源 - 因此该文件将在其浏览器中本地缓存。
这有助于减少用户下载文件的时间。这与您的服务器负载或您在所有情况下的开发能力无关,而是与边缘情况的最小边缘有关。首先考虑您的用户!
对大多数静态文件使用 CDN 对您的用户来说绝对更好。
值得注意的是,虽然这在很长一段时间内都是如此,但现在情况已经不再如此了。使用 CDN 仍然有真正的好处(例如:从距离消费最终用户物理位置非常近的位置提供文件 - 在大型、全球分布的 CDN 上),但跨域资源缓存不再是好处。
@x-yuri 在 2021 年年底注意到这一点,并且 所有主要浏览器都在 2020 年之前实现了缓存分区。
使用 CDN 仍然是有益的,并且仍然对用户有利,但好处是减少地理定位服务器的延迟,而不是由于热缓存命中而导致一般性能。
如果您管理的 Web 应用程序或网站的页面执行许多请求,并且您接收大量用户,则每秒 HTTP 请求数可能会急剧增加;如果您的 Web 服务器开始响应缓慢,最好分割请求,CDN 非常擅长管理静态内容。
基本上进行调优,服务器规模可能会较小并节省资金。
如果您没有遇到性能不足的问题,也许您不需要使用 CDN。