2012-04-27 139 views
-2

我一直在做很多事情,包括在我有一个有趣的问题时,让AJAX请求从我的网站的后端获取信息。在PHP中使用html样式,然后发送给客户端,还是以json方式发送数据,然后在javascript中使用样式更好?PHP中的HTML标记与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; 
+3

“取决于”是唯一有用的答案。 – Hamish 2012-04-27 01:44:45

+0

如果有人禁用JavaScript,会发生什么情况? – jprofitt 2012-04-27 01:52:20

+1

那么他会怎么做一个ajax电话? – 2012-04-27 01:57:13

回答

2

正如其他用户所述,这很大程度上取决于您的目标受众是谁。如果您试图保持低廉的启动成本并为通常具有有线/常规互联网连接的用户开发,那么您可以做任何漂浮在您的船上的事情。然而,如果你正在设计应用程序,并希望它保持相对可维护性,你应该看看JSON。如果你的确使用JSON,我还会建议你选择一个像jQuery这样的JavaScript库,这样你就可以安全,方便地处理JSON对象的解码。

事实上,即使我从AJAX页面返回HTML,我仍然将它包装在一个JSON对象中。这种方式似乎更加标准化,我可以轻松地重用以前的JavaScript代码。

下面是一些基本的权衡:

发送HTML直接从PHP

  • HTML代码中的代码可见,并且可以更容易地找到验证问题。
  • 可能更容易维护。 (关键词可能。)如果您正在生成复杂的html,那么使用PHP构建起来可能更容易。

发送JSON到PHP和Java脚本,让转换为HTML

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

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

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

所以我的答案是使用JSON,不管是什么,但是你的查看者应该确定你发送的数据量。

+1

+1,以便实际深入您的答案。 – 2012-04-27 02:26:44

-1

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

+0

兼容性与使用JavaScript和PHP创建HTML有什么关系? – Ryan 2012-04-27 01:59:08

1

对于非常简单的网站/示例,这并不重要......对于较大的项目,我会随时提供一个更便于使用的json响应。

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

0

JSON将是我的首选。在JavaScript中正确处理HTML要容易得多,而且PHP的json_encode非常方便。另外,它提供了一个不错的,干净的MVC感觉。