Правильный способ внедрения jQuery в ASP.NET (или любой другой внешний JavaScript) - PullRequest
6 голосов
/ 09 апреля 2009

В чем разница между этими тремя примерами кода ниже? Один лучше других и почему?

1.Page.ClientScript.RegisterClientScriptInclude(typeof(demo), "jQuery", 
                                                ResolveUrl("~/js/jquery.js"));

2. 
<asp:ScriptManager runat="server">
    <Scripts>
      <asp:ScriptReference Path="~/jquery-1.2.6.min.js" />
      <asp:ScriptReference Path="~/jquery.blockUI.js" />
     </Scripts>
  </asp:ScriptManager>

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

Я видел людей, использующих jQuery в своих примерах, и каждый из них по-своему вводит jQuery в ASP.NET. Какой самый лучший способ?

Ответы [ 4 ]

2 голосов
/ 09 апреля 2009

Первый

используется на стороне сервера для добавления клиентского скрипта

Второй -

используется с управлением asp.net AJAX-скрипты . Если jQuery обнаруживает ASP.Net AJAX ScriptManager, он будет использовать его для регистрации скриптов вместо Page.ClientScript

Третий -

простой способ регистрации плагина jquery

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

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

Мне действительно не нравится вариант 1, если вы не создаете пользовательский элемент управления.

Я использую ScriptManager, только если я собираюсь использовать библиотеку Microsoft AJAX на этой странице. Просто добавьте туда много дополнительных вещей, которые ваша страница должна загрузить (проверьте это с Firebug когда-нибудь). Если у вас есть JavaScript в файлах ресурсов, ScriptManager также может минимизировать его для вас. Но это требует перекомпиляции, если ваш JavaScript изменяется.

Я обычно использую вариант 3.

1 голос
/ 09 апреля 2009

Это зависит от того, чего вы пытаетесь достичь. Первый добавляет тег script к вашей странице во время рендеринга со стороны сервера. Это может быть полезно для добавления динамически генерируемого JavaScript и тому подобных вещей.

Второй вариант интересен, только если вы используете ASP.NET AJAX для управления своим JavaScript, потому что он регистрирует множество других JavaScript на странице.

Так что, если вы хотите сохранить все в чистоте и планировать только использование jQuery, перейдите к варианту 3.

0 голосов
/ 09 апреля 2009

Метод # 2 работает хорошо, если я хочу, чтобы js был включен для определенного пользовательского контроля, но не на каждой странице. Диспетчер сценариев также гарантирует, что у меня нет повторяющихся ссылок на сценарии. Если вы хотите, чтобы js был включен на каждой странице (как jQuery будет почти всегда), тогда метод # 3 самый чистый.

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