Jump to content

скрипты в подвал


Recommended Posts

Уважаемые форумчане у меня вопрос, частности SErgeyH и Орса насколько я знаю вы вкурсе, как закинуть в подвал скрипты, чтобы не грузились сначала

Edited by gabdr (see edit history)

Share this post


Link to post
Share on other sites

в Classes/FrontController.php

 

 

self::$smarty->assign('js_files', array_unique($js_files));

 

из функции displayHeader() перенести в displayFooter() туда же прописать global $js_files;

 

в themes/../header.tpl

 

 

{if isset($js_files)}

{foreach from=$js_files item=js_uri}

<script type="text/javascript" src="{$js_uri}"></script>

{/foreach}

{/if}

 

перенести в footer.tpl

 

Вроде всё.

  • Like 1

Share this post


Link to post
Share on other sites

для начала надо ответить на вопрос "зачем")

имхо, если ТС дошел до такого этапа оптимизации самостоятельно, то должен понимать что он делает и зачем

 

п.с. для последователей этих действий, если такие найдутся, предварительно загляните в код страницы сайта ТС (смотреть на js разбросанный в коде)

Edited by SergeyH (see edit history)

Share this post


Link to post
Share on other sites

для начала надо ответить на вопрос "зачем")

имхо, если ТС дошел до такого этапа оптимизации самостоятельно, то должен понимать что он делает и зачем

вас спросили вы проигнорировали, не заводите тут базар

 

мне помогло просто переместить в самый низ header.tpl

Share this post


Link to post
Share on other sites

в Classes/FrontController.php

...

Вроде всё.

Не все. Есть папка override, там создаем класс перезаписующий существующий, иначе при обновлении... И чем вам не угодил setMedia() в том же FrontController, так ведь намного проще.

Share this post


Link to post
Share on other sites

И чем вам не угодил setMedia() в том же FrontController, так ведь намного проще.

 

Серый, setMedia формирует массив js/css файлов, он не отвечает за темплейт в котором выводится список

Share this post


Link to post
Share on other sites

Чтобы перенести все скрипты из хедере в конец страницы нужно переместить из header.tpl в footer.tpl

{if isset($js_files)}
{foreach from=$js_files item=js_uri}
<script type="text/javascript" src="{$js_uri}"></script>
{/foreach}
{/if}

 

При этом нужно исправить все модули, чтобы вместо return '<script></script>'; они использовали setMedia и вызов всех функций в коде страницы также перенести после вызова скриптов. Например функцию addCombination из product.tpl

  • Like 1

Share this post


Link to post
Share on other sites

А вот зачем все это, не видел не на одном высоко нагружённом проекте чтобы сували все скрипты в подвал, да и с внутренним кешированием престашопа и nginx...в общем смотрю на все это скептически. Напишите потом что изменилось и на сколько.

Share this post


Link to post
Share on other sites

В случае скриптов, постепенный рендеринг не начинается для всего контента ниже скрипта. Таким образом, нам выгоднее размещать скрипты как можно ниже.

Конечно лучше бы вообще сделать отложенную загрузку, но если удалось перенести скрипты в подвал и при этом исправить все ошибки, то переделать это под отложенную загрузку не составит проблем.

  • Like 1

Share this post


Link to post
Share on other sites

Ну а что мы от этого выигрываем? Страница грузиться 100-300ms, это практически мгновенно, ну перенесу скрипты в подвал, время загрузки страницы точно не изменится, изменится только то как страницы будут загружатся, постепенно или после полной загрузки...

Share this post


Link to post
Share on other sites

Ну а что мы от этого выигрываем? Страница грузиться 100-300ms, это практически мгновенно, ну перенесу скрипты в подвал, время загрузки страницы точно не изменится, изменится только то как страницы будут загружатся, постепенно или после полной загрузки...

 

общее время не изменится, но отрендерится (нарисуется на экране) html быстрее чем раньше, для пользователя визуально это будет выглядеть как более быстрая загрузка страницы. Только бездумно все в подвал сносить не надо.

  • Like 1

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More