【问题标题】:and [Db to PHP to JSON to AJAX to HTML] speed difference和 [Db to PHP to JSON to AJAX to HTML] 速度差异
【发布时间】:2011-02-03 22:08:59
【问题描述】:

这实际上是这个“Why need to use JSON in php and AJAX”的后续问题。

[S.1]

那么直接从 PHP 和数据库中使用 AJAX 以 HTML 格式显示数据会更慢吗?

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

[S.2]

而不是首先使用 JSON 中的 PHP 从 db 传递数据

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);  
  }  
});  

哪种方式更快?还是有任何速度差异?

Tia,希望这是一个有价值的问题,我还是 JSON 新手。

【问题讨论】:

  • 我想这里唯一真正的速度差异是 JSON 的实际渲染发生在客户端(或者“创建 HTML”)。怀疑它的速度要快得多,如果有的话。

标签: php jquery mysql json


【解决方案1】:

您所指的是松散地称为 AJAX,而不是 JSON(尽管您使用 JSON 而不是 XML 来编码数据)。 JSON 是数据编码的格式; AJAX 是通过 JavaScript 请求它,并动态更新页面的过程。

这与速度无关,至少与初始页面请求无关。好处是您可以选择性地重新加载页面的部分,而不是重新请求整个文档。目的是提供更流畅、响应速度更快的客户端体验。

当您想要向服务器推送/拉取少量数据时,例如当复选框的状态发生变化时,可以获得最大的速度优势。这可以通过 AJAX 仅在几个字节内完成,传统上您需要执行 post/redirect/get 表单提交,然后再次获取整个页面。

【讨论】:

  • 对不起,我现在才意识到我问错了问题,这应该是[Db to PHP to JSON-AJAX to HTML]和[Db to PHP to AJAX to HTML]
  • 您可以使用.load.get.ajax,它们基本上都使用不同的默认值来传输它们希望传输的数据类型。 JSON 只是一种无需标记即可对纯数据进行编码的便捷方式。
猜你喜欢
  • 2017-11-08
  • 1970-01-01
  • 2018-08-03
  • 2019-07-15
  • 2022-12-16
  • 1970-01-01
  • 2015-01-07
  • 2022-12-01
  • 1970-01-01
相关资源
最近更新 更多