-2

当我有一个有趣的问题时,我一直在做很多事情,包括发出 AJAX 请求以从我的网站后端获取信息。是在 php 中进行 html 样式设置,然后发送到客户端更好,还是将数据作为 json 发送,然后在 javascript 中设置样式更好?

由于这个问题有点模糊,我将举一个例子:

<?php

$data = array();
$data[0] = array("username" => "Supericy", "content" => "just a sample message 1");
$data[1] = array("username" => "Supericy", "content" => "just a sample message 2");
$data[2] = array("username" => "Supericy", "content" => "just a sample message 3");
// etc...


// now this is the choice:
if ($json)
{
    return json_encode($data);
}
else
{

    // or
    $returnString = "";
    for (...)
    {
        $returnString .= '<div class="username">' . $data[i]["username"] . '</div>';
        $returnString .= '<div class="content">' . $data[i]["content"] . '</div>';
    }

    return $returnString;
}

?>

然后在我的javascript中:

// get the information as raw json
var data = ajax_request(json = true);

var author = document.createElement('div');
author.className = "author";
author.innerHTML = data[i]["username"];



var content = document.createElement('div');
content.className = "content";
content.innerHTML = data[i]["content"];

body.appendChild(author);
body.appendChild(content);

// -- OR --

// get the information as pre-formated html
var data = ajax_request(json = false);
body.innerHTML += data;
4

4 回答 4

2

正如其他用户所说,这在很大程度上取决于您的目标受众是谁。如果您试图保持较低的启动成本并且正在为通常拥有有线/持续互联网连接的用户开发,那么您可以做任何事情。

但是,如果您正在设计应用程序并希望它保持相对可维护性,您可能应该研究 JSON。如果您确实使用 JSON,我还建议您选择一个 jQuery 之类的 javascript 库,以便您可以安全轻松地处理 JSON 对象的解码。

事实上,即使我从 AJAX 页面返回 HTML,我仍然将它包装在 JSON 对象中。这样看起来更标准化了,我可以轻松地重用我以前的 javascript 代码。

以下是一些基本的权衡:

直接从 PHP 发送 HTML

  • HTML 代码在代码中可见,可能更容易找到验证问题。
  • 可能更容易维护。(关键字 MAY。)如果您正在生成复杂的 html,那么在 PHP 中构建可能会更容易。

将 JSON 发送到 PHP 并让 Javascript 转换为 HTML

  • 发送到浏览器的数据更少。对于连接有限并为其带宽使用付费的移动用户来说,这是一个很大的优势。
  • 通常更易于维护。
  • 让客户端计算机而不是服务器进行处理(减少服务器负载)。
  • 这些天似乎是与服务器通信的标准格式。甚至 Google Maps API 也使用 JSON 与开发人员进行交互。您甚至可以将 JSON 视为新的 XML。

顺便说一句,JSON 代表 Javascript Object Notation。它遵循 javascript 中对象的标准语法:

例如:var blah = {'variable_name':'variable_value'};

所以我对你的回答是无论如何都使用 JSON,但是你的查看者应该决定你发送多少数据。

于 2012-04-27T02:24:42.780 回答
1

对于极其简单的站点/示例,这无关紧要......对于较大的项目,我会始终使用更便携的 json 响应。

使用 json 使得服务器调用和 js 视图逻辑都可以重用。

于 2012-04-27T01:56:26.153 回答
0

JSON 将是我的首选。在 JavaScript 中正确使用 HTML 要容易得多,而 PHPjson_encode则非常方便。另外,它给人一种漂亮、干净的 MVC 感觉。

于 2012-04-27T01:58:31.150 回答
-1

我喜欢后端样式,因为这样您就不必担心浏览器兼容性(即互联网浏览器)。

于 2012-04-27T01:49:11.933 回答