Встроенный JavaScript управления с помощью jQuery

Я создаю пользовательский элемент управления WebControl в своей библиотеке классов, в которой есть встроенный файл ресурсов JavaScript, который он использует. Этот JavaScript использует jQuery.

Мой вопрос: если ScriptManager на странице, на которой будет использоваться элемент управления, гарантированно будет иметь ScriptReference для jQuery, мне все равно нужно иметь jQuery в качестве встроенного ресурса в библиотеке классов, чтобы JavaScript элемента управления мог использовать jQuery?

Если ответ положительный, что произойдет, когда я создам другие элементы управления, которые также имеют встроенный JavaScript, использующий jQuery, и несколько различных из этих элементов управления используются на той же странице? Добавляется ли встроенный скрипт jQuery на страницу как webResource несколько раз?


person Billyhole    schedule 07.12.2011    source источник


Ответы (1)


Является ли jQuery встроенным ресурсом или некоторым JS, использующим jQuery?

В любом случае вам понадобится только одна ссылка на jQuery в вашем ScriptReferences. Если в элемент управления встроен сам jQuery (ужасный дизайн), по возможности его следует удалить.

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

Таким образом, сделайте все возможное, чтобы jQuery (или любые ресурсы скрипта) не загружались несколько раз на одной странице

person Terry    schedule 07.12.2011
comment
Нет, JS, который использует jQuery, не является встроенным ресурсом, но в настоящее время, когда элемент управления отображается на странице, я получаю ошибку JavaScript «$ не определен» при первом использовании встроенным скриптом псевдонима $ - person Billyhole; 07.12.2011
comment
Затем jQuery загружается после элемента управления или не загружается вообще. Ошибка возникает при загрузке страницы или во время действия пользователя позже? - person Terry; 07.12.2011
comment
jQuery - это ScriptReference объекта ScriptManager на странице MasterPage. И ошибка возникает при загрузке страницы, это происходит в $ (document) .ready (function () {из встроенного скрипта. - person Billyhole; 07.12.2011
comment
Что ж, у вас может быть любое количество проблем, но похоже, что jQuery не загружен к тому моменту, когда элемент управления запускает свой код на стороне клиента. Вы можете вставить чек, чтобы увидеть, загружен ли jQuery таким образом if (jQuery) { // it loaded ok }. Полагаю, если вы уберете контроль со страницы, у вас не будет других ошибок? - person Terry; 07.12.2011