2009-12-02 2 views
1

Я немного смущен преимуществами или концами с помощью scriptmanager с вызовами ajax или с помощью JQuery для прямого вызова веб-методов.Что такое преимущества scriptmanager в отношении прямых вызовов jquery ajax?

Может ли кто-нибудь дать мне несколько советов по этой проблеме? когда использовать какой? есть ли что-то другое при работе с JSON?

ответ

3

Я думаю, что MSDN ScriptManager control page делает хорошую работу по подведению функции -

  • Регистрация скрипт, который совместим с обновлениями частичной страницы.

  • Для того, чтобы управлять зависимостями между вашим скриптом и библиотекой ядра , любой сценарий, который вы регистрируетесь загружается после библиотеки сценария Microsoft AJAX .

  • Укажите, будут ли отправлены сценарии освобождения или отладки в браузере.

  • Предоставление доступа к методам веб-службы из сценария путем регистрации веб-служб с помощью диспетчера ScriptManager .

  • Обеспечение доступа к аутентификации ASP.NET, роль и профиль службы приложений от клиента сценария путем регистрации этих услуг с контролем ScriptManager.

  • Включить отображение отображения ECMAScript (JavaScript), ориентированного на культуру, в .

  • доступ к ресурсам локализации для встроенных файлов сценариев или для автономных файлов скрипт, используя ResourceUICultures свойства управления ScriptReference.

  • управления Регистрация сервера, которые реализуют IExtenderControl или IScriptControl интерфейсы с управлением ScriptManager так, что сценарий требует клиентских компонентов и поведения визуализации.

По существу ScriptManager делает то, что он говорит, управляет сценарии не слишком много беспокойства с вашей стороны с написания JavaScript «клей», чтобы сделать это самостоятельно.

Конечно, есть (некоторые могут сказать, значимые) накладные расходы, включая управление ScriptManager, не в последнюю очередь количество дополнительных запросов, сделанных для ресурсов сценария, и размер сгенерированных прокси-классов для вызова веб-сервисов и методов страниц. Это может быть не так важно при разработке приложения для интрасети, где пропускная способность и скорость сети, вероятно, будут меньше проблемой по сравнению с разработкой приложения для Интернета, но, тем не менее, важно знать об этом.

Если вам нравится библиотека JavaScript, способная заменить все функции ScriptManager, а также быть более легким по весу и столь же быстро, чтобы все было сделано, это звучит неплохо, чтобы не использовать ScriptManager.

С точки зрения работы с JSON, как jQuery, так и ScriptManager обрабатывают все в порядке. IIRC, JSON является типом данных по умолчанию для Методов страниц и веб-служб в .NET (хотя что-то напоминает мне, что это не всегда так).

2

WRT Ajax звонки? Очень мало. Очень очень мало. Есть несколько возможно преимущества в рамках ASP.NET AJAX по JQuery:

  1. Синтаксис. Структура позволяет сделать ваши WebService звонки смотреть, как вы на самом деле называют некоторые местные метод и передавая ему параметры:

    MyNamespace.MyWebservice.MyMethod('arg1value', 'arg2value', onResult); 
    

    Обратите внимание, как структура версия знает порядок параметров для метода веб-службы.

    jQuery's .ajax требует установки сантехники для вызова метода веб-службы ASP.NET AJAX. Это минимальный и блог о fairly. well:

    $.ajax({ 
        type: "GET", 
        url: "MyWebservice.asmx/MyMethod", 
        data: '{"arg1":"arg1value","arg2":"arg2value"}', 
        contentType: "application/json; charset=utf-8", 
        dataType: "json", 
        success: function(data) { 
        onResult(data.d) // ASP.NET returns payload in `".d"` property 
        } 
    }); 
    
  2. JSON сериализации для передачи арг на веб-обслуживание: ASP.NET Ajax Framework имеет Sys.Serialization.JavaScriptSerializer.serialize, которая делает работу сериализации ваши параметры веб-службы «за кулисами». Только для jQuery может потребоваться включить третью библиотеку, например, json.org JSON.stringify . Это настолько небрежно, чтобы быть спорным.

  3. Жесткокодированные типы запросов GET и POST. Поскольку структура генерирует клиентский прокси-сервер JavaScript из определения класса WebService для вас, вы, как правило, не знаете (или не заботитесь) о том, какой метод HTTP-запроса находится в клиенте. Вы просто установите его в атрибуте ScriptMethod в своем классе веб-службы и вызовите его от клиента. С jQuery вы должны это знать, чтобы передать его .ajax в качестве опции type.

Что касается преимуществ WRT не-Ajax материал, @Russ Cam подвели их уже для тебя.


Встроенные в FF 3.1 и IE8 уже

+0

я не сравнивал все рамки ASP.NET AJAX с JQuery, но ваш ответ был полезным, спасибо –

+0

@Amr: Я сделал не сравнивайте всю структуру с jQuery. Просто часть AJAX. –

+0

@Crescent Fresh: Да, я получил это, большое спасибо. –

Смежные вопросы