Где находится файл .JS в этом коде?И почему они называют это так? - PullRequest
0 голосов
/ 02 октября 2011

Где находится файл JS и является ли этот Async самым быстрым способом вызова JS?

Я полагаю, что в .JS у них есть вызовы PHP для обновления статистики объявлений ??

код:

<script type="text/javascript">
(function(){ 
     var acc = "acc_230d269_pub";
     var st = "nocss";
     var or = "h";
     var e = document.getElementsByTagName("script")[0];
     var d = document.createElement("script");
     d.src = ('https:' == document.location.protocol ?'https://' : 'http://')+"engine.influads.com/show/"+or+"/"+st+"/"+acc;
     d.type = "text/javascript"; 
     d.async = true;
     d.defer = true;
     e.parentNode.insertBefore(d,e);
 })();
 </script>

Ответы [ 5 ]

2 голосов
/ 02 октября 2011

Я сделал ваш код более читабельным :

1 <script type="text/javascript">
2 (function () {
3   var acc = "acc_230d269_pub";
4   var st = "nocss";
5   var or = "h";
6   var e = document.getElementsByTagName("script")[0];
7   var d = document.createElement("script");
8   d.src = ('https:' == document.location.protocol ? 'https://' : 'http://') +
9                "engine.influads.com/show/" + or + "/" + st + "/" + acc;
10  d.type = "text/javascript";
11  d.async = true;
12  d.defer = true;
13  e.parentNode.insertBefore(d, e);
14 })();
15 </script>
  • 2,14 Создается оболочка анонимной функции, так что переменные не могут быть доступны извне функции («область действия»)
  • 3 acc выглядит как идентификатор рекламодателя
  • 4,5 st = "nocss" и or = "h" выглядят как настройки для настройки внешнего вида
  • 7,10-12 A <script> тег создан. async = Загрузка скрипта не будет блокировать выполнение документа. defer=true предотвращает выполнение скрипта (может быть опущено)
  • 6,13 Вновь созданный тег сценария вставляется перед (13) первым тегом сценария в документе (6,13)
  • 8,9 URL создается:
    Если текущая страница передается по безопасному соединению, внедренный сценарий также будет передаваться по протоколу HTTPS.

Расширение запрошенного файла опущено. Этот файл может быть обработан с использованием типа application/javascript MIME в зависимости от конфигурации сервера.

2 голосов
/ 02 октября 2011

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

1 голос
/ 02 октября 2011

Большая часть этого кода предназначена для асинхронной загрузки кода JavaScript, что работает в разных браузерах. Объяснение того, как это работает, здесь: http://friendlybit.com/js/lazy-loading-asyncronous-javascript/

Загрузка асинхронно означает, что браузер не ожидает его завершения. Таким образом, объявление не будет загружаться быстрее, но остальная часть страницы будет.

Если вы соберете воедино строку, вы обнаружите, что загружаемый ими файл JavaScript: http://engine.influads.com/show/h/nocss/acc_230d269_pub

1 голос
/ 02 октября 2011

Есть несколько способов включить js-код в html, один - поместить код непосредственно в тег, точно так же, как вы задумывались о размещенном вами коде, а другой метод - использовать следующий синтаксис:

<script type="text/javascript" src="path/to/external_file.js"></script>

В качестве примечания: в опубликованном вами коде используется методика, предотвращающая конфликты имен js путем помещения кода в блок (function() ...)();, что я считаю очень хорошей практикой.

Что касается вопроса об использовании async в теге, вы можете взглянуть на это: http://davidwalsh.name/html5-async

0 голосов
/ 02 октября 2011

Я вижу следующие преимущества:

  1. Асинхронная загрузка, которая может помочь в более быстром отображении пользовательского интерфейса
  2. Выборочный http или https, используемый для определения местоположенияИсходный код js по протоколу загрузки текущей страницы с

Мне интересно, почему исходный код js не заканчивается расширением .js, хотя

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...