2017-09-14 107 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