我一直在试图确定前端工作流程中将供应商JS和CSS与自定义JS和CSS分离的标准做法背后的原因。我不确定相比于额外的HTTP请求,这种方法的好处是什么,似乎只有一个单独的CSS和JS文件而不是有vendor.css、main.css和vendor.js、main.js更加干净整洁。
有人能解释一下吗?
有人能解释一下吗?
厂商代码通常比您的应用程序代码更改频率低。因此,随着您更新应用程序,厂商代码可以保持不变并缓存在用户的浏览器中。
在将供应商代码捆绑到应用程序代码的情况下,每次更新应用程序时,用户都必须下载所有供应商代码。
单独的供应商包的额外HTTP请求可通过以下事实来缓解:用户将在每次应用程序更新时下载更少的代码。
grunt
标签,最终用户可能永远不会看到这种变化,因为您可以在构建期间合并供应商和用户样式/脚本。已经有很多回答涉及到这个问题,但我会让它更具体:
供应商代码可能比你的代码更频繁地进行更改。 如果供应商代码更频繁地更改,例如进行错误修复,您将希望使用更新版本并拥有更好的整体网站体验。 如果供应商代码变化的不频繁而您的代码频繁变化,则可能希望在不影响运行的情况下更改您的代码。
供应商代码通常托管在CDN上,例如 https://cdnjs.com/#q=ajax 或 https://developers.google.com/speed/libraries/ 这些CDN加载速度非常快,而且不会改变,因此用户可以依赖缓存文件,从而使您的网站加载速度更快。
通常最好对代码进行迭代式更改。 特别是在源代码控制时,管理代码也更容易。 当特定事物发生变化时,无需交换大型文件。 保持事物分开使得更容易进行增量更改,特别是如果两个事物的变化速度不同。