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

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

Добрый вечер!

Подскажите пожалуйста как счетчики метрики, аналитики, да и прочие скрипты вынести в отдельный файл?

 

Я делаю так:

 

Тело счетчика метрики выношу в файл, скажем meter.js и размещаю по адресу catalog/view/theme/default/template/common/meter.js

 

(function (d, w, c) {

    (w[c] = w[c] || []).push(function() {
        try {
            w.yaCounter21997333 = new Ya.Metrika({id:123456789,
                    webvisor:true,
                    clickmap:true,
                    trackLinks:true,
                    accurateTrackBounce:true});
        } catch(e) { }
    });
 
    var n = d.getElementsByTagName("script")[0],
        s = d.createElement("script"),
        f = function () { n.parentNode.insertBefore(s, n); };
    s.type = "text/javascript";
    s.async = true;
    s.src = (d.location.protocol == "https:" ? "https:" : "http:") + "//mc.yandex.ru/metrika/watch.js";
 
    if (w.opera == "[object Opera]") {
        d.addEventListener("DOMContentLoaded", f, false);
    } else { f(); }
})(document, window, "yandex_metrika_callbacks");

 

В footer.tpl по адресу catalog/view/theme/default/template/common прописываю перед </body>

<script language="javascript" type="text/javascript"src="catalog/view/theme/default/template/common/meter.js"></script>

 

И ничего. 

Возможно что то сделал неправильно, а возможно нужно в другой шаблон (не футер) запихать вывод скрипта.

Подскажите кто в курсе.

 

И еще такой вопрос. В админке опенкарта во вкладке настройки - сервер - Код Google Analytics

В какой файл вставляются коды оттуда?

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


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

<script type="text/javascript" src="jquery.js"></script>

 

тоже подключен

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


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

А для чего метрику в отдельный файл пихать? У неё что своя отдельная страница будет?

 

И еще такой вопрос. В админке опенкарта во вкладке настройки - сервер - Код Google Analytics

В какой файл вставляются коды оттуда?

 

в хидере.

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


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

Ускорить загрузку страниц и навести порядок в структуре документа. Очень много скриптов подключено, тормозит. 

Ну, метрику и аналитику не принципиально, у нее код асинхронно же выполняется, ее просто для примера взял. Хотя все равно хотелось бы убрать в отдельный файл все скрипты счетчиков)

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


Ссылка на сообщение
Поделиться на другие сайты
. Очень много скриптов подключено, тормозит. 

 

а создание ещё одного файла с теми же самыми скриптами решит эту проблему?

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


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

Полагаю да.

Плюс к тому же страница от лишенего мусора почистится, что хорошо в плане навигации.

Да и просто же приятнее когда все логично :)

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


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

Метрику не стоит выносить в отдельный файл, все остальные можно. Но к сожалению не все срипты можно вынести те где есть php код перестают работать.

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


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

Ускорить загрузку страниц и навести порядок в структуре документа. Очень много скриптов подключено, тормозит. 

Ну, метрику и аналитику не принципиально, у нее код асинхронно же выполняется, ее просто для примера взял. Хотя все равно хотелось бы убрать в отдельный файл все скрипты счетчиков)

 

Сами себе противоречите..

Вынеся в отдельный файл, скорость загрузки упадёт наоборот.

Чем больше подгружаемых файлов стилей/скриптов, тем дольше идёт загрузка страниц.

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


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

А как же кэш?

Вынес метрику, аналитику и лайвтекст в отдельный файл, загрузка увеличилась с 53 / 100 до 61 / 100 для мобильных. 

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


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

А как же кэш?

Вынес метрику, аналитику и лайвтекст в отдельный файл, загрузка увеличилась с 53 / 100 до 61 / 100 для мобильных. 

Разница между первой загрузкой и последующей большая, поскольку на последующих скрипты берутся уже из кеша браузера.

+ подгрузка сторонних скриптов, которые вызывают счётчики, тоже заметно тормозят сайт при прорисовке(в том случае, если сторонний сервер не доступен или загружен)

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


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

Ну вот, уже хорошо. Плюс код чище.

А не подскажете, есть ли смысл выносить скрипты из модулей опенкарта в отдельный файл?

И если да, как это сделать?

Что то пока не получается тем способом, которым получилось эти.

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


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

Ну вот, уже хорошо. Плюс код чище.

А не подскажете, есть ли смысл выносить скрипты из модулей опенкарта в отдельный файл?

И если да, как это сделать?

Что то пока не получается тем способом, которым получилось эти.

 

Имеете ввиду, все скрипты/файлы стилей в один файл (скрипты в один файл, стили в другой, общий)?

Если да, то имеет большой смысл.

Есть множество модулей для этого, писать с нуля, смысла нету.

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


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

Да, так.

Подскажите по модулям в таком случае, наверно я плохо искал.

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


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

Тыц.

Ну и по аналогии, они все это делают.

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


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

Нерационально дорогой и не очень хороший говорят. 

Нашел такой вариант https://opencartforum.com/files/file/1337-mcj-%D0%B0%D0%B2%D1%82%D0%BE%D0%BC%D0%B0%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5-%D0%BE%D0%B1%D1%8A%D0%B5%D0%B4%D0%B8%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5-%D0%B8-%D1%81%D0%B6%D0%B0%D1%82%D0%B8%D0%B5-css-js/ но он как я вижу заброшен. Может еще аналоги есть?

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


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

Нерационально дорогой и не очень хороший говорят. 

Нашел такой вариант https://opencartforum.com/files/file/1337-mcj-%D0%B0%D0%B2%D1%82%D0%BE%D0%BC%D0%B0%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5-%D0%BE%D0%B1%D1%8A%D0%B5%D0%B4%D0%B8%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5-%D0%B8-%D1%81%D0%B6%D0%B0%D1%82%D0%B8%D0%B5-css-js/ но он как я вижу заброшен. Может еще аналоги есть?

Так вам и не говорят использовать его полностью, а достаточно взять из него нужные функции.

Беслпатный сыр бывает только сами знаете где, пробуйте.

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


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

Эмм.. это как?

Модуль то все равно сначала купить нужно.

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


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

Эмм.. это как?

Модуль то все равно сначала купить нужно.

Купить, и взять нужные функции из модуля.(остальное затереть)

Я хоть и не сторонник нулледов, считаю, что чужой труд должен оцениваться(оплачиваться), но уверен, что данный модуль да где-нибудь выложен.

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


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

ElenaLobova, попробуйте сначала http://gtmetrix.com/ прогнать пару страниц. Там подскажут, что делать :)

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


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

Купить, и взять нужные функции из модуля.(остальное затереть)

Я хоть и не сторонник нулледов, считаю, что чужой труд должен оцениваться(оплачиваться), но уверен, что данный модуль да где-нибудь выложен.

Дело не в стоимости. Просто не вижу смысла покупать кота в мешке. 

 

 

ElenaLobova, попробуйте сначала http://gtmetrix.com/ прогнать пару страниц. Там подскажут, что делать :)

Прогнал. Самая большая нагрузка как раз из за ява скриптов идет

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


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

Дело не в стоимости. Просто не вижу смысла покупать кота в мешке. 

 

 

Прогнал. Самая большая нагрузка как раз из за ява скриптов идет

 

То есть, все 970 покупателей купили кота в мешке? :-)

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


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

Прогнал. Самая большая нагрузка как раз из за ява скриптов идет

Для начала, удалите совсем не нужные. Потом уж оптимизируйте.

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


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

В том то и дело, что нужны все.

Говорят можно еще просто вниз перенести все скрипты.

 

 Перемещение JS файлов в конец страницы (перед закрывающим ), не забываем что необходимо будет весь JS код в тексте страницы вынести в отдельный файл и грузить после jQuery, иначе работать не будет. Это ускоряет отображение страницы, т.к. рендеринг страницы блокируется на время загрузки и выполнения скрипта.

 

 

У меня к примеру хэдер имеет следующий вид

 

 

<!DOCTYPE html>

<html dir="<?php echo $direction; ?>" lang="<?php echo $lang; ?>">
<head>
<meta charset="UTF-8" />
<title><?php echo $title; ?></title>
<base href="<?php echo $base; ?>" />
<?php if ($description) { ?>
<meta name="description" content="<?php echo $description; ?>" />
<?php } ?>
<?php if ($keywords) { ?>
<meta name="keywords" content="<?php echo $keywords; ?>" />
<?php } ?>
<?php if ($icon) { ?>
<link href="<?php echo $icon; ?>" rel="icon" />
<?php } ?>
<?php foreach ($links as $link) { ?>
<link href="<?php echo $link['href']; ?>" rel="<?php echo $link['rel']; ?>" />
<?php } ?>
<link rel="stylesheet" type="text/css" href="catalog/view/theme/default/stylesheet/stylesheet.css" />
<?php foreach ($styles as $style) { ?>
<link rel="<?php echo $style['rel']; ?>" type="text/css" href="<?php echo $style['href']; ?>" media="<?php echo $style['media']; ?>" />
<?php } ?>
<script>window.jQuery || document.write('<script src="catalog/view/javascript/jquery/jquery-1.7.1.min.js"><\/script>')</script>
<script type="text/javascript" src="catalog/view/javascript/jquery/ui/jquery-ui-1.8.16.custom.min.js"></script>
<link rel="stylesheet" type="text/css" href="catalog/view/javascript/jquery/ui/themes/ui-lightness/jquery-ui-1.8.16.custom.css" />
<script type="text/javascript" src="catalog/view/javascript/jquery/ui/external/jquery.cookie.js"></script>
<script type="text/javascript" src="catalog/view/javascript/jquery/colorbox/jquery.colorbox.js"></script>
<link rel="stylesheet" type="text/css" href="catalog/view/javascript/jquery/colorbox/colorbox.css" media="screen" />
<script type="text/javascript" src="catalog/view/javascript/jquery/tabs.js"></script>
<script type="text/javascript" src="catalog/view/javascript/common.js"></script>
<script type="text/javascript" src="catalog/view/javascript/liveTex.js"></script>
<script type="text/javascript" src="catalog/view/javascript/metrika.js"></script>
<script type="text/javascript" src="catalog/view/javascript/GoogleAnalytics.js"></script>
<?php foreach ($scripts as $script) { ?>
<script type="text/javascript" src="<?php echo $script; ?>"></script>
<?php } ?>
<!--[if IE 7]>
<link rel="stylesheet" type="text/css" href="catalog/view/theme/default/stylesheet/ie7.css" />
<![endif]-->
<!--[if lt IE 7]>
<link rel="stylesheet" type="text/css" href="catalog/view/theme/default/stylesheet/ie6.css" />
<script type="text/javascript" src="catalog/view/javascript/DD_belatedPNG_0.0.8a-min.js"></script>
<script type="text/javascript">
DD_belatedPNG.fix('#logo img');
</script>
<![endif]-->
<?php echo $google_analytics; ?>
</head>
<body>
<div id="container">
<div id="header">
<div id="menu">
<div class="phone"><span style="font-size: 18.0pt; color:"#сс6600;">(812) </span><span style="font-size: 28.0pt;  style="color: #сс6600;">339-03-03</span></div>
<?php if($we_menu_cache = $this->config->get('we_menu_cache')){ ?>
<ul class="<?php echo $this->config->get('we_menu_class') ?>">
<?php if(!empty($we_menu_cache)){ ?>
<?php foreach($we_menu_cache as $item){
$tpl = (strpos($_SERVER['REQUEST_URI'], $item['href']) !== false) && $_SERVER['REQUEST_URI'] != '/'  ? 'tpl_row_act' : 'tpl_row';
echo str_replace('&', '&', html_entity_decode($item[$tpl]));
} ?>
<?php } ?>
</ul>
<?php } ?>
 
  <?php if ($logo) { ?>
  <div id="logo"><a href="<?php echo $home; ?>"><img src="<?php echo $logo; ?>" title="<?php echo $name; ?>" alt="<?php echo $name; ?>" /></a></div>
  <?php } ?>
  <?php echo $language; ?>
  <?php echo $currency; ?>
  <?php echo $cart; ?>
  <div id="search">
    <div class="button-search"></div>
    <?php if ($filter_name) { ?>
    <input type="text" name="filter_name" value="<?php echo $filter_name; ?>" />
    <?php } else { ?>
    <input type="text" name="filter_name" value="<?php echo $text_search; ?>" onclick="this.value = '';" onkeydown="this.style.color = '#000000';" />
    <?php } ?>
  </div>
  <div id="welcome">
    <?php if (!$logged) { ?>
    <?php echo $text_welcome; ?>
    <?php } else { ?>
    <?php echo $text_logged; ?>
    <?php } ?>
  </div>
  
</div>
<?php if ($categories) { ?>
<?php } ?>
<div id="notification"></div>

 

Скрипты, как видите, подключены вверху.

Так вот, куда именно их перенести, чтоб ускорить загрузку страницы?

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


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

Я подожду, пока pyramida ответит, он сразу видно, знающий.

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


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

ElenaLobova, Вам к программистам уже нужно обращаться. Они таким занимаются.

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


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

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

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

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

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

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

Войти

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

Войти

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

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


      Permission Counters - счетчики при редактировании прав доступа
      Permission Counters - простой, но весьма полезный мод, добавляющий счетчики при редактировании прав доступа пользователям
       
      Наглядная информация о количестве включенных прав в группах настроек облегчает работу и поможет избежать ошибок при их предоставлении
       
      DEMO
       
      Особенности:
      - совместим с ocStore* / Opencart.PRO|CMS / Opencart версий 2x - 302x
      - не затрагивает функционал прав доступа
      - не меняет файлы или БД
      - использует javascript/JQuery
       
      * в ocStore поддерживается дополнительная группа настроек для скрытия дополнений
       
       
      Установка 2x:
      1. Загрузить файл permission-counters.ocmod.xml в Дополнения > Установщик дополнений
      2. Обновить кеш модификаторов в Дополнения > Модификаторы (Менеджер дополнений)
       
      Установка 3x:
      1. Загрузить архив permission-counter-3x.ocmod.zip в Extensions > Installer
      2. Обновить кеш модификаторов в Extensions > Modifications
      3. Обновить кеш шаблона (theme cache) в Dashboard > Developer Settings
       
       
      Другие дополнения:
      -----------------------------
      QuickSave - кнопка быстрого сохранения при редактировании
      OrderField - сортировка товаров в счете, дополнительные поля в заказах и многое другое
      AutoComplete 2x - улучшенное автозаполнение в админке
      SearchOrder 2x - удобный просмотр и поиск по заказам
      Добавил AlexDW Добавлено 18.03.2018 Категория Инструменты, утилиты Системные требования Сайт разработчика Старая цена Метод активации Без активации Ioncube Loader Нет OpenCart 3.0
      2.3
      2.2
      2.1
      2.0 ocStore 3.0
      2.3
      2.2
      2.1 OpenCart.Pro, ocShop Opencart.pro 2.3
      Opencart.pro 2.1
      OcShop 2.0.3.х  
    • От AlexDW
      Permission Counters - простой, но весьма полезный мод, добавляющий счетчики при редактировании прав доступа пользователям
       
      Наглядная информация о количестве включенных прав в группах настроек облегчает работу и поможет избежать ошибок при их предоставлении
       
      DEMO
       
      Особенности:
      - совместим с ocStore* / Opencart.PRO|CMS / Opencart версий 2x - 302x
      - не затрагивает функционал прав доступа
      - не меняет файлы или БД
      - использует javascript/JQuery
       
      * в ocStore поддерживается дополнительная группа настроек для скрытия дополнений
       
       
      Установка 2x:
      1. Загрузить файл permission-counters.ocmod.xml в Дополнения > Установщик дополнений
      2. Обновить кеш модификаторов в Дополнения > Модификаторы (Менеджер дополнений)
       
      Установка 3x:
      1. Загрузить архив permission-counter-3x.ocmod.zip в Extensions > Installer
      2. Обновить кеш модификаторов в Extensions > Modifications
      3. Обновить кеш шаблона (theme cache) в Dashboard > Developer Settings
       
       
      Другие дополнения:
      -----------------------------
      QuickSave - кнопка быстрого сохранения при редактировании
      OrderField - сортировка товаров в счете, дополнительные поля в заказах и многое другое
      AutoComplete 2x - улучшенное автозаполнение в админке
      SearchOrder 2x - удобный просмотр и поиск по заказам
    • От Texnarik
      Очень хочу установиться счетчики от I.ua , но на OpenCart выдает ошибку ... пишет что не хватает якобы где-то кавычки ... я не могу понять где ... 
       
      <!-- I.UA counter --><a href="http://www.i.ua/" target="_blank" onclick="this.href='http://i.ua/r.php?218031';" title="Rated by I.UA"> <script type="text/javascript"><!-- iS='http'+(window.location.protocol=='https:'?'s':'')+ '://r.i.ua/s?u218031&p4&n'+Math.random(); iD=document;if(!iD.cookie)iD.cookie="b=b; path=/";if(iD.cookie)iS+='&c1'; iS+='&d'+(screen.colorDepth?screen.colorDepth:screen.pixelDepth) +"&w"+screen.width+'&h'+screen.height; iT=iR=iD.referrer.replace(iP=/^[a-z]*:\/\//,'');iH=window.location.href.replace(iP,''); ((iI=iT.indexOf('/'))!=-1)?(iT=iT.substring(0,iI)):(iI=iT.length); if(iT!=iH.substring(0,iI))iS+='&f'+escape(iR); iS+='&r'+escape(iH); iD.write('<img src="'+iS+'" border="0" width="88" height="31" />'); //--></script></a><!-- End of I.UA counter -->  

    • От tdl13
      Добрый день Уважаемые Гуру!
       
      Подскажите пожалуйста куда вставить коды счетчиков (название + путь файла и куда вставить код)  для: 
       
      1. 
      Отслеживание трафикаКод отслеживания трафика необходимо разместить на всех страницах сайта внутри тега BODY, от этого зависит полнота и точность сбора данных для дальнейшего их применения. Данные начинают накапливаться с момента размещения кода. 
      2.
      Добавление в корзинуРазместите этот код на странице или в блоке с сообщением, что товар помещен в корзину. 
      3.
      Начало оформления заказаРазместите этот код на странице начала оформления заказа. 
      4. 
      Добавление в корзинуРазместите этот код на странице или в блоке с сообщением, что товар помещен в корзину. 
      Заранее благодарен за Вашу помощь!
      П.С. Отслеживание трафика я вставил туда-же где у меня стоит код от метрики ( надеюсь правильно)/
    • От IldarPateev
      Не могу уменьшить расстояние между счетчиками посещаемости Подскажите кто знает пажалуйста!
  • Последние посетители   0 пользователей онлайн

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

×

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

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