и [Db в PHP в JSON в AJAX в HTML] разница в скорости - PullRequest
0 голосов
/ 04 февраля 2011

На самом деле это следующий вопрос к этому «. Почему нужно использовать JSON в php и AJAX ».

[S.1]

Так медленнее ли отображение данных в HTML с помощью AJAX непосредственно из PHP и базы данных?

Ex: just imagine this with AJAX but w/o JSON
PHP $query ...etc
echo "<p>".$row['name']." ".$row['comment']."</p>";

[Д.2]

, чем сначала передать данные из db с помощью PHP в JSON

Ex: this with JSON and 
for ($x = 0, $numrows = mysql_num_rows($query); $x < $numrows; $x++) {  
   $row = mysql_fetch_assoc($query);
   $comments[$x] = array("name" => $row["name"], "comment" => $row["comment"]);  
}  
$response = $_GET["jsoncallback"] . "(" . json_encode($comments) . ")";  
echo $response;

перед отображением в HTML

..and AJAX
// Js
$.getJSON("comments.php?jsoncallback=?", function(data) {  

  //loop through all items in the JSON array  
  for (var x = 0; x < data.length; x++) {  

    //create a container for each comment  
    var div = $("<div>").addClass("row").appendTo("#comments");  

    //add author name and comment to container  
    $("<label>").text(data[x].name).appendTo(div);  
    $("<div>").addClass("comment").text(data[x].comment).appendTo(div);  
  }  
});  

Какой путь быстрее? или вообще есть разница в скорости?

Тиа, надеюсь, это достойный вопрос, я все еще новичок в JSON.

1 Ответ

1 голос
/ 04 февраля 2011

То, на что вы ссылаетесь, свободно называется AJAX, а не JSON (хотя вы используете JSON для кодирования данных, а не XML). JSON - формат, в котором закодированы данные; AJAX - это процесс запроса его через JavaScript и динамического обновления страницы.

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

Наибольшие преимущества в скорости достигаются, когда вы хотите передавать / извлекать небольшие объемы данных на сервер, например, когда состояние флажка изменяется. Это можно сделать с помощью AJAX всего за несколько байтов, где традиционно вы выполняете отправку / перенаправление / получение формы, извлекая всю страницу заново.

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