当我有一个有趣的问题时,我一直在做很多事情,包括制作AJAX请求以从我网站的后端获取信息。是不是更好的在PHP中进行html样式,然后发送到客户端,或者更好的发送数据为json,然后在javascript样式?
由于这个问题有点像vauge,我会给出一个例子:
<?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;
答案 0 :(得分:2)
正如其他用户所说,这在很大程度上取决于您的目标受众是谁。如果您试图保持较低的启动成本并且正在为通常具有有线/恒定互联网连接的用户开发,那么您可以做任何浮动您的船。
但是,如果您正在设计应用程序并希望它保持相对可维护性,那么您应该查看JSON。如果你选择JSON,我建议你选择一个像jQuery这样的javascript库,这样你就可以安全轻松地处理JSON对象的解码。
事实上,即使我从AJAX页面返回HTML,我仍然将它包装在JSON对象中。它似乎有点标准化,我可以轻松地重用我以前的javascript代码。
以下是一些基本权衡:
直接从PHP发送HTML
将JSON发送到PHP并让Javascript转换为HTML
顺便说一句,JSON代表Javascript Object Notation。它遵循javascript中对象的标准语法:
例如:var blah = {'variable_name':'variable_value'};
所以我对你的回答是使用JSON,不管是什么,但你的观众是谁应该确定你要发送多少数据。
答案 1 :(得分:1)
对于极其简单的网站/示例而言,这并不重要......对于较大的项目,我总是会使用更便携的json响应。
使用json使服务器调用和js视图逻辑可重用。
答案 2 :(得分:0)
JSON将是我的偏好。在JavaScript中正确使用HTML要容易得多,PHP的json_encode
也非常方便。另外,它给人一种漂亮,干净的MVC感觉。
答案 3 :(得分:-1)
我喜欢后端造型,因为那时你不必担心浏览器兼容性(即interent explorer)。