【发布时间】:2009-11-21 19:21:19
【问题描述】:
我正在开发 Web CMS。当用户点击链接移动到其他页面或提交表单时,我希望在右上角显示“请稍候”动画 GIF,以表示正在加载。
但是,用户可以在浏览器中取消加载新页面,例如按“取消”按钮或 ESC。在这种情况下,当浏览器停止加载下一页时,它们将停留在当前页面上。
如何在 Javascript 中检测到这一点,并再次隐藏“等待”图标?
编辑:为了解决“你不应该那样做,浏览器已经拥有它”的问题。引入自定义解决方案有两个具体原因。
我在页面上有 AJAX 按钮。我需要一个活动指示器,这样用户就不会混淆点击是否注册。
在延迟很大的慢速连接上,某些浏览器的进度条会移动得非常慢。我处于现实生活中的工作环境中,需要很长时间才能在 IE6/7 中显示任何类型的活动。这给人的印象是什么都没有发生,应用程序的反应非常缓慢,这让我很恼火。我想要一个不断变化的指标(例如 Safari 的)。
【问题讨论】:
-
我总是觉得那些“等待”和“加载”的事情很烦人。浏览器默认拥有它(FireFox/Safari 中的微调器和 IE 中的进度条)。最好考虑不添加?
-
在缓慢的系统和连接上,尤其是 IE 在传达它当前正在做的事情时非常模糊。在某处弹出的快速符号可以解决这种情况。
-
关于 AJAX 点,如果你使用 jQuery,有全局事件处理程序做得很好。看看我一直在玩 jsfiddle.net/e4z9bv6k 的小提琴,还有一些有用的 SO 帖子 stackoverflow.com/q/3735877 和 stackoverflow.com/q/9043768 以及 stackoverflow.com/q/3709597
-
+1 表示您的第二点,即使在 2014 年,现实生活中的工作情况也需要永远加载页面并且在某些浏览器(即 Chrome)中“只有”一个小加载图标在浏览器的左上角显示正在加载的页面。添加跨浏览器自定义样式对我来说似乎是合法的。
标签: javascript internet-explorer firefox events