首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DOMNodeInserted或hashchange

DOMNodeInserted或hashchange
EN

Stack Overflow用户
提问于 2010-12-27 05:43:19
回答 2查看 1.3K关注 0票数 4

我正在尝试写一个JavaScript脚本,这是“覆盖”在一个脸书页面上。它使用DOMContentLoaded来检测何时加载内容,然后在中添加一些额外内容。但是,因为Facebook在转到新页面时并不真正“重新加载”页面(它只是使用AJAX),所以DOMContentLoaded处理程序不会再次运行,即使有新的内容需要查看。

无论如何,为了检测这个变化,我考虑过使用onhashchange,因为Facebook过去经常改变页面的哈希值,但是在Firefox4中(我需要支持Firefox3和更高版本的版本,但没有其他浏览器),Facebook不再改变哈希值,并且在Firefox3.6之前的版本中没有onhashchange。

我考虑过使用DOMNodeInserted,但这真的会减慢页面速度吗?(我真的不能在这个脚本中有任何减慢。)

EN

回答 2

Stack Overflow用户

发布于 2010-12-30 07:03:28

对于轻量级页面,它通常没有明显的效果。然而,在笨重的页面上(我在gmail上尝试过),它真的真的很慢,以至于我甚至不能流畅地撰写消息。该事件被添加到一个非常简单的span元素中,该元素中只有一个链接。像DOMNodeInserted和DOMSubTreeModified这样的活动是真正的精彩表演。

更新:对于那些试图找到这个问题的答案的人,请注意,这些方法DOMNodeInserted (或DOMSubtreeModified)确实存在性能问题,因此根据新的ECMA规范,它是一个更快的侦听器: MutationObserver,用于做相同的事情(甚至更多)。

https://hacks.mozilla.org/2012/05/dom-mutationobserver-reacting-to-dom-changes-without-killing-browser-performance/

票数 1
EN

Stack Overflow用户

发布于 2011-01-22 13:50:29

您可能想要监视windows.history对象,有关facebook如何使用它来更新页面,请参阅以下答案:"Redirect" page without refresh (Facebook photos style)

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

https://stackoverflow.com/questions/4535531

复制
相关文章

相似问题

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