我关心的是性能,有没有理由发送客户端XML而不是有效的HTML?像大多数事情一样,我确信它依赖于应用程序。我的具体情况是,有大量内容被插入到从数据库中拉出的网页中。
这两种方法的优点是什么?内容的大小甚至是一个问题吗?或者,在使用XML的情况下,JavaScript将XML处理成HTML的时间会抵消发送HTML所需的额外时间吗?
谢谢,杰夫
发布于 2010-04-14 01:00:54
重要的是要认识到,即使在获取HTML时,也不应该直接将其放入DOM而不对其进行处理。如果它不是通过安全协议传输的,它可能会受到MITM攻击。节省下来的解析XML的时间都花在了清理HTML上,以防止脚本注入。
XML的可移植性也更好。以XML格式提供的数据可以在任何页面上的任何位置使用。HTML在这方面是不同的(尽管它可以用CSS设置样式),并非所有浏览器都有现成的解析器,而无需将内容插入到DOM中。有些可能有DOMDocument(),但你不能把它用于跨浏览器的目的。对于XML,您还可以使用XPath轻松地定位和提取所需的数据。对于HTML (x-browser),您需要首先插入到DOM中,或者使用非常不可靠的regexp方法,而这些方法实际上根本不应该使用。
JSON更轻量级,它去掉了XML和HTML附带的大量内容。作为JavaScript对象的原生标记,它也很容易解析。与XML和HTML不同,您还可以使用带填充的JSON (JSONP)跨域访问JSON数据。
总而言之,您需要选择最适合您需要的方法。现在大多数人倾向于使用JSON,因为它非常轻量级,可以跨域访问,使用JavaScript解析只需要很少的工作。
发布于 2010-04-14 00:50:25
AJAX多年来一直没有严格遵循其首字母缩写。它现在只是一个“异步加载内容”的绰号。
现在大多数AJAX都是用JSON完成的。
无论您是否使用HTML作为数据,通过JSON还是其他任何东西(甚至XML),都取决于您的应用程序的特定需求。在这方面,AHAH实际上只是AJAX的一个子集。
如果让客户端解析/呈现数据没有任何好处,那么就让服务器端解析/呈现数据并返回HTML。
发布于 2010-04-14 00:55:24
JSON ( Javascript Object Notation )比XML更常用,因为它是轻量级的,并且是原生Javascript。
也就是说,如果您需要的是XML,那么您就可以回调XML。
在when to use HTML, XML or JSON上有一个很好的页面
这里有一个介于两者之间的good page on the differences。
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。如果您想要ASyncronously更新您的RSS Feed或其他一些XML,您需要XML。
记住,HTML只是XML的一个子集。并且xHTML遵循所有的xml规则。支持javascript的浏览器(所有浏览器)都能理解JSON ( Javascript )和HTML (XML)。根据您将如何使用数据来选择适合您的项目。
https://stackoverflow.com/questions/2631369
复制相似问题