2010-07-12 2 views
6

Я продолжаю слышать, что элементы ASP.NET AJAX на стороне сервера (например, UpdatePanels) не являются действительно AJAX, хотя они кажутся им, потому что рендеринг не полностью на стороне клиента. Я пытаюсь понять это с большей ясностью. Может кто-нибудь уточнить?MS UpdatePanels действительно не AJAX?

Спасибо ...

+0

Хороший вопрос. Это может быть больше о том, как в первую очередь делать postbacks ... но, я мог бы быть полностью вне базы. –

+2

Они * являются * AJAX, они просто * также * раздуты и просматривают всю страницу, отображающую жизненный цикл на сервере, они быстро исправить, но * очень * неэффективны. –

ответ

12

UpdatePanels вышел довольно рано в цикле AJAX, и они тяжелые (они могут излучать вокруг 100-300k в JavaScript). За кулисами UpdatePanels отправляет всю страницу обратно на сервер с помощью XMLHttpRequest. Новая страница создается с обычным жизненным циклом страницы, как и для обратной передачи, но только те части, которые живут внутри UpdatePanel (плюс части, необходимые для обновления ViewState и т. Д.), Отправляются обратно клиенту. Оттуда разметка вставляется без видимой вспышки или прерывания состояния страницы.

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

Разница в общем объеме данных, передаваемых по проводам, огромна - см. Ссылку ниже. В ситуациях с низким уровнем трафика это может не иметь особого значения, но в случае такого сайта, как StackOverflow, он наверняка будет отображаться на счете полосы пропускания.

Все, что сказал, я не думаю, что это справедливо сказать, что UpdatePanels на самом деле не AJAX, так как они сделать корабль HTML вокруг через асинхронная JavaScript - это просто, что есть гигантская, часто громоздки рамки сверху. UpdatePanels иногда получают плохой рэп, но они обеспечивают блестяще простой опыт разработчика. Я часто нашел их полезными в ситуациях с низким уровнем трафика.

Обновление:Here - это статья (старая, но по-прежнему действительная), которая рассматривает почтовые отправления UpdatePanels на сервер и обратно. Он также переходит в «Методы страницы», который представляет собой облегченную альтернативу UpdatePanels, основанной на веб-сервисах. Это часто забываемая часть Microsoft AJAX.

+0

tl; dr; они по определению, но большая часть того, что они делают, это устранение обратной передачи и некоторого рендеринга. Хорошее описание. – mbillard

+0

@GoodEnough - Спасибо. :) Я согласен с вами, хотя я считаю, что устранение тяжелого серверного обратного перехода и рендеринг является основным моментом большинства инструментов AJAX. И я также скажу, что в некоторых случаях рендеринг является большой проблемой. У меня была одна ситуация, когда я делал оптимизацию на основе огромного линейного бизнеса .aspx, и, как оказалось, основным узким местом было не база данных или даже сеть - это было рендеринг! –

+0

@Brian. Да, рендеринг может быть очень большой проблемой (у нас возникают проблемы с пользователями IE из-за этого в одном из наших приложений).UpdatePanels работают до тех пор, пока вы не начнете работать с большими страницами с большим количеством данных и большим ViewState (черным ViewState). – mbillard

1

http://msdn.microsoft.com/en-us/magazine/cc163480.aspx

Может быть, это будет отвечать ???

надеюсь. (Читая его также).

Мне кажется, что элемент управления является объектом Server Side, который использует ajax в качестве механизма и что ajax визуализируется на стороне клиента. В этом смысле это не чистый аякс, а скорее смешение нескольких решений.

:)

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