我关心的是性能,是否有理由发送客户端 XML 而不是有效的 HTML?像大多数事情一样,我确信它依赖于应用程序。我的具体情况是有大量内容被插入到从数据库中提取的网页中。
两种方法的优点是什么?内容的大小是否值得关注?或者,在使用 XML 的情况下,JavaScript 将 XML 处理为 HTML 的时间是否会抵消发送 HTML 所需的额外时间?
谢谢,杰夫
我关心的是性能,是否有理由发送客户端 XML 而不是有效的 HTML?像大多数事情一样,我确信它依赖于应用程序。我的具体情况是有大量内容被插入到从数据库中提取的网页中。
两种方法的优点是什么?内容的大小是否值得关注?或者,在使用 XML 的情况下,JavaScript 将 XML 处理为 HTML 的时间是否会抵消发送 HTML 所需的额外时间?
谢谢,杰夫
多年来,AJAX 的首字母缩写词并未被严格遵循。它现在只是“异步加载内容”的绰号。
现在大多数 AJAX 都是用 JSON 完成的。
无论您是否使用 HTML 作为 JSON 上的数据或其他任何内容(甚至是 XML),这实际上都取决于您的应用程序的特定需求。在这方面,AHAH 实际上只是 AJAX 的一个子集。
如果让客户端解析/呈现数据没有任何好处,那么只需让服务器端执行并返回 HTML。
重要的是要认识到,即使在获取 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 解析所需的工作很少。
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’>abcd@xyz.com</address>
<address type=’home’ pref=’1′>me@mailme.com</address>
</emailaddrs>
<telephones>
<tel type=’work’ pref=’1′>+12345678</tel>
<tel type=’mobile’>+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’>http://balaarjunan.wordpress.com/</address>
<address type=’home’>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)。根据您将如何使用数据来选择适合您的项目的内容。