Где лучше всего ссылаться на JavaScript в документе XHTML - PullRequest
4 голосов
/ 14 апреля 2010

У меня есть проект Asp.net MVC, который скромно использует скрипты jQuery. Мои представления также отображают частичные представления, возвращаемые с использованием вспомогательных методов RenderPartial или RenderAction. Частичные представления обычно используются для инкапсуляции некоторого общего отображения, но они также могут иметь некоторые функции клиентского сценария. Мои javascripts имеют те же имена, что и представления, к которым они относятся.

Так что, если у меня есть частичное представление UserInformation.ascx, у меня есть соответствующий UserInformation.js файл. Большинство из этих файлов сценариев регистрируют функциональность для события DOM ready, поэтому они не будут выполнены немедленно.

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

С точки зрения выполнения и скорости браузера (или любых других вопросов), лучше ли включать все сценарии в элемент заголовка XHTML, или это не имеет значения, если бы я ссылался на эти сценарии в своих частичных представлениях? Таким образом, я мог избежать человеческой ошибки, забыв добавить скрипт в представление? Я мог бы получить проблему ссылки на один и тот же файл сценария несколько раз. Особенно, если один и тот же фрагмент используется несколько раз в одном и том же виде.

Есть ли какие-либо различия, когда мы ссылаемся на скрипты внутри элементов HEAD или BODY?
Есть ли какие-либо проблемы, связанные с doctype (я использую XHTML Transitional)?
Какой шаблон наиболее распространен?

Было бы неплохо иметь какую-то функцию регистрации скриптов в Asp.net MVC, которая помешала бы мне загружать один и тот же файл скрипта несколько раз ...

Ответы [ 3 ]

1 голос
/ 14 апреля 2010

Если возможно, на самом деле выгодно размещать ваши скрипты в end тега <body>. Таким образом, браузер не должен останавливать и интерпретировать сценарии, пока не увидит всю разметку страницы. Пользователь видит страницу, а сайт загружается быстрее.

0 голосов
/ 14 апреля 2010

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

0 голосов
/ 14 апреля 2010

IMO, предпочтительное место для скриптов находится в элементе HEAD, но нет никаких запретов на их использование в BODY. Некоторые типы сценариев, особенно те, которые включают в себя операторы document.write () (которые я стараюсь избегать любой ценой), на самом деле должны быть в BODY (хотя эти могут также находиться в HEAD).

Я чувствую твою боль по поводу реестра скриптов. Но помните, что проблема с произвольным размещением сценариев в блоках разметки заключается не только в том, что вы, возможно, не включили в HEAD необходимый сценарий, но и в том, что вы можете дублировать объекты, которые существуют в других блоках, которых ваш чанк не делает t (и не могу) знать о.

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