PHP与Javascript中的HTML标记

时间:2012-04-27 01:43:23

标签: php javascript html ajax

当我有一个有趣的问题时,我一直在做很多事情,包括制作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;

4 个答案:

答案 0 :(得分: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,不管是什么,但你的观众是谁应该确定你要发送多少数据。

答案 1 :(得分:1)

对于极其简单的网站/示例而言,这并不重要......对于较大的项目,我总是会使用更便携的json响应。

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

答案 2 :(得分:0)

JSON将是我的偏好。在JavaScript中正确使用HTML要容易得多,PHP的json_encode也非常方便。另外,它给人一种漂亮,干净的MVC感觉。

答案 3 :(得分:-1)

我喜欢后端造型,因为那时你不必担心浏览器兼容性(即interent explorer)。