google page insight и излишние js и css

Вопросы и ответы по изменению функционала, смене дизайна, переносу сайта и т.п.

Модераторы: Xpycm, Koduc

Правила форума
ВНИМАНИЕ! Форум не является средством гарантированной поддержки клиентов и пользователей. Поэтому на быстрый ответ тут рассчитывать не нужно, как и на ответ вообще. Сотрудники отвечают по мере своих возможностей.

На форуме действует ограничение в 3 сообщения / сутки.
Если Вы хотите сказать "спасибо", то воспользуйтесь функцией "Повысить репутацию" - зелёная иконка "плюс" под ником ответившего.

google page insight и излишние js и css

Сообщение EuroCasa » 15 сен 2015, 15:31

Добрый день.
Подскажите, пожалуйста, решение следующего вопроса.

Гугл ругается на наличие излишнего количества js и css в заголовке сайта.
Вопрос заключается в том, какой файл редактировать, чтобы файлы подобные /bootstrap.min.js, /jquery.fancybox-1.3.4.pack.js и т.д. перенести в тело сайта.
Аватара пользователя
EuroCasa
Прохожий
 
Сообщения: 27
Зарегистрирован: 26 июн 2015, 10:26
Очки репутации: 0

Re: google page insight и излишние js и css

Сообщение EuroCasa » 15 сен 2015, 16:58

Итак, методом проб и ошибок, выяснилось что изменения нужно вносить в
Код: Выделить всё
<?php
    $cs
->registerCoreScript('jquery');
    $cs->registerCoreScript('jquery.ui');
    $cs->registerCoreScript('rating');
    $cs->registerCssFile($cs->getCoreScriptUrl().'/rating/jquery.rating.css');
    $cs->registerCssFile($baseThemeUrl . '/css/ui/jquery-ui.multiselect.css');
    $cs->registerCssFile($baseThemeUrl . '/css/redmond/jquery-ui-1.7.1.custom.css');
    $cs->registerCssFile($baseThemeUrl . '/css/ui.slider.extras.css');
    $cs->registerScriptFile($baseThemeUrl . '/js/jquery.multiselect.min.js');
    $cs->registerCssFile($baseThemeUrl . '/css/ui/jquery-ui.multiselect.css');
    $cs->registerScriptFile($baseThemeUrl . '/js/jquery.dropdownPlain.js', CClientScript::POS_HEAD);
    $cs->registerScriptFile($baseThemeUrl . '/js/common.js', CClientScript::POS_HEAD);
    $cs->registerScriptFile($baseThemeUrl . '/js/habra_alert.js', CClientScript::POS_END);
    $cs->registerScriptFile($baseThemeUrl . '/js/jquery.cookie.js', CClientScript::POS_END);
    $cs->registerScriptFile($baseThemeUrl . '/js/scrollto.js', CClientScript::POS_END);
    $cs->registerCssFile($baseThemeUrl.'/css/form.css', 'screen, projection');
    $cs->registerScriptFile($baseThemeUrl . '/js/bootstrap.min.js');
    $cs->registerScriptFile($baseThemeUrl . '/js/lib.js');
    // superfish menu
    $cs->registerCssFile($baseThemeUrl.'/js/superfish/css/superfish.css', 'screen');
    $cs->registerCssFile($baseThemeUrl.'/js/superfish/css/superfish-vertical.css', 'screen');
    $cs->registerScriptFile($baseThemeUrl.'/js/superfish/js/hoverIntent.js', CClientScript::POS_HEAD);
    $cs->registerScriptFile($baseThemeUrl.'/js/superfish/js/superfish.js', CClientScript::POS_HEAD);
    $cs->registerScript('initizlize-superfish-menu', '
            $("#sf-menu-id").superfish( {delay: 100, autoArrows: false, dropShadows: false, pathClass: "overideThisToUse", speed: "fast" });
        '
, CClientScript::POS_READY);
    if(param('useYandexMap') == 1){ $cs->registerScriptFile('http://api-maps.yandex.ru/2.0/?load=package.standard,package.clusters&coordorder=longlat&lang='.CustomYMap::getLangForMap(), CClientScript::POS_END);    }
    elseif (param('useGoogleMap') == 1){
        //$cs->registerScriptFile('https://maps.google.com/maps/api/js??v=3.5&sensor=false&language='.Yii::app()->language.'', CClientScript::POS_END);
        //$cs->registerScriptFile('http://google-maps-utility-library-v3.googlecode.com/svn/trunk/markerclusterer/src/markerclusterer.js', CClientScript::POS_END);    
}
    elseif (param('useOSMMap') == 1){
        //$cs->registerScriptFile('http://cdn.leafletjs.com/leaflet-0.7.2/leaflet.js', CClientScript::POS_END);
        //$cs->registerCssFile('http://cdn.leafletjs.com/leaflet-0.7.2/leaflet.css');
        $cs->registerScriptFile($baseThemeUrl . '/js/leaflet/leaflet-0.7.2/leaflet.js', CClientScript::POS_HEAD);
        $cs->registerCssFile($baseThemeUrl . '/js/leaflet/leaflet-0.7.2/leaflet.css');
        $cs->registerScriptFile($baseThemeUrl . '/js/leaflet/leaflet-0.7.2/dist/leaflet.markercluster-src.js', CClientScript::POS_HEAD);
        $cs->registerCssFile($baseThemeUrl . '/js/leaflet/leaflet-0.7.2/dist/MarkerCluster.css');
        $cs->registerCssFile($baseThemeUrl . '/js/leaflet/leaflet-0.7.2/dist/MarkerCluster.Default.css');    }

    if(Yii::app()->user->getState('isAdmin')){
        ?><link rel="stylesheet" type="text/css" href="<?php echo $baseThemeUrl; ?>/css/tooltip/tipTip.css" /><?php     }    ?>


Но не пойму какие изменения..
POS_END везде воткнуть?
___________
дополнение:

Кажется нашел решение.
Но остался вопрос как "CClientScript::POS_END" привязать к файлам css и js по адресу /assets/31259bfc/jquery.min.js?
Недвижимость в Италии. Eurocostruzioni Eurocasa Srl.
www.euro-casa.ru
Аватара пользователя
EuroCasa
Прохожий
 
Сообщения: 27
Зарегистрирован: 26 июн 2015, 10:26
Очки репутации: 0

Re: google page insight и излишние js и css

Сообщение Foton » 16 сен 2015, 12:32

Везде воткнуть вряд ли получится, начнут возникать ошибки. Но некоторые для некоторых скриптов можно и воткнуть :)
А вообще я бы не стал обращать на эти сообщения большого внимания
Foton
Разработчик
Разработчик
 
Сообщения: 431
Зарегистрирован: 26 янв 2012, 14:58
Очки репутации: 8

Re: google page insight и излишние js и css

Сообщение EuroCasa » 17 сен 2015, 11:16

Подскажите, пожалуйста, как исправить это:

Код: Выделить всё
Удалите код JavaScriptпрепятствующий отображению:

    
http://euro-casa.ru/assets/31259bfc/jquery.min.js
    
http://euro-casa.ru/assets/31259bfc/jui/js/jquery-ui.min.js
    
http://euro-casa.ru/assets/76105613/jquery.fancybox-1.3.4.pack.js
    
http://euro-casa.ru/…76105613/jquery.mousewheel-3.0.4.pack.js
    
http://euro-casa.ru/min/serve/…c43c13dd23e66c77f51faa7109&lm=1441987245

Оптимизируйте работу CSS на следующих ресурсах:

    
http://euro-casa.ru/min/serve/…27626ec1c352e806a4124bc6d3&lm=1439806222
    
http://euro-casa.ru/min/serve/…7f3aa0760fe53a3bd69efd1833&lm=1418212590
    
http://euro-casa.ru/min/serve/…a678cb87834f9ccb3f083f064e&lm=1418212648
    
http://euro-casa.ru/min/serve/…51f53a3530e42386ac0905b5d5&lm=1439806302
 
Недвижимость в Италии. Eurocostruzioni Eurocasa Srl.
www.euro-casa.ru
Аватара пользователя
EuroCasa
Прохожий
 
Сообщения: 27
Зарегистрирован: 26 июн 2015, 10:26
Очки репутации: 0

Re: google page insight и излишние js и css

Сообщение Foton » 18 сен 2015, 15:05

Ничего исправлять не нужно. JS и CSS в <head> - это нормально. Можно конечно попробовать часть из них убрать в конец файла, но не думаю что "игра стоит свеч"
Foton
Разработчик
Разработчик
 
Сообщения: 431
Зарегистрирован: 26 янв 2012, 14:58
Очки репутации: 8

Re: google page insight и излишние js и css

Сообщение EuroCasa » 18 сен 2015, 15:21

Да, я как раз и хочу убрать их в конец страницы. Подскажите как это сделать, пожалуйста.
Также не пойму как оптимизировать файлы в min/serve:
Код: Выделить всё
    http://euro-casa.ru/min/serve/…27626ec1c352e806a4124bc6d3&lm=1439806222
    
http://euro-casa.ru/min/serve/…7f3aa0760fe53a3bd69efd1833&lm=1418212590
    
http://euro-casa.ru/min/serve/…a678cb87834f9ccb3f083f064e&lm=1418212648
    
http://euro-casa.ru/min/serve/…51f53a3530e42386ac0905b5d5&lm=1439806302 
Аватара пользователя
EuroCasa
Прохожий
 
Сообщения: 27
Зарегистрирован: 26 июн 2015, 10:26
Очки репутации: 0

Re: google page insight и излишние js и css

Сообщение Xpycm » 18 сен 2015, 15:22

А ещё мне нравится: по документации Google рекомендуют вставлять код аналитики в head, но при этом тот же Google PageSpeed рекомендует убрать код вниз.

Файлы в min/serve уже минифицированы
Dropbox
Open Real Estate CMS: FAQ | FAQ 2 | FAQ 3
Изображение
Xpycm
Разработчик
Разработчик
 
Сообщения: 1592
Зарегистрирован: 30 дек 2011, 11:06
Откуда: Йошкар-Ола
Очки репутации: 50

Re: google page insight и излишние js и css

Сообщение EuroCasa » 22 сен 2015, 10:48

Не хотите открывать секреты - ладно :-) Но может быть подскажите, как добавить атрибут async для
Код: Выделить всё

    http
://euro-casa.ru/assets/31259bfc/jquery.min.js
    http://euro-casa.ru/assets/31259bfc/jui/js/jquery-ui.min.js
    http://euro-casa.ru/assets/76105613/jquery.fancybox-1.3.4.pack.js
    http://euro-casa.ru/…76105613/jquery.mousewheel-3.0.4.pack.js
    http://euro-casa.ru/min/serve/…c43c13dd23e66c77f51faa7109&lm=1441987245   


и атрибут bogus для css:
Код: Выделить всё

    http
://euro-casa.ru/min/serve/…27626ec1c352e806a4124bc6d3&lm=1439806222
    http://euro-casa.ru/min/serve/…7f3aa0760fe53a3bd69efd1833&lm=1418212590
    http://euro-casa.ru/min/serve/…a678cb87834f9ccb3f083f064e&lm=1418212648
    http://euro-casa.ru/min/serve/…51f53a3530e42386ac0905b5d5&lm=1439806302   

?

Предвосхищая вопрос отвечу, что это вроде бы должно иметь такой же эффект как и async для script
http://codepen.io/Tigt/blog/async-css-w ... javascript
Аватара пользователя
EuroCasa
Прохожий
 
Сообщения: 27
Зарегистрирован: 26 июн 2015, 10:26
Очки репутации: 0

Re: google page insight и излишние js и css

Сообщение Xpycm » 22 сен 2015, 11:48

Никаких секретов нет.

Чтобы вставить вниз нужно вместо: POS_HEAD прописать POS_END. Возможно, что-нибудь отвалится. Возможно, и не отвалится )
В продукте используется минификатор css и js файлов, по сути, большая часть из них сильно минифицируется.

Добавить bogus к вызовам CSS:

Файл protected\extensions\minScript\components\ExtMinScript.php
После строки ( номер 292 или около того ): foreach ($this->cssFiles as $cssUrl => $cssMedia) {
вставить: $cssMedia = ($cssMedia) ? $cssMedia.', bogus' : 'bogus';

Затем необходимо очистить кэш: http://open-real-estate.info/ru/faq#clear-cache или viewtopic.php?f=17&t=256#p1328

Как добавить asyns для JS-файлов будет домашним заданием ) Либо обращайтесь за платной реализацией : http://monoray.ru/contact
Dropbox
Open Real Estate CMS: FAQ | FAQ 2 | FAQ 3
Изображение
Xpycm
Разработчик
Разработчик
 
Сообщения: 1592
Зарегистрирован: 30 дек 2011, 11:06
Откуда: Йошкар-Ола
Очки репутации: 50


Вернуться в Вопросы и помощь по изменениям

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 38

cron