Должен ли я отправлять необработанные данные или HTML в качестве ответа Ajax? - PullRequest
0 голосов
/ 06 марта 2012

У меня есть сайт, написанный на веб-формах Asp.net.Он интенсивно использует ajax.

Большинство форм на сайте снабжены javascript.Javascript проверяет ввод и отправляет его на /ajax.ashx на сервере.Сервер обрабатывает запрос и отправляет ответ JSON.Мой javascript использует JSON для создания html, который он вставляет в Dom.

Я делаю новую версию моего сайта, написанную с использованием asp.net MVC3.Я смотрел учебники на эту тему, и некоторые из них рекомендуют делать ajax по-другому.Вместо того, чтобы отправлять данные, а затем собирать и вставлять html с помощью javascript, они создают html на сервере и используют javascript только для вставки их в Dom.Например, в этом уроке .

Какой способ мне использовать?Использование нового метода будет быстрее, но лучше ли это?

Ответы [ 5 ]

5 голосов
/ 06 марта 2012

Это субъективный вопрос.Оба подхода возможны, и лучшего способа не существует .У каждого подхода есть свои плюсы и минусы.

Построение HTML на сервере проще и потребует меньше усилий, но потребляет большую пропускную способность по сравнению с первым подходом.

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

4 голосов
/ 06 марта 2012

Создание html-кода непосредственно на сервере и внедрение его с помощью ajax-вызова очень быстро и просто, реальная проблема заключается в том, что таким образом ваш сервис обязательно будет использоваться с этим конкретным приложением.Отправляя данные в формате RAW, вы разрешаете любому приложению использовать эти данные любым способом, не привязывая его к определенному приложению.

2 голосов
/ 06 марта 2012

Я считаю, что лучше отделить макет от фактических данных . Вот почему вы должны передавать данные между вашими скриптами, а не HTML. Если вы собираетесь отправлять HTML, учтите, что вам нужно будет создать действительные HTML и CSS, которые на первый взгляд могут показаться сложными, но затем вы начнете использовать CSS, который не загружается в файл, вызывающий ajax, и т. Д.

Всегда отделяйте контент (данные) от макета. Вот почему есть HTML и CSS, чтобы отделить макет от данных. Так зачем все портить, смешивая HTML между данными?

2 голосов
/ 06 марта 2012

возвращение json кажется мне более гибким; вы можете изменить то, что происходит с вашим ответом json, например макет, к которому он приводит. Если вы возвращаете html, вы возвращаете данные, смешанные с макетом. Мне это не кажется правильным.

1 голос
/ 06 марта 2012

Построение html-сервера, вероятно, будет быстрее и не заторможет клиента, что важно.Рендеринг данных в HTML с помощью javascript занимает много времени, и не все браузеры работают быстро с js (то есть более старыми версиями IE), поэтому все может замедлиться, если вы делаете много этого.

Как говорили предыдущие авторы, этоОтчасти субъективно, потому что это зависит от того, сколько вы разгрузите клиенту.Я придерживаюсь мнения, что если вы можете делать что-то на стороне сервера, вам следует.

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

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