Отложить загрузку Primefaces.js

Скорость страницы Google указывает на то, что загрузка Primefaces.js замедляет работу моей страницы:

Из отчета о скорости страницы:

Отложите синтаксический анализ кода JavaScript. Сведя к минимуму объем кода JavaScript, необходимого для отображения страницы, и отложив синтаксический анализ ненужного кода JavaScript до тех пор, пока он не понадобится для его выполнения, вы можете сократить время первоначальной загрузки своей страницы.

Suggestions for this page
 284.3KiB of JavaScript is parsed during initial page load. Defer parsing JavaScript to reduce blocking of page rendering.
 https://www.mysite.co.uk/.../primefaces.js.xhtml?... (185.4KiB)
 https://www.mysite.co.uk/.../jquery.js.xhtml?... (95.1KiB)

Как я могу решить эту проблему?


person DD.    schedule 06.11.2013    source источник


Ответы (2)


Добавление другого решения этого вопроса для всех, кто сталкивается с тем же.

Вам нужно будет настроить начальные шрифты HeadRenderer для достижения рекомендуемой скорости загрузки страниц. Хотя это могло бы быть реализовано PrimeFaces, я не вижу этого в версии 5.2.RC2. Вот строки в encodeBegin, которые нужно изменить:

96         //Registered Resources
97         UIViewRoot viewRoot = context.getViewRoot();
98         for (UIComponent resource : viewRoot.getComponentResources(context, "head")) {
99             resource.encodeAll(context);
100        }

Просто напишите пользовательский компонент для тега head, а затем привяжите его к средству визуализации, которое переопределяет описанное выше поведение.

Теперь вы не захотите дублировать весь метод только для этого изменения, может быть чище добавить фасет под названием «последний» и переместить ресурсы скрипта в его начало в вашем средстве визуализации как новые deferredScript компоненты. Дайте мне знать, если есть интерес, и я создам вилку, чтобы продемонстрировать, как это сделать.

Этот подход рассчитан на будущее в том смысле, что он не ломается при добавлении новых зависимостей ресурсов к компонентам или при добавлении новых компонентов в представление.

person Timir    schedule 02.04.2015

Вы можете отложить загрузку страницы, переместив скрипты из тега заголовка в конец тела (перед его закрытием), чтобы скрипты начали загружаться после загрузки разметки страницы. длиннее друг друга с использованием скрипта chached.

person Carlos487    schedule 06.11.2013
comment
Как я могу перенести скрипты? Они вставляются автоматически с помощью простых знаков. - person DD.; 06.11.2013
comment
Вы можете минимизировать нагрузку, перемещая другие скрипты. Я думаю, вы можете перемещать простые лица, но только внутри тега заголовка. Также не беспокойтесь о рекомендациях по скорости страницы и yslow, некоторые из них могут быть немного экстремальными и сложными для решения. - person Carlos487; 06.11.2013
comment
Вы толком не ответили на поставленный вопрос. - person DD.; 07.11.2013
comment
Любые идеи, как получить эту работу? Я нашел эту статью, как это можно сделать в JSF (stackoverflow.com/questions/10310676/), но он вообще не заработал. - person drodil; 11.12.2013