2017-09-14 12 views
1

Magento 1.9.3のウェブサイトをGoogle PageSpeedのヒントに従って最適化しようとしています.jsとcssが同期して読み込まれ、ページのレンダリングがブロックされています。PageSpeedのMagentoでのJavaScriptの非同期読み込み

この問題を解決するには、このanswerに記載されているように、すべてのjavascriptファイルに非同期読み込みを設定しています。

だから、私のすべてのロードされたスクリプトは次のようになります。

<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のを実行している、より良い結果が得られます。

問題は、テンプレートファイル(.phtml)内のスクリプトがスクリプトがロードされる前にロードされている可能性があるため、多くのJavaScript例外が発生することです。これは、ブラウザのキャッシュをクリアしてページをリロードすると悪化します。

だから、この "問題"を解決する良い方法はありますか? ページの最後にすべてのファイルを移動する必要がありますか?または、GooglePageSpeedのヒントを無視するだけですか?

ありがとうございます。

答えて

1

最後に、jsのソリューションには、domの終わりにあるすべてのjを移動する拡張子が付いていて、ページを読み込む際に問題が生じないようです。

エクステンションはちょうどページングスピードと呼ばれ、mediaroxからのものです。 リンクをここに残しておきます。作業を続ける限り、参考にしてください。前に多くのDOMがロードされていることを視認して準備ができている他の方法であるため

Magento Google PageSpeed Optimization Extension

とにかく、私は私のカスタムスタイルシートはDOMの最初にロードされている方法で、拡張子を設定することを余儀なくされてきました、スタイルシート、そしてひどい効果が与えられました。

apache mod_pagespeedmod_expires and mod_headersで構成された非常に良い結果と改善があります。

これらの小さな変更を加えても、良い結果が得られましたが、主に画像の圧縮と資産の縮小によるものでした。

0

"defer"を使用して末尾にロードすることもできます。これは非同期の有無にかかわらず使用できます。

"defer"を必要な順にロードする場合、ロードする前に必要なものを使用しない限り、例外をスローするべきではありません。

+0

上記の折り畳みコンテンツに不要なファイルだけを最後に移動することを意味しますか?それはMagentoでかなり複雑で、前に、または後で必要とされているものをページごとに理解しています...私はその方法に従おうとしていますが、とても安全ではありません – sissy

関連する問題