Страница 1 из 1

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

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

Гугл ругается на наличие излишнего количества js и css в заголовке сайта.
Вопрос заключается в том, какой файл редактировать, чтобы файлы подобные /bootstrap.min.js, /jquery.fancybox-1.3.4.pack.js и т.д. перенести в тело сайта.

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

СообщениеДобавлено: 15 сен 2015, 16:58
EuroCasa
Итак, методом проб и ошибок, выяснилось что изменения нужно вносить в
Код: Выделить всё
<?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?

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

СообщениеДобавлено: 16 сен 2015, 12:32
Foton
Везде воткнуть вряд ли получится, начнут возникать ошибки. Но некоторые для некоторых скриптов можно и воткнуть :)
А вообще я бы не стал обращать на эти сообщения большого внимания

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

СообщениеДобавлено: 17 сен 2015, 11:16
EuroCasa
Подскажите, пожалуйста, как исправить это:

Код: Выделить всё
Удалите код 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
 

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

СообщениеДобавлено: 18 сен 2015, 15:05
Foton
Ничего исправлять не нужно. JS и CSS в <head> - это нормально. Можно конечно попробовать часть из них убрать в конец файла, но не думаю что "игра стоит свеч"

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

СообщениеДобавлено: 18 сен 2015, 15:21
EuroCasa
Да, я как раз и хочу убрать их в конец страницы. Подскажите как это сделать, пожалуйста.
Также не пойму как оптимизировать файлы в 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 

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

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

Файлы в min/serve уже минифицированы

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

СообщениеДобавлено: 22 сен 2015, 10:48
EuroCasa
Не хотите открывать секреты - ладно :-) Но может быть подскажите, как добавить атрибут 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

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

СообщениеДобавлено: 22 сен 2015, 11:48
Xpycm
Никаких секретов нет.

Чтобы вставить вниз нужно вместо: 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