【发布时间】:2013-01-01 09:26:21
【问题描述】:
我有一个繁忙的网页,其中包含许多小部件。有时需要一两秒钟才能加载。
当我从页面顶部以外的某个位置点击刷新时,我可以看到页面加载就像scrollTop==0 一样,并且在某个时候突然回到我的原始位置。
问题是我在.ready() 事件处理程序中发生了各种初始化,其中一些依赖于scrollTop 和scrollLeft。这些初始化发生在文档返回到其原始位置之前,然后从原始位置给出无意义的结果。
将这些初始化包装在.load() 事件处理程序中似乎也不起作用。起作用的是通过 .load() 处理程序中的 setTimeout 添加一个(相当长的)延迟。由于显而易见的原因,这是不可取的。
这表明“返回原始位置”独立于标准事件链发生,即。 ECMA 标准中未指定或依赖于浏览器实现。
处理仅在浏览器返回到原始位置后才需要进行的初始化的最佳方法是什么?有关联事件吗?有什么方法可以识别已经发生刷新并且在这种情况下只会延迟?
我所有的测试都是在 Chrome 和 Firefox 中进行的。
【问题讨论】:
标签: javascript jquery browser cross-browser dom-events