Используйте AJAX как комбинацию JQuery с ASP .NET - PullRequest
0 голосов
/ 12 августа 2010

Я новичок в этой теме в ASP .NET, однако у меня был опыт работы с PHP - где вся идея была очень приятной: создайте страницу типа something.php , которая возвращает чистый JSON, и вызовите ее, используя $ .post (например).

Теперь, в ASP, я перешел к другому подходу (используя атрибуты Web Services + ScriptService + библиотека MS для генерации прокси). Я действительно не нахожу это полезным, так как я держу руки в jquery долгое время, и я не заинтересован в изучении еще одной библиотеки фреймворка javascript ...

Итог: какой подход лучше (меньше кода, быстрее) создавать вызовы AJAX с использованием jquery для приложения ASP .NET, размещенного в IIS. В настоящее время я создаю пустые страницы (например, CheckSession.aspx) со всем кодом в Page_Load. Метод написал ответ, используя Response.Write, а затем завершил его, используя Response.End. Что меня беспокоит, так это:

  • , поскольку ASP .NET не легковесен, меня беспокоит производительность этого решения (весь жизненный цикл страницы и т. Д.). Возможно, есть более простой / быстрый способ сделать это?
  • что у меня все еще есть codebehind cs file + aspx file (я хотел бы иметь один файл, меньше кода, меньше файлов, меньше хлопот).
  • в Response.Write в качестве параметра, я поместил только строку вручную. Что если я хотел бы использовать объекты и сериализовать их как Response.Write (obj.toJSON ()) - возможно ли это?

Буду признателен за некоторые рекомендации, ссылки.

Спасибо, Павел

Ответы [ 3 ]

0 голосов
/ 12 августа 2010

, поскольку ASP .NET не легковесен, меня беспокоит производительность этого решения (весь жизненный цикл страницы и т. Д.). Возможно, есть более простой / быстрый способ сделать это?

Этот сайт (stackoverflow) построен с использованием ASP .NET, и я думаю, что он имеет довольно хорошую производительность.

0 голосов
/ 12 августа 2010

Похоже, веб-сервисы ASMX соответствуют вашим требованиям.Вызовы ASMX не проходят полный жизненный цикл страницы, как вызовы ASPX, поэтому они обычно работают немного лучше, чем аналогичные функции, реализованные в виде страницы ASPX.Они определены строго в файле кода .cs (без отношения кода .ASPX / .ASPX.CS).Они могут быть настроены на автоматическую сериализацию возвращаемых вами объектов в JSON, поэтому вы не будете делать никаких вызовов Response.Write.Если вы используете атрибут «EnableSession = true», вы можете использовать тот же сеанс, что и ваши страницы ASPX, что вам может показаться удобным.

В этом обсуждении потока стека должно быть почти все, что вынадо знать.В связи с этим, поиск в стеке потока для ASMX и JSON должен дать вам гораздо больше полезной информации.

WCF - это еще один вариант, который стоит рассмотреть: MS переходит от ASMX к WCF для разработки веб-сервисов.Однако, если вы заблокированы в .NET 2.0, WCF может не подойти вам.Также, на мой взгляд, я считаю, что сервисы ASMX быстрее и проще в разработке, если вам не нужны дополнительные функции и гибкость WCF.

0 голосов
/ 12 августа 2010

Лично я считаю, что ASP.NET MVC является идеальным партнером jQuery, в частности JSON, и снимает многие из "тяжелых" проблем, которые многие люди испытывают по поводу традиционных веб-форм.

Возвращать данные JSON в jQuery так же просто, как возвращать JsonResult простого CLR-объекта, как показано ниже:

public ActionResult GetData() {
    var domainObject = Repository.Load();

    return Json(domainObject);
}

Это действительно все, что нужно для возврата большинства объектов прямо в jQuery, и, по моему опыту, он прекрасно работает со стандартной функциональностью jQuery JSON.

Вам не нужно иметь дело с "представлениями", которые на самом деле являются просто данными JSON, конкатенацией строк или любым другим ручным занятием, с которым вы можете столкнуться при помощи веб-форм.

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