Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Счетчики в отдельный файл


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

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

Надіслати
Поділитися на інших сайтах


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

 

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

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

 

в хидере.

Надіслати
Поділитися на інших сайтах

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

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

Надіслати
Поділитися на інших сайтах


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

 

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

Надіслати
Поділитися на інших сайтах

Полагаю да.

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

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

Надіслати
Поділитися на інших сайтах


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

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

 

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

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

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

Надіслати
Поділитися на інших сайтах


А как же кэш?

Вынес метрику, аналитику и лайвтекст в отдельный файл, загрузка увеличилась с 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/ прогнать пару страниц. Там подскажут, что делать :)

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

Надіслати
Поділитися на інших сайтах


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

 

 

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

 

То есть, все 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>

 

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

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

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.