Перейти к содержанию
alfabus

PageSpeed Insights Удалите код JavaScript и CSS, блокирующий отображение верхней части страницы

Рекомендуемые сообщения

Всем привет борюсь с PageSpeed Insights, а именно 

Удалите код JavaScript и CSS, блокирующий отображение верхней части страницы
java переместил следующим образом в response.php

public function output() {
    if ($this->output) {
        #start
        $_regex_scripts = '/<script[^>]*>(.*?)<\/script>/s';
        $_regex_paste_position = '/<\/body>/';

        preg_match_all($_regex_scripts, $this->output, $all_scripts, PREG_SET_ORDER);
        $this->output = preg_replace($_regex_scripts, '', $this->output);

        $scripts = '</body>';
        foreach ($all_scripts as $key => $value) {
            $scripts .= $value[0].PHP_EOL;
        }
        $this->output = preg_replace($_regex_paste_position, $scripts, $this->output);
        #end
        if ($this->level) {
            $output = $this->compress($this->output, $this->level);
        } else {
            $output = $this->output;
        }

        if (!headers_sent()) {
            foreach ($this->headers as $header) {
                header($header, true);
            }
        }

        echo $output;
    }

Знатки как сделать тоже с css? 
Решение с java нашел на просторах интернета

  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

И что, помогло? Баллы добавились?

На сайте все работает?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да, все работает отлично, раньше писало убрать java  и css, теперь остались только css

Изменено пользователем alfabus

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В магазине у вас все работает? Имелось ввиду.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В магазине у вас все работает? Имелось ввиду.

Да все работает без проблем

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

За такое пороть надо! В response!

<?php $pagespeed = isset($_SERVER['HTTP_USER_AGENT']) && (strpos($_SERVER['HTTP_USER_AGENT'], 'Page Speed') !== false) ? true : false; ?>

<?php if(!$pagespeed) {

мильён условий

}?>

/ * это грязный хак, не имеющий ничего общего с настоящей оптимизацией *'/

Может быть, я в коде полное дно, но работает и других решений не нашел

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Товар добавляется? Оформляются заказы ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Всем привет борюсь с PageSpeed Insights,

Зачем ?

Никак на поисковую выдачу его попугаи не влияют (только один пункт - мобильное удобство и то только в мобильной выдаче)

 

Может быть, я в коде полное дно, но работает и других решений не нашел

Пока "работает", до первых "г... модулей"

Код перемещенные вниз - будет негативно влиять на стабильность.

В opencart практически невозможно сделать стабильный код для PS, рано или поздно попадется какой нибудь гмодуль или гтема у которой сделано НЕ по стандартам

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Дело в том, что этого способа недостаточно, скорее всего у вас еще и хостер модифицирует скрипты.

Если это хостер, то возможно в панели хостера есть галочка - объединить css.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Товар добавляется? Оформляются заказы ?

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Дело в том, что этого способа недостаточно, скорее всего у вас еще и хостер модифицирует скрипты.

Если это хостер, то возможно в панели хостера есть галочка - объединить css.

Да на хостинге есть это все 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Можно в контролер футера запихнуть

$data['styles'] = $this->document->getStyles();

и вывести стили темы + этот массив стилей в футере

естественно в шапке все закоментить

но это врядли поможет

 

Лучше всего скомпилить свой бутстрап и выкинуть кучу лишних стилей.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В магазине у вас все работает? Имелось ввиду.

А почему бы не работать?

 

Он собирает ВСЮ Коллекцию

 

<script></script>

И точно также ее сносит в футер.

 

 

Но вот  интересно, если нет у блока </body>

 

Вот тут и сломается.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
...

 

Вот тут и сломается.

 

И есть подводные камни в стиле

document.write('<script src="' + url + '"><\/script>');

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А теперь на всю эту оптимизацию ПОЛОЖИТЬ член

раз!

preg_match_all($_regex_scripts, $this->output, $all_scripts, PREG_SET_ORDER);

два!

$this->output = preg_replace($_regex_scripts, '', $this->output);

три!

$this->output = preg_replace($_regex_paste_position, $scripts, $this->output);

 

Проверьте время

 

 

#start

$time_start = microtime(true);

#end

$time_end = microtime(true);

$time = $time_end - $time_start;

$this->output .=  sprintf ("%05.5f %s", $time);

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Плюс грабли будут (будут не в том месте) с:

Яндекс картами и виджетами Yandex

Разного рода виджетами VK

и т.п. скриптами

 

Так что ТС - так как вы сделали (в тупую) нельзя делать

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Неа, не работает  :-)

http://take.ms/w0TmA

Работает, работает :)

Это я PS "забодал" - он из своего кеша берет уже данные (причем левые какие то).

Возьми другую страницу у товаров или категорий

Единственное не понятно почему ругается на boostrap.min.css - хотя он внизу

 

6438954413.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Значит PS в своих алгоритмах что-то поменял. Раньше такой способ не работал, по крайней мере зеленого цвета на вкладке "для мобильных" не выдавал

Тем лучше  :-)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А где этот модуль можно взять?) Свои костыли буду убирать... 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Значит PS в своих алгоритмах что-то поменял. Раньше такой способ не работал, по крайней мере зеленого цвета на вкладке "для мобильных" не выдавал

Тем лучше  :-)

Всё понял - PS не любит подгрузку ajax (у меня баннер подгружался через ajax)

Убрал

Сразу  +10

И уже не ругается на css и js "в начале"

 

4749433652.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А где этот модуль можно взять?) Свои костыли буду убирать... 

Готовится к продаже давно уже

День, два подождите еще

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Готовится к продаже давно уже

День, два подождите еще

Ок, ждем)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ох и PageSpeed ..

Не, я конечно все понимаю, но ругаться на 0.24 секунды ответа сервера (TTFB) - это уже перебор :ugeek:

7676730865.png

 

Это сколько же нужно ?! 0.0... ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Похожий контент

    • От sasha181
      Скачать/Купить дополнение


      Ускорение и оптимизация opencart
      VqMod для оптимизации и ускорения opencart.
      Ускорение опенкарт в 2-5 раз в зависимости от состава дополнительных модулей.
      Результат работы модуля можно увидеть на примере магазина http://магазин-усадьба.рф/
      Особенно заметными будут результаты на магазинах с большим количеством товаров (от 1000).
      На данном этапе модуль спонсируется проектом проектом webguard.pro
      Приглашаю всех к тестированию и участию в разработке.
      С Вашей стороны будет весьма полезно узнать какой прирост дал модуль на Вашей системе или наоборот замедлил (на одной из инсталяций было и такое). При этом конечно важно отметить на какой версии или сборке opencart работает Ваш магазин и состав установленных дополнительных модулей и патчей.
      Замерять производительность можно, сравним скорость генерации страниц (главная, категории, страницы товара) до наложения патчи и после. Замерять нужно скорость первого обращения и последующих 2-3-х. Посмотреть время генерации можно, например, при помощи Firebug (расширения для firefox).
      На основании Ваших данных будет определяться ход разработки.
      Для тестирования всем желающим WebGuard предоставляет хостинг на месяц. Собственно, на этом хостинге находится и магазин из примера.
      Оформить тестовый хостинг аккаунт можно по ссылке: http://cabinet.webguard.pro/UserRegister?OwnerID=2001&Eval=ObXLcJkMG+eL2R6s3Rz3qt94DgP/R6fLtQQk3UZHzT83VvQQffVeb5aLte9p+zT5iO4AalqTDwY=
      После регистрации автоматически начинается оформление бесплатного тарифа "Opencart-demo" с 5Gb места на месяц.
      ВНИМАНИЕ!!! Многие спрашивают, как наложить sql патч на базу данных.
      1. Патч накладывать нужно через phpmyadmin, в разделе выполнения SQL запросов.
      2. Когда Вы подставляете Ваш префик, фигурные скобки {} нужно удалить.
      3. При переносе сайта на хостинг webguard по моей реферальной ссылке, установка модуля будет бесплатной. В этом случае пишите в ЛС. Скину email для отправки доступов к хостингу.
      УСТАНОВКА
      Для установки на любом хостинге
      --скопируйте содержимое папки upload в корень сайта.
      --В папке sql отредактируйте файл 0001.sql , заменив в нём {prefix} на Ваш префикс таблиц магазина.
      --Полученный патч наложите на базу данных.
      --Замените в файле config.php строку
      define('DB_DRIVER', 'mysql');
      на
      define('DB_DRIVER', 'mysqliz');
      Иногда, если в каких-либо доп. модулях разработчики использовали mysql подключение в обход класса для работы с базами данных, переключение на mysqliz может вызывать ошибки в работе. Тогда от него прийдётся отказаться.
      ОБНОВЛЕНИЕ
      -- В первую очередь удалите из папки vqmod/xml все старые патчи данного модуля (000_fastopencart_webguard.pro.xml и fastopencart_webguard.pro.xml)
      -- Если Вы ранее накладывали патчи на базу данных, наклыдавать требуется поочерёдно конструкции добавления индексов. Некоторые запросы, если Вы ранее их накладывали на базу выдадут ошибку (это не страшно). Главное, по очереди выполнить каждый запрос (построчно) .
      Добавил sasha181 Добавлено 28.02.2014 Категория Кэширование, сжатие, ускорение  
    • От Boriskin
      300.00 руб
      Скачать/Купить дополнение


      Продвинутое кэширование - BrainCache
      ИНСТРУКЦИЯ ПО УСТАНОВКЕ
      Что такое кэш запросов?
      Кэш запросов можно представлять себе как хеш, ключами которого являются запросы, а значениями — результаты запросов.
      В OpenCart уже есть поддержка кэша! Зачем мне нужен BrainCache?
      Использование стандартного метода кэширивания предполагает под собой работу со всеми файлами, где нужно кэширивание со всеми вытекающими отсюда последствиями:
      децентрализованный доступ к параметрам кэшеривания
      наличие множественных вызовов методов работы с кэшом в рамках всего MVC
      отсутствие правил и исключений кэшеривания для каждого запроса
      отсутствие фильтрации запросов, т.е кэшиются запросы без анализа строк
      отсутствие фильтрации прав доступа вызовов кэшеривания по Имени файла, Классу и Методу

      Что умеет BrainCache?

      1.0 beta поддержка профилей настроек кэшеривания;
      централизованный контроль и обработка всех вызовов и обращений к БД MySQL;
      выводить часто изменяющиеся данные в отдельный массив и устанавливать для каждого элемента время кэша, где 0 — запрет кэшеривания. Для удобства добавлены константы с предопределенным значением времени: МИНУТА, ДЕНЬ, НЕДЕЛЯ, МЕСЯЦ, ГОД, ВИСОКОСНЫЙ ГОД;
      устанавливать стандартное значение времени кэша, при отсутвии удовлетворяющих правил кэшеривания (если правила для запроса отсутствуют или не подошли);
      установка ограничений доступа к таблицам БД не относящихся к магазину, но находящихся в рамках одной базы (Сценарий выдаст предупреждение и завершит работу);
      установка пути директории кэшеривания для текущего профиля;
      установка ограничения доступа к кэшу по времени для Классов, Методов классов, Метода Класса выполняющих запрос
      установка ограничения доступа к кэшу по времени для пути и имени выполняющих запросов скриптов;

      Фиксы:
      Исправлена ошибка доступа к админ-панели
      Оптимизирован цикл поиска по ассоционному массиву, разделена логика условий
      Добавлен редирект на страницу 404, в случае срабатывания блокирующего условия

      Совместимость:
      Проверялось на v1.5.4.1, но должен быть совместим со всеми версиями, потому, что для установки не нужно вносить множественные изменения.
      Добавил Boriskin Добавлено 13.03.2013 Категория Кэширование, сжатие, ускорение  
    • От sasha181
      VqMod для оптимизации и ускорения opencart.
      Ускорение опенкарт в 2-5 раз в зависимости от состава дополнительных модулей.
      Результат работы модуля можно увидеть на примере магазина http://магазин-усадьба.рф/
      Особенно заметными будут результаты на магазинах с большим количеством товаров (от 1000).
      На данном этапе модуль спонсируется проектом проектом webguard.pro
      Приглашаю всех к тестированию и участию в разработке.
      С Вашей стороны будет весьма полезно узнать какой прирост дал модуль на Вашей системе или наоборот замедлил (на одной из инсталяций было и такое). При этом конечно важно отметить на какой версии или сборке opencart работает Ваш магазин и состав установленных дополнительных модулей и патчей.
      Замерять производительность можно, сравним скорость генерации страниц (главная, категории, страницы товара) до наложения патчи и после. Замерять нужно скорость первого обращения и последующих 2-3-х. Посмотреть время генерации можно, например, при помощи Firebug (расширения для firefox).
      На основании Ваших данных будет определяться ход разработки.
      Для тестирования всем желающим WebGuard предоставляет хостинг на месяц. Собственно, на этом хостинге находится и магазин из примера.
      Оформить тестовый хостинг аккаунт можно по ссылке: http://cabinet.webguard.pro/UserRegister?OwnerID=2001&Eval=ObXLcJkMG+eL2R6s3Rz3qt94DgP/R6fLtQQk3UZHzT83VvQQffVeb5aLte9p+zT5iO4AalqTDwY=
      После регистрации автоматически начинается оформление бесплатного тарифа "Opencart-demo" с 5Gb места на месяц.
      ВНИМАНИЕ!!! Многие спрашивают, как наложить sql патч на базу данных.
      1. Патч накладывать нужно через phpmyadmin, в разделе выполнения SQL запросов.
      2. Когда Вы подставляете Ваш префик, фигурные скобки {} нужно удалить.
      3. При переносе сайта на хостинг webguard по моей реферальной ссылке, установка модуля будет бесплатной. В этом случае пишите в ЛС. Скину email для отправки доступов к хостингу.
      УСТАНОВКА
      Для установки на любом хостинге
      --скопируйте содержимое папки upload в корень сайта.
      --В папке sql отредактируйте файл 0001.sql , заменив в нём {prefix} на Ваш префикс таблиц магазина.
      --Полученный патч наложите на базу данных.
      --Замените в файле config.php строку
      define('DB_DRIVER', 'mysql');
      на
      define('DB_DRIVER', 'mysqliz');
      Иногда, если в каких-либо доп. модулях разработчики использовали mysql подключение в обход класса для работы с базами данных, переключение на mysqliz может вызывать ошибки в работе. Тогда от него прийдётся отказаться.
      ОБНОВЛЕНИЕ
      -- В первую очередь удалите из папки vqmod/xml все старые патчи данного модуля (000_fastopencart_webguard.pro.xml и fastopencart_webguard.pro.xml)
      -- Если Вы ранее накладывали патчи на базу данных, наклыдавать требуется поочерёдно конструкции добавления индексов. Некоторые запросы, если Вы ранее их накладывали на базу выдадут ошибку (это не страшно). Главное, по очереди выполнить каждый запрос (построчно) .
    • От Boriskin
      ИНСТРУКЦИЯ ПО УСТАНОВКЕ
      Что такое кэш запросов?
      Кэш запросов можно представлять себе как хеш, ключами которого являются запросы, а значениями — результаты запросов.
      В OpenCart уже есть поддержка кэша! Зачем мне нужен BrainCache?
      Использование стандартного метода кэширивания предполагает под собой работу со всеми файлами, где нужно кэширивание со всеми вытекающими отсюда последствиями:
      децентрализованный доступ к параметрам кэшеривания
      наличие множественных вызовов методов работы с кэшом в рамках всего MVC
      отсутствие правил и исключений кэшеривания для каждого запроса
      отсутствие фильтрации запросов, т.е кэшиются запросы без анализа строк
      отсутствие фильтрации прав доступа вызовов кэшеривания по Имени файла, Классу и Методу

      Что умеет BrainCache?

      1.0 beta поддержка профилей настроек кэшеривания;
      централизованный контроль и обработка всех вызовов и обращений к БД MySQL;
      выводить часто изменяющиеся данные в отдельный массив и устанавливать для каждого элемента время кэша, где 0 — запрет кэшеривания. Для удобства добавлены константы с предопределенным значением времени: МИНУТА, ДЕНЬ, НЕДЕЛЯ, МЕСЯЦ, ГОД, ВИСОКОСНЫЙ ГОД;
      устанавливать стандартное значение времени кэша, при отсутвии удовлетворяющих правил кэшеривания (если правила для запроса отсутствуют или не подошли);
      установка ограничений доступа к таблицам БД не относящихся к магазину, но находящихся в рамках одной базы (Сценарий выдаст предупреждение и завершит работу);
      установка пути директории кэшеривания для текущего профиля;
      установка ограничения доступа к кэшу по времени для Классов, Методов классов, Метода Класса выполняющих запрос
      установка ограничения доступа к кэшу по времени для пути и имени выполняющих запросов скриптов;

      Фиксы:
      Исправлена ошибка доступа к админ-панели
      Оптимизирован цикл поиска по ассоционному массиву, разделена логика условий
      Добавлен редирект на страницу 404, в случае срабатывания блокирующего условия

      Совместимость:
      Проверялось на v1.5.4.1, но должен быть совместим со всеми версиями, потому, что для установки не нужно вносить множественные изменения.
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.