2017-09-14 74 views
1

我试图优化我的Magento 1.9.3网站,遵循Google PageSpeed提示,说我有js和css加载同步并阻止页面呈现。异步加载的JavaScript在Magento的PageSpeed

为了解决这个问题,我把所有的javascript文件加载异步,正如这个answer建议的那样。

所以我所有加载的脚本是这样的:

<action method="addItem"><type>skin_js</type><name>js/jquery.fancybox.2.1.5.min.js</name><params>defer</params></action> 
<action method="addItem"><type>skin_js</type><name>js/jquery.fancybox.2.1.5.min.js</name><params>async</params></action> 

这种方式,再次执行PageSpeed,提供了更好的结果。

问题是我得到了大量的javascript异常,因为可能是在脚本加载之前加载的模板文件(.phtml)内部的脚本。如果我清除浏览器缓存并重新加载页面,情况会更糟糕。

那么,有没有更好的方法来解决这个“问题”? 我应该移动页面末尾的所有文件吗?或者只是忽略GooglePageSpeed提示?

预先感谢您。

回答

1

最终,带有js的解决方案带有一个扩展,它将所有js移动到dom的末尾,并且似乎不会导致加载页面时出现问题。

扩展名称只是pagespeed,来自mediarox。 我会在这里留下链接,仅供参考,只要它能继续工作即可。

Magento Google PageSpeed Optimization Extension

反正我已经被迫配置,我的自定义样式表的DOM的开始加载的方式扩展,因为其他的方式,它是可见的DOM被加载并准备多前样式表,并给出了一个可怕的效果。

非常好的结果和改进也来与apache mod_pagespeedmod_expires and mod_headers配置良好。

有了这些小的改变,我们取得了良好的效果,但最重要的是主要来自图像压缩和资产缩小。

0

您也可以使用“延迟”使它们在最后加载,可以使用或不使用异步。

因此,如果您按照您需要的顺序加载“延迟”,他们不应该抛出异常,除非您在加载之前使用所需的任何东西。

+0

你的意思是只在最后的内容中移动那些不需要的文件吗?这是相当复杂的magento和逐页理解什么是需要前或后...我试图按照这种方式,但不seeme如此安全 – sissy