我关心的是性能,是否有理由发送客户端 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)。根据您将如何使用数据来选择适合您的项目的内容。