m2 如何减少http请求数量
m2 如何减少http请求数量
Magento 2是一个应用程序,它会向Web服务器发出大量的HTTP请求。
如果Magento 2在没有任何意识的情况下安装和运行,每页的HTTP请求数将会轻微超过100个请求。
Magento 2大量使用Javascript。
使用各种Javascript库构建应用程序的方法是最近常见的,但Magento 2不会错过这个趋势,它使它能够使用RequireJS动态加载模块。
如果您在没有任何设置的Magento 2的TOP页面上使用Yslow进行测量,则获得如下所示的结果。
在Yslow中,执行了153个HTTP请求,其中128个与Javascript相关。
即使浏览器的缓存正在工作,数据传输量也不会有太大的变化。这不是很友好。
如果有大量的HTTP请求,它将单独加载到Web服务器上,由于数据交换浪费,显示会很慢。
如果可能的话,如果文件没有变化,你只希望我告诉你,如果说的更多,我们不希望你首先要求。
结果在TOP页面上。
许多HTTP请求在管理页面和结账页面上进行。在这些页面中,使用了名为UIComponent的Menuo 2独特机制,Javascript端执行与KnockoutJS链接的绘图处理。
在UIComponent中,不仅可以读取Javascript文件,还可以读取HTML模板。
因此,由于一个进程需要更多的文件,所以HTTP请求的数量将会增加。
如何减少HTTP请求的数量
那么我们如何减少HTTP请求的数量呢?
当然,Magento 2具有可以采取适当措施的功能。
当您在管理页面上访问“Store> Settings> Developer”时,将显示以下内容。
通过调整此设置,您可以大大减少HTTP请求的数量。
将CSS或Javascript文件合并成一个文件
我们想要解决的第一件事是将CSS和Javascript文件合并成一个或几个文件。
如果启用此设置,Magento会自动集成可以合并的CSS和Javascript文件。
此外,如果启用此设置,Magento会将合并文件的URL输出为HTML,以便不会加载预合并文件。
压缩CSS和Javascript文件
下一步是压缩合并的文件。
CSS和Javascript使用了很多换行符和缩进来保持可读性。即使描述性描述可以简化,冗余描述有时也会被保持为可读性。
通过执行压缩处理(称为“缩小”),可以移除这些压缩处理并减小文件大小。
如果文件尺寸稍微减小,数据传输所需的时间可以缩短,数据量本身也会减少,所以可以通过AWS等实现成本降低。
捆绑Javascript文件
最后一个启用的选项是捆绑Javascript文件。
捆绑意味着RequireJS和KnockoutJS会将您打算动态加载到单个文件中的Javascript文件和HTML模板进行汇总。
这样做几乎可以消除额外的读取并显着减少HTTP请求的数量。
另一方面,一个Javascript文件的大小变得非常大,但是它使得客户端更容易缓存它。
最终结果
那么,三项措施的结果如下图所示。
那是怎么回事?
尽管文件大小已经增加,但是HTTP请求的数量却大大减少了。
而且,当所有的静态文件缓存在浏览器端时,数据传输量可以大大减少。
由于这些调整可以通过管理页面轻松完成,因此我们建议您在生产环境中采取一切有效的形式进行操作。