Jump to content

Recommended Posts

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

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

 

Я делаю так:

 

Тело счетчика метрики выношу в файл, скажем 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

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

Share this post


Link to post
Share on other sites

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

 

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

Share this post


Link to post
Share on other sites

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

 

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

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

 

в хидере.

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites
. Очень много скриптов подключено, тормозит. 

 

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

Share this post


Link to post
Share on other sites

Полагаю да.

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

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

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

 

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

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

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

Share this post


Link to post
Share on other sites

А как же кэш?

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

Share this post


Link to post
Share on other sites

А как же кэш?

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

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

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

Share this post


Link to post
Share on other sites

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

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

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

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

Share this post


Link to post
Share on other sites

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

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

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

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

 

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

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

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

Share this post


Link to post
Share on other sites

Да, так.

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

Share this post


Link to post
Share on other sites

Тыц.

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

Share this post


Link to post
Share on other sites

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

Нашел такой вариант 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/ но он как я вижу заброшен. Может еще аналоги есть?

Share this post


Link to post
Share on other sites

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

Нашел такой вариант 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/ но он как я вижу заброшен. Может еще аналоги есть?

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

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

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

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

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

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

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

 

 

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

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

Share this post


Link to post
Share on other sites

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

 

 

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

 

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

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

 

 Перемещение 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>

 

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

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Similar Content

    • By 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.х  
    • By 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 - удобный просмотр и поиск по заказам
    • By 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 -->  

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

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.