Каков наилучший способ ссылки на jquery в asp.net? - PullRequest
7 голосов
/ 18 марта 2009

Я наблюдал за сеансом pdc Стивена Вальтера, и в презентации он ссылался на файл JQuery js, как показано ниже:

<asp:ScriptManager id="sm1" runat="server">
<Scripts>
    <asp:ScriptReference Path="~/Scripts/JQuery.js" />
</Scripts>
</asp:ScriptManager>

Есть ли преимущество или недостаток в том, чтобы делать это вышеописанным способом, вместо того, чтобы просто использовать ссылку в разделе заголовка страницы.

Он также помещал следующее в раздел javascript своих образцов страниц для запуска JQuery:

<script type="text/javascript">

function pageLoad()
{
   $(":text").css("background-color","yellow");
}
</script>

Требуется ли загрузка страницы выше? Он упомянул, что это из библиотеки Microsoft AJAX, и он ожидает завершения загрузки DOM, но я подумал, что символ $ в JQuery - это просто сокращение времени ожидания завершения загрузки DOM.

Ответы [ 5 ]

8 голосов
/ 18 марта 2009

$ (document) .ready () и pageLoad () не совпадают!

http://encosia.com/2009/03/25/document-ready-and-pageload-are-not-the-same/

Из статьи:

pageLoad () вызывается сразу после завершения загрузки DOM. это не единственная точка, в которой вызывается pageLoad (): он также вызывается после каждой частичной обратной передачи.

В случае кода инициализации, который должен запускаться один раз , $ (document) .ready () является идеальным решением.

4 голосов
/ 18 марта 2009

Если вы смотрите, как ссылаться на файл jQuery, это то, что я делаю:

<script type="text/javascript" src="Scripts/jquery.js"></script>

Поскольку на вашей странице будет ScriptManager, вы также сможете подключиться к PageLoad.

function pageLoad() {
    //MSAJAX Stuff...  If Needed
}

$(document).ready(function() {
    $.datepicker.setDefaults($.datepicker.regional[$("#<%= hfCultureAbbreviation.ClientID %>").val()]);
});
4 голосов
/ 18 марта 2009

Используя ScriptManager, ASP.NET может создать один составной скрипт, чтобы уменьшить количество запросов браузера, а также, если браузер его поддерживает, сжать скрипт.

<asp:ScriptManager ID="ScriptManager1" runat="server">
    <CompositeScript>
        <Scripts>
            <asp:ScriptReference Path="~/Scripts/Script1.js" />
            <asp:ScriptReference Path="~/Scripts/Script2.js" />
            <asp:ScriptReference Path="~/Scripts/Script3.js" />
        </Scripts>
    </CompositeScript>
</asp:ScriptManager>
3 голосов
/ 18 марта 2009

Добавление ваших сценариев с помощью ScriptManager таким образом имеет преимущество, заключающееся в упрощении объединения + минимизации ваших файлов с помощью CompositeScript. К сожалению, это означает, что на них будут ссылаться на странице через ScriptResource.axd, что я всегда считал крайне уродливым решением.

Мне гораздо интереснее интегрировать что-то вроде соковыжималка в мой процесс сборки, но вы не можете побить ScriptManager для удобства.

2 голосов
/ 18 марта 2009

Не забудьте также зарегистрировать файл Intellisense! Иногда может быть очень удобно.

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