2

我关心的是性能,是否有理由发送客户端 XML 而不是有效的 HTML?像大多数事情一样,我确信它依赖于应用程序。我的具体情况是有大量内容被插入到从数据库中提取的网页中。

两种方法的优点是什么?内容的大小是否值得关注?或者,在使用 XML 的情况下,JavaScript 将 XML 处理为 HTML 的时间是否会抵消发送 HTML 所需的额外时间?

谢谢,杰夫

4

3 回答 3

5

多年来,AJAX 的首字母缩写词并未被严格遵循。它现在只是“异步加载内容”的绰号。

现在大多数 AJAX 都是用 JSON 完成的。

无论您是否使用 HTML 作为 JSON 上的数据或其他任何内容(甚至是 XML),这实际上都取决于您的应用程序的特定需求。在这方面,AHAH 实际上只是 AJAX 的一个子集。

如果让客户端解析/呈现数据没有任何好处,那么只需让服务器端执行并返回 HTML。

于 2010-04-13T16:50:25.470 回答
3

重要的是要认识到,即使在获取 HTML 时,也不应该直接将其粘贴到 DOM 中而不对其进行处理。如果它不是通过安全协议传输的,它可能会受到 MITM 攻击。节省的解析 XML 的任何时间都花在清理 HTML 以防止脚本注入上。

XML 也更具可移植性。以 XML 提供的数据可以在任何页面的任何位置使用。HTML 在这方面是不同的(尽管它可以用 CSS 来设置样式),并不是所有的浏览器都有一个现成的解析器,而无需将内容插入 DOM。有些可能有DOMDocument(),但你不能依赖它来实现跨浏览器的目的。借助 XML,您还可以使用 XPath 轻松定位和提取您需要的数据。使用 HTML(x 浏览器),您需要先插入 DOM,或者使用永远不应该使用的非常不可靠的正则表达式方法。

JSON 更轻量级,它消除了 XML 和 HTML 带来的大量内容。作为 JavaScript 对象的原生标记,它也很容易解析。与 XML 和 HTML 不同,您还可以使用带填充的 JSON (JSONP) 跨域访问 JSON 数据。

总之,您需要选择最适合您需求的方法。现在大多数人倾向于使用 JSON,因为它非常轻量级,可以跨域访问,并且使用 JavaScript 解析所需的工作很少。

于 2010-04-13T17:00:54.330 回答
1

JSON(Javascript Object Notation)比 XML 更常用,因为它是轻量级的原生 Javascript。

话虽如此,如果您需要的是 XML,那么您将撤回 XML。

这是一个关于何时使用 HTML、XML 或 JSON的好页面

这是关于两者之间差异的好页面

JSON 主要用于性能原因。要使用该页面中的示例

XML:

<?xml version=’1.0′ encoding=’UTF-8′?>
<card>
  <fullname>Bala Arjunan</fullname>
  <org>PH</org>
  <emailaddrs>
   <address type=’work’&gt;abcd@xyz.com</address>
   <address type=’home’ pref=’1′&gt;me@mailme.com</address>
  </emailaddrs>
  <telephones>
   <tel type=’work’ pref=’1′&gt;+12345678</tel>
   <tel type=’mobile’&gt;+1234 1234</tel>
  </telephones>
  <addresses>
   <address type=’work’ format=’B'>1234 Oil Mill St Chennai, IND</address>
   <address type=’home’ format=’B'>5678 Oil Mill St Chennai, IND</address>
  </addresses>
  <urls>
   <address type=’work’&gt;http://balaarjunan.wordpress.com/</address>
   <address type=’home’&gt;http://balaarjunan.wordpress.com/</address>
  </urls>
</card>

JSON:

{
  “fullname”: “Bala Arjunan”,
  “org”: “PH”,
  “emailaddrs”: [
    {"type": "work", "value": "abcd@xyz.com"},
    {"type": "home", "pref": 1, "value": "me@mailme.com"}
  ],
  “telephones”: [
    {"type": "work", "pref": 1, "value": "+12345678"},
    {"type": "mobile", "value": "+1234 1234"}
  ],
  “addresses”: [
    {"type": "work", "format": "us", "value": "1234 Oil Mill St Chennai, IND"},
    {"type": "home", "format": "us", "5678 Oil Mill St Chennai, IND"}
  ],
  “urls”: [
    {"type": "work", "value": "http://balaarjunan.wordpress.com/"},
    {"type": "home", "value": "http://balaarjunan.wordpress.com/"}
  ]
}

使用 JSON,冗余要少得多。

OTOH,有时发送纯 HTML 也非常有效。你必须考虑你的数据。如果您只是更新一段文本,只需发送 html。如果您正在处理项目,或者您将在 Javascript 中以某种方式操作或使用的项目集合,那么您需要 JSON。如果您想异步更新您的 RSS Feed 或其他一些 XML,您需要 XML。

请记住,HTML 只是 XML 的一个子集。xHTML 遵循所有的 xml 规则。支持 javascript 的浏览器(全部)可以理解 JSON (Javascript) 和 HTML (XML)。根据您将如何使用数据来选择适合您的项目的内容。

于 2010-04-13T16:55:23.683 回答