Отображение вызовов MVC Ajax и вызовов jQuery Ajax с одним индикатором

У меня есть веб-приложение, которое использует оба вызова MVC Ajax: Html.ActionLink() рендеринг как Sys.Mvc.AsyncForm.handleClick( в исходном коде страницы

и: вызовы jQuery Ajax, например:

$.post()

Теперь я могу легко настроить общий индикатор Ajax для отображения и скрытия, когда jQuery выполняет асинхронный вызов, используя:

  $('#indicatorId').ajaxStart(function() {
                $(this).show();
            }).ajaxStop(function() {
                $(this).hide();
            });

И я могу настроить некоторые функции для отображения и скрытия одного и того же индикатора, передав значения в конструктор конструктора Ajax.ActionLink и установив OnBegin и OnComplete, но это означает, что я должен делать это КАЖДЫЙ РАЗ, когда я добавляю новый Ajax.ActionLink в сайт.

Есть лучший способ это сделать? Возможно, я мог бы сканировать DOM после его рендеринга и затем добавлять общие события?

Любые мысли, лучшие примеры?


person Tr1stan    schedule 29.06.2010    source источник


Ответы (1)


Если у вас нет веских причин (я так и не нашел), вам не следует смешивать jQuery и MS Ajax на одном сайте, и если у вас нет веских причин, вы должны предпочесть jQuery. Таким образом, нет необходимости использовать Ajax.* вспомогательные методы, которые загрязняют разметку javascript.

Делайте это как jQuery, ненавязчиво.

person Darin Dimitrov    schedule 29.06.2010
comment
Я полностью с вами согласен, и при нормальных обстоятельствах я бы не хотел загрязнять сайт двумя библиотеками, которые имеют схожий конечный результат, хотя в этом случае, когда я создаю прототип сайта, я обнаружил, что быстрее использовать MVC Ajax. помощники для создания форм, которые обрабатывают Ajax, и jQuery для обработки переходов и других вызовов Ajax за пределами форм/ссылок действия. Думаю, мне следует перестать лениться и использовать только один метод. - person Tr1stan; 29.06.2010
comment
Затем вы обнаружите, что с подключаемым модулем jquery.form (jquery.malsup.com/form) даже легче ajaxify ваши формы. - person Darin Dimitrov; 29.06.2010