Любые недостатки совместного использования ASP.Net AJAX и JQuery.

StackOverflow https://stackoverflow.com/questions/65129

  •  09-06-2019
  •  | 
  •  

Вопрос

Мы планируем использовать библиотеку jQuery для расширения потребностей JavaScript на стороне клиента.

Есть ли какие-либо серьезные проблемы при попытке использовать ASP.Net AJAX и jQuery?Обе библиотеки, похоже, используют $ для специальных целей.Существуют ли какие-либо конфликты, о которых нам нужно знать?

Мы также используем элементы управления Telerik, использующие ASP.Net AJAX.

ТИА

Это было полезно?

Решение

Мы уже давно используем компоненты ASP.NET Ajax, jQuery и Telerik в большом проекте и не столкнулись с какими-либо проблемами.

Я бы определенно рекомендовал использовать jQuery

Другие советы

jQuery имеет метод noConflict() как часть ядра, но затем он требует, чтобы вы использовали jQuery в качестве именованной функции или что-то еще по вашему выбору (вместо долларового селектора).Однако скажу, что метод часто зависит от реализации «конкурирующей» библиотеки.Я пытался использовать его для социальной сети Ning (которая использовала Dojo) и для Magento (которая использует Prototype), но мне не удалось заставить ни одну из них правильно работать с jQuery.Это только мой личный опыт, и другие были очень успешными.

http://docs.jquery.com/Core/jQuery.noConflict

Разработчики ASP.NET Ajax предприняли определенные шаги, чтобы гарантировать возможность использования библиотеки совместно с jQuery.

Например, ATLAS CTP (бета-версия, которая стала ASP.NET Atlas) раньше имела функцию $(), но она была удалена и заменена на $get().

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

<asp:panel id="panel1" runat="server"></asp:panel>

Это может быть отображено на странице как:

<div id="ctl00$panel1"></div>

Итак, если вы пишете jQuery, используя $('#panel1') как селектор он не будет работать.Обходной путь заключается в динамической генерации идентификатора, например:

 Dim js as String = "$('" & panel1.ClientID & "').whatever();"

Это может сделать JavaScript немного нечитабельным, но он работает вполне хорошо.Я работаю над большим веб-приложением, используя этот метод, и jQuery сэкономил нам ТОННУ времени, не говоря уже о том, что сайт стал выглядеть и работать намного лучше.

Как бы то ни было, нет конфликта между функцией $ jQuery и функциями быстрого доступа с префиксом $ ASP.NET AJAX ($get, $find, $create и т. д.).Точно так же, как использование переменной ж не мешает вам использовать переменную с именем жоо.

jQuery и ASP.NET AJAX в большинстве случаев хорошо работают вместе.За последний год я видел только один раз, когда ASP.NET AJAX нарушал код jQuery. этот сценарий с jDrawer.Однако обходной путь был неплохим.

Я использую ext, еще одну структуру JavaScript с .net.Его гораздо проще использовать, чем старомодные элементы управления формами HTML.

<input type="text" id="whatever" />

Чем использовать элементы управления формой ASP.net.Вы, вероятно, захотите использовать классную проверку формы структуры Javascript, а не не очень хорошие встроенные валидаторы .net, но я думаю, это зависит от ваших предпочтений.

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

<%=MyControlId.ClientID%>

Недавнее событие, связанное с этим вопросом:

Скотт Гатри опубликовал сообщение 28 сентября 2008 г. (см.: http://weblogs.asp.net/scottgu/archive/2008/09/28/jquery-and-microsoft.aspx), что Microsoft на самом деле будет начать поставку JQuery с Visual Studio.Проекты MVC будут включать библиотеку по умолчанию.Скотт отмечает, что это делается с согласия и при поддержке команды JQuery.

Смотрите исходный пост для Полная информация.

Судя по всему, Telerik начала добавлять jQuery в некоторые свои RadControls, начиная с версии Q3.

Я использую и jQuery, и RadControls, но у меня не было времени углубляться в эту запутанную ситуацию... можно пойти в обе стороны....
У меня общее ощущение, что это влечет за собой еще больше кластерного черта, но это просто основано на общем опыте работы с чем-то из этого и немного с этим ;-)

Почитайте блог Атанаса Корчева на Telerik как раз по этой теме:
http://blogs.telerik.com/AtanasKorchev/Posts/08-11-06/ASP_NET_Ajax_Controls_and_jQuery.aspx

и удачи всем нам, когда MS, jQuery, Telerik, JP Morgan и McDonalds смешаются и смешаются на наших настольных компьютерах...;-)

Я использовал jQuery с ASP.NET Ajax, поскольку они оба хорошо справляются с разными задачами.У меня никогда не было проблем с их использованием вместе.На самом деле, я обхожу странную путаницу с идентификаторами ASP.NET, используя сверхмощные селекторы jQuery.Возможность выбирать классы и подэлементы элементов (в основном CSS) делает его очень простым в использовании.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top