Pracuję magento 1.9
i korzystam RWD slider
z Magento 1.9 na stronie głównej.
Google's PageSpeed
tego nie lubi i mówi:
Wyeliminuj JavaScript blokujący renderowanie i CSS w treści widocznej na ekranie
Jak mogę to zrobić dla tego pliku skryptu Java, który wywołuje suwak:
http://www.MYDOMAIN/media/js/sdhfksjfhdsjvbskj8e4w.js
magento-1.9
javascript
rwd-theme
rwd
htaccess
styzzz
źródło
źródło
Technika opisana przez „Mohana Gsa” tutaj nie zadziała.
Z powodu ścieżki js
/media/js/
wygląda na to, że używa scalania js . Oznacza to, że wszystkie pliki js dodane standardowym sposobem xml<action method="addJs">...
<action method="addItem"><type>js</type>..
zostanie połączony w jeden duży
/media/js/<hash>.js
.Dodano pliki Magento core js
<action method="addJs"><script>prototype/prototype.js</script></action>
także w ten sposób.
Istnieje również wiele szablonów wykorzystujących wbudowane js, które zależą od obiektów / funkcji zdefiniowanych w plikach head js.
W tym momencie nie wystarczy przenieść tylko pliki head js na dół. Musisz przenieść wszystkie deklaracje wbudowane js za głową js i przed nim
</body>
.We wszystkich / wielu przypadkach nie jest możliwe oddzielenie wbudowanego js od szablonów, ponieważ używają one zmiennych specyficznych dla szablonu.
Możesz użyć tylko ogólnej metody, takiej jak parsowanie końcowego html i przenieść to razem w odpowiedniej kolejności.
Spójrz na rozszerzenie Pagespeed .
źródło
Ten kod mówi: poczekaj na załadowanie całego dokumentu, a następnie załaduj plik zewnętrzny
defer.js
.Oto kroki, które musisz wykonać.
Skopiuj powyższy kod.
Wklej kod do kodu HTML tuż przed
</body>
tagiem (w dolnej części pliku HTML).Zmień
defer.js
nazwę na zewnętrzny plik JS.Upewnij się, że ścieżka do pliku jest poprawna. Przykład: jeśli właśnie umieścisz
defer.js
, plikdefer.js
musi znajdować się w tym samym folderze co plik HTML.Aby uzyskać więcej informacji, zapoznaj się z tym artykułem
źródło
Oto rozszerzenie open source do rozwiązania tego https://github.com/mediarox/pagespeed
Aktualne funkcje
Zgodność
Od Magento 1.5.x do Magento 1.9.x.
Konfiguracja backendu
Wszystkie moduły (Pagespeed_Js, Pagespeed_Css) są domyślnie wyłączone.
Ścieżka konfiguracji: System> Konfiguracja> ZAAWANSOWANE> Prędkość strony
Jak to działa ?
Po prostu przeanalizuj końcowy strumień HTML w zdarzeniu „kontroler-front_send_send_response_before”.
źródło