2009-12-30 3 views
1

Объявление Javascript в документе html. У нас есть 3 способа сделать чтоjavascript basic question

  1. раздел сценария идет в головной метке
  2. раздел сценария идет в теле тега
  3. браузера ссылка из внешнего файла

Какой из них является более быстрым и эффективным в отношении производительности?

Благодаря

ответ

2

1 и 2 о местоположении тега. 3 может применяться и к 1 и 2.

Кроме того, вы можете иметь JavaScript в обработчике события атрибутов, например, так:

<button onclick="alert(1)">pressme</button> 

в довершение, вы также можете иметь JavaScript в URL, в течение пример ссылка:

<a href="javascript: alert(1)">click me</a> 

Просто торчащий ваши примеры: в первую очередь, это, как правило, хорошая идея, чтобы использовать внешние файлы сценарии, загрузив с компонентом Src в тегах. Это позволяет браузеру кэшировать скрипт, который позволяет загрузке страницы быстрее после начальной загрузки страницы. это особенно верно, если вы используете такие вещи, как jQuery, и загружаете их из общедоступной сети доставки Conent (например, google ajax api см.: http://code.google.com/apis/ajaxlibs/documentation/)

Что касается местоположения (головы или тела): в прежние времена люди использовали скажем, поместите свои скрипты в голову, чтобы они были загружены после загрузки тела, и все интерактивные элементы могут использоваться пользователем. Но проблема в том, что загрузка этих скриптов будет блокировать загрузку визуальной части страницы, тела. По сути, пользователи смотрят на пустую страницу, задаваясь вопросом, что их страница так долго делает. Итак, популярная мудрость заключается в том, чтобы поместить все сценарии так далеко в тело, как вы можете, и убедитесь, что вы пишете свой javascript так, чтобы он мог обрабатывать частично загруженные скрипты. Руководство YSlow - отличный ресурс, чтобы узнать об этих вещах. см.: http://developer.yahoo.com/yslow/help/

0

Если вы супер обеспокоены производительности, я бы сказал, загружая JS в HTML будет самым быстрым. Элементы в загрузке до остальной части страницы, поэтому с точки зрения пользователя они могут подумать, что загрузка занимает больше времени с js, поскольку страница не будет отображаться до тех пор, пока она не будет загружена, но объем данных должен быть одинаковым , Внешний файл js, скорее всего, самый медленный, поскольку для него потребуется отдельный HTTP-запрос.

+0

«Внешний файл js, скорее всего, самый медленный, так как для этого потребуется отдельный HTTP-запрос» - это правда только в ситуации с одной страницей. Если это связано с загрузкой некоторых страниц, это может быть очень быстро против размещения JS в файле HTML. –

1

Я бы сказал, что это зависит от обстоятельств.

  • внешний файл является хорошей идеей, если у вас есть большой сценарий, который используется через сайт, и вы хотите воспользоваться преимуществами механизмов кэширования на стороне клиента.

  • Если скрипт используется только на одной странице, то сохранение его в голове/теле может иметь смысл. Ясно, что чем раньше скрипт появляется на странице, тем быстрее будет выполняться JavaScript, но вы можете быть ограничены ожиданием того, что DOM будет доступным для скрипта в любом случае, и в этом случае это не будет иметь никакого значения, если оно находится в голове или тела.

  • Вы можете поместить скрипт сразу после любого HTML, который определяет DOM, к которому ему нужен доступ. Вероятно, это был бы самый быстрый способ запуска скрипта на странице, но не переходите к этому по внешнему загружаемому (и кэшированному) файлу, если он большой или используется во многих местах.

0

Короткий ответ ... хорошо ... это зависит.

Если по

быстрее и эффективнее по производительности считается

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

2

Это действительно зависит от того, какой тип JavaScript вы пишете. Если вы пишете код, который должен быть выполнен в теле (например: document.write()), вам придется записать это в теге body. Если это не так, и если вы пишете javascript-функции, то должны идти в главном теге или в другом файле. Вы использовали бы другой файл, если собираетесь использовать одни и те же функции на многих страницах.

Характеристики w.r.t, это снова зависит от того, что вы делаете. Если у вас есть только одна страница, которая использует javascript, было бы быстрее сохранить ее в заголовке. Таким образом, вы уменьшили бы поездку туда и обратно, чтобы получить файл javascript.

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