首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AJAX vs AHAH是否有性能优势?

AJAX vs AHAH是否有性能优势?
EN

Stack Overflow用户
提问于 2010-04-14 00:38:07
回答 3查看 1.6K关注 0票数 2

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

这两种方法的优点是什么?内容的大小甚至是一个问题吗?或者,在使用XML的情况下,JavaScript将XML处理成HTML的时间会抵消发送HTML所需的额外时间吗?

谢谢,杰夫

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 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解析只需要很少的工作。

票数 3
EN

Stack Overflow用户

发布于 2010-04-14 00:50:25

AJAX多年来一直没有严格遵循其首字母缩写。它现在只是一个“异步加载内容”的绰号。

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

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

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

票数 5
EN

Stack Overflow用户

发布于 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:

代码语言:javascript
复制
<?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:

代码语言:javascript
复制
{
  “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)。根据您将如何使用数据来选择适合您的项目。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2631369

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档