JavaScript - вынос во внешний файл со слиянием

P0
На сайте с 09.10.2007
Offline
61
1210

Добрый день.

Использую в качестве крутилки рекламы Google DFP.

Код вызова, сгенерированный гуглом выглядит вот так:

<script type='text/javascript'>

var googletag = googletag || {};
googletag.cmd = googletag.cmd || [];
(function() {
var gads = document.createElement('script');
gads.async = true;
gads.type = 'text/javascript';
var useSSL = 'https:' == document.location.protocol;
gads.src = (useSSL ? 'https:' : 'http:') +
'//www.googletagservices.com/tag/js/gpt.js';
var node = document.getElementsByTagName('script')[0];
node.parentNode.insertBefore(gads, node);
})();
</script>

<script type='text/javascript'>
googletag.cmd.push(function() {
googletag.defineSlot('/924670/Bottom_970x90', [970, 90], 'div-gpt-ad-1406628543289-0').addService(googletag.pubads());
googletag.defineSlot('/924670/Center_468x60', [468, 60], 'div-gpt-ad-1406628543289-1').addService(googletag.pubads());
googletag.defineSlot('/924670/Center_728x90', [728, 90], 'div-gpt-ad-1406628543289-2').addService(googletag.pubads());
googletag.defineSlot('/924670/Center_970x90', [970, 90], 'div-gpt-ad-1406628543289-3').addService(googletag.pubads());
googletag.pubads().enableSingleRequest();
googletag.enableServices();
});
</script>

Хочу вынести это добро во внешний JS файл, дабы на каждой странице в хедере не иметь такой большой код.

Вопрос в том, почему гугл разбил это на два фрагмента, т.е. два тега script?

Сейчас я соединил эти два фрагмента во внешнем файле и вызываю его так <script src="/ads.js"></script>:

ads.js:

var googletag = googletag || {};

googletag.cmd = googletag.cmd || [];
(function() {
var gads = document.createElement('script');
gads.async = true;
gads.type = 'text/javascript';
var useSSL = 'https:' == document.location.protocol;
gads.src = (useSSL ? 'https:' : 'http:') +
'//www.googletagservices.com/tag/js/gpt.js';
var node = document.getElementsByTagName('script')[0];
node.parentNode.insertBefore(gads, node);
})();

googletag.cmd.push(function() {
googletag.defineSlot('/924670/Bottom_970x90', [970, 90], 'div-gpt-ad-1406628543289-0').addService(googletag.pubads());
googletag.defineSlot('/924670/Center_468x60', [468, 60], 'div-gpt-ad-1406628543289-1').addService(googletag.pubads());
googletag.defineSlot('/924670/Center_728x90', [728, 90], 'div-gpt-ad-1406628543289-2').addService(googletag.pubads());
googletag.defineSlot('/924670/Center_970x90', [970, 90], 'div-gpt-ad-1406628543289-3').addService(googletag.pubads());
googletag.pubads().enableSingleRequest();
googletag.enableServices();

Вроде бы все работает отлично, но все-таки остаются сомнения, точно ли на что не повлияет их сливание в единый фрагмент?

Спасибо.

[Удален]
#1

Проблем из-за слияния не должно быть.

Можешь проверить, на всякий случай, в консоли firebug в файрфоксе (или F12 в других браузерах) не возникает ли ошибок. Если нет - все хорошо.

P0
На сайте с 09.10.2007
Offline
61
#2
Mr.Boba:
Проблем из-за слияния не должно быть.
Можешь проверить, на всякий случай, в консоли firebug в файрфоксе (или F12 в других браузерах) не возникает ли ошибок. Если нет - все хорошо.

В хроме по консоли проверил - ошибок нет. Но смущает меня это. Гугл не стал бы лишние символы добавлять, если бы не было необходимо.

Кроме того, в первом куске подгрузка еще одного скрипта идет. Возможно, с этим как-то связано...

ДП
На сайте с 23.11.2009
Offline
203
#3

Там в инструкции нет такого, что один скрипт разместить в теге <head> например, а второй перед закрывающим </body> или наоборот?

Если есть - то это способ меньше тормозить загрузку страницы.

P0
На сайте с 09.10.2007
Offline
61
#4
Дикий пионер:
Там в инструкции нет такого, что один скрипт разместить в теге <head> например, а второй перед закрывающим </body> или наоборот?
Если есть - то это способ меньше тормозить загрузку страницы.

Нет, оба эти блока должны быть внутри Head.

Для Body есть блоки, но они отдельные, с этими не связанные.

Indeepsky
На сайте с 25.02.2014
Offline
7
#5

Решение давно есть у самого гугла. Читайте на хабре http://habrahabr.ru/company/advertone_ru/blog/218139/ и глюков не будет

Хостинг InDeepSky (https://indeepsky.ru/). Безлимитный тариф за 145 рублей в месяц VPS хостинг от 170 рублей (https://indeepsky.ru/vps-hosting)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий