【问题标题】:Is it necessary to webpack resources though with CDN available?尽管 CDN 可用,是否需要 webpack 资源?
【发布时间】:2020-02-22 03:29:13
【问题描述】:

我是 webpack 的新手,最近我发现与 Jquery 和 Bootstrap CDN 加载方法相比,将我的 Jquery 和 bootstrap 资源 webpack 到 bundle.js 甚至更慢

虽然 webpack 使我的 Jquery 或 Bootstrap 资源更小并增加了我的网页加载时间,但在我的情况下使用 Jquery 或 Bootstrap CDN 更快。

我想我的 Linux 服务器可能性能不佳。

从我自己的普通服务器加载资源,如果你没有一个好的Web服务器,使用CDN从公共更好的服务器加载会更好,对吧?

【问题讨论】:

    标签: web webpack server


    【解决方案1】:

    是否应该捆绑常用库(如 jquery、bootstrap 等)在很大程度上取决于以下因素(可能不是完整列表):

    从技术上讲,以下两个因素是关键(可能不是完整的列表):

    浏览器缓存:浏览器倾向于缓存站点使用的文件,以便在后续使用中站点性能更好。虽然这取决于如何在 JS 文件请求(缓存控制、无缓存、Etag、Expires、Pragma 等)上设置 HTTP 标头,但大多数网站确实允许这种缓存以提高性能。

    库大小:文件越大,下载、加载、解释、执行所需的时间就越多;记住 JavaScript 是一种解释型语言。

    考虑到这些因素,我想到了以下两种方法(泛泛而谈,不全面):

    库和正在使用的 CDN 的流行度:当用户浏览各种不同的站点时,来自流行 CDN 的流行库可能已经被浏览器缓存。 CDN 上的库也在世界范围内大量缓存。这将大大提高您的网站性能。

    摇树:如果在将库包含到包中时执行摇树,则可以大大减少加载时间,因为您只将那些函数捆绑到您真正使用的库中。如果不使用摇树,整个库可能会被加载(作为捆绑的一部分或单独)。但是,这只有在捆绑库时才有可能。 IMO,当我的应用程序很小并且只使用库中的几个函数时,这会更有用。

    我的解释可能并不完美和全面,但您可能会理解这在很大程度上取决于您使用的库、它在您的应用程序中的使用方式等。

    希望这会有所帮助!

    【讨论】:

    • 是的,按照你说的,我应该选择CDN而不是捆绑在自己的服务器上!很棒的灵感!
    • 解决了您的问题,您可以投票并标记为答案! :)
    猜你喜欢
    • 1970-01-01
    • 2018-05-29
    • 2021-04-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-20
    相关资源
    最近更新 更多