JQuery AJAX - лучше вернуть JSON или обычный HTML - PullRequest
7 голосов
/ 13 ноября 2010

Когда время возвращается из ajax, я должен вернуться как json encode, использовать jquery.parseJSON, использовать document.createElement и добавить данные внутри только что созданного элемента.

или лучше вернутькак HTML-текст?

пример,

<div id="contentcontainer"></div>

$.ajax({
   type: "POST",
   url: "some.php",
   data: "name=John",
   success: function(msg){
     msgObj = jquery.parseJSON(msg);
     var div = document.createElement('div');
     div.style.color="red";
     $(div).append(msgObj.name);
     $('#contentcontainer').append(div);
   }
 });

 //some.php
 if($_POST['name']){
    echo json_encode( array('name'=>$_POST['name']) );
 }

ИЛИ Я должен сделать так?

<div id="contentcontainer"></div>

$.ajax({
   type: "POST",
   url: "some.php",
   data: "name=John",
   success: function(msg){ 
     $('#contentcontainer').append(msg);
   }
 });

 //some.php
 if($_POST['name']){
    echo '<div style="color:red">'.$_POST['name'].'</div>';
 }

Исправлено ... извините за мою плохую грамматику

Конечно, это всего лишь пример, реальный случай, когда в нем будет много данных, может быть в формате таблицы HTML.

Конечно, это всего лишь пример, настоящийна случай, если в нем будет много данных.

, если в нем много данных, мне нужно написать много document.createElement ().и это занимает время, чтобы написать как этот документ.createElement ('таблица');document.createElement ('tr');

вместо (возврат в виде HTML и просто добавление в контейнер)

Для меня я думаю, что второй формат (возврат HTML) проще.

Но не уверен в производительности, что лучше?

Пожалуйста, сообщите.

Ответы [ 3 ]

5 голосов
/ 13 ноября 2010

Себастьян и Зейн имеют действительные очки.Это зависит от того, о каком виде производительности вы говорите.

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

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

0 голосов
/ 13 ноября 2010

нет, я бы не рекомендовал возвращать html со страницы php.верните только данные json, проанализируйте их на стороне клиента и покажите в пользовательском интерфейсе.потому что html всегда будет тяжелее, чем JSON.так что если вы используете json, это сохранит ваш bandwidth.

Если вам нужен пример, просто зайдите и посмотрите, что делает twitter, они только возвращают json, а затем манипулируют json на стороне клиента.

0 голосов
/ 13 ноября 2010

Да, вы должны вернуть HTML, если у вас нет манипуляций / интерпретаций, связанных с результатом вашего вызова AJAX.

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