Перейти к публикации
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...

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


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

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

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

 

Я делаю так:

 

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

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

 

в хидере.

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

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

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

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


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

 

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

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

Полагаю да.

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

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

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


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

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

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


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

 

 

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

 

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

 

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

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

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


Создайте аккаунт или войдите в него для комментирования

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

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
 Поделиться

×
×
  • Создать...

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

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