Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/451.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP与Javascript中的HTML标记_Php_Javascript_Html_Ajax - Fatal编程技术网

PHP与Javascript中的HTML标记

PHP与Javascript中的HTML标记,php,javascript,html,ajax,Php,Javascript,Html,Ajax,当我有一个有趣的问题时,我已经做了很多事情,包括发出AJAX请求从我的站点后端获取信息。用php编写html样式,然后发送到客户机是更好的做法,还是将数据作为json发送,然后用javascript编写样式更好 因为这个问题有点夸张,我举个例子: <?php $data = array(); $data[0] = array("username" => "Supericy", "content" => "just a sample message 1"); $data[1]

当我有一个有趣的问题时,我已经做了很多事情,包括发出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;
}

?>

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

对于非常简单的站点/示例,这无关紧要。。。对于更大的项目,我会选择json响应,它更便于移植


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

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

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

然而,如果您正在设计应用程序,并且希望它保持相对可维护性,那么您可能应该研究JSON。如果您使用JSON,我还建议您选择像jQuery这样的javascript库,这样您就可以安全轻松地处理JSON对象的解码

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

以下是一些基本的权衡:

直接从PHP发送HTML

  • HTML代码在代码中可见,可能更容易发现验证问题
  • 可能更容易维护。(关键词MAY。)如果您正在生成复杂的html,那么在PHP中构建可能会更容易
将JSON发送到PHP并让Javascript转换为HTML

  • 发送到浏览器的数据更少。这对于那些连接有限并为带宽使用付费的移动用户来说是一个巨大的优势
  • 通常更易于维护
  • 让客户端计算机而不是服务器进行处理(减少服务器负载)
  • 现在似乎是与服务器通信的标准格式。甚至谷歌地图API也使用JSON与开发人员进行交互。您甚至可以考虑JSON为新的XML。
顺便说一下,JSON代表Javascript对象表示法。它遵循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;
例如:var blah={'variable_name':'variable_value'}


因此,我对您的回答是使用JSON,不管怎样,但您的查看器应该决定您发送的数据量。

“依赖”是唯一有用的答案。如果有人禁用了JavaScript,会发生什么?那么他将如何进行ajax调用?没有JavaScript意味着SOL。我认为JavaScript和CSS一样重要。我同意,如果页面要求JS工作,那么如果你禁用了JS,那么你就不走运了。然而,你的页面不应该因此看起来像垃圾。使用JavaScript和PHP创建HTML的兼容性有什么关系?