如果你添加一个类似Facebook的按钮,计时器每100毫秒触发一次

时间:2011-12-08 11:05:41

标签: javascript timer facebook-like

我注意到Facebook的XFBML like按钮增加了一个每100ms触发一次的计时器。 有谁知道为什么?此外,是否可以删除此计时器?

我认为这是一个错误,因为100毫秒意味着它经常被解雇。此外,如果您有10个相似的按钮,则每100毫秒触发10个触发器,每秒触发100个触发器。这很多,可能会导致一些性能问题。

您可以通过打开以下内容在Chrome中查看此内容:http://mashable.com/(它们有很多类似的按钮) 然后只需打开开发人员工具并从时间线选项卡中做一个记录。你会看到很多Timer被激活(见快照http://cl.ly/272h3V1u1t3w0f1R4625)。

2 个答案:

答案 0 :(得分:3)

向我看,好像每个像按钮一样设置它自己的轮询以保持更新,而不是设置一个小的pubsub架构,它只有一个定时器轮询并警告任何订户。

所以我只是把它作为facebook部分的一个糟糕的实现放弃,并用它们来重写它。

Pubsub实际上并不难实现。请看一下这个实现:https://github.com/daniellmb/MinPubSub

答案 1 :(得分:0)

蒙特是对的。更糟糕的是,每个启动的计时器也会导致创建相当大量的JavaScript对象和DOM元素。这会导致垃圾收集狂奔,这会对用户体验产生一些非常不利的影响:例如:动画(基于CSS和基于JS)将开始口吃,依赖于对用户输入的实时响应的交互变得生涩或无响应。 (特别是Firefox似乎在这里受苦。)

最重要的是,每次定时执行还会查询DOM以查找渲染的元素尺寸并导致重新绘制。