在浏览器挂起抵抗(Hang Resistance)方面,IE9是目前最可靠的浏览器。 这篇文章将介绍我们是如何设计IE9挂起抵抗的,使未响应的选项卡不影响到浏览器其他选项卡,即IE是如何让其他选项卡和崩溃选项卡分离的。
我们强调新的用户体验,帮助您恢复因为“长时间运行的脚本” 或 “缓慢的加载项” 造成的网页挂起,以便您可以连续无间断的浏览。我们还对IE9和其他浏览器进行了挂起抵抗的对比分析。你可以使用我们的Test Drive演示或观看以下视频来了解 IE9 的挂起抵抗。
了解IE的挂起抵抗
挂起是应用程序中最常见的用户中断,当一个应用程序挂起(或“冻结”),整个用户界面变得没有响应。 浏览器挂起同样令人不快。 在早期的IE版本,当一个选项卡挂起时,您可能不能与其他打开的选项卡或浏览器窗口进行交互。当IE9的一个选项卡挂起时,其他的浏览器选项卡不受影响。让我们深入了解IE这样是如何工作。
像其他浏览器,IE的浏览器框架窗口和选项卡都是单独的组件。他们通过共享
消息队列相互通信。当您执行操作,比如在选项卡上点击一个链接,或者拖动IE窗口,IE浏览器将增加这些行动的消息到队列。每个消息都有所需的收件人。框架窗口和选项卡将按照排序处理这一系列消息。
当消息队列卡住时就会发生浏览器挂起。例如,一个选项卡由于插件变得没有响应,所以这个选项卡无法处理共享队列中为自己指定的任何消息。当你徒劳地点击浏览器的周围,你的操作将生成消息队列,但不会对其进行处理,因为挂起的选项卡仍未处理当前消息!
IE9 不允许发生这样的交通堵塞。框架窗口会定期检查打开的选项卡是否有被挂起。当这个框架发现一个选项卡被挂起时,它会将该选项卡的消息分离到一个临时位置。这让队列和其他选项卡以及框架窗口得到释放,可继续处理他们的消息,而其中一个选项卡仍然挂起。

当挂起的选项卡再次响应时,它将会对框架窗口的检查进行反馈。 一旦框架窗口收到响应选项卡的反应,它将移动之前挂起选项卡上的消息返回至队列,以便再次处理这些选项卡上的消息。
从下面的关系图中可了解 IE9 是如何提供挂起抵抗的用户体验:

图中的选项卡都包含toolbars、BHOs、插件(ActiveX controls)以及显示网页所需的Scripts和HTML代码。 如果选项卡中的这些组件,任意一个出现挂起,消息队列将堵塞,使得整个浏览器失去短暂的响应。 框架窗口需少于3秒的时间,以检测挂起的选项卡并将其信息从队列中分离。一旦发生这种情况,那么只有该选项卡内容(橙色)失去响应。 其他组件不受影响,可继续正常工作。
这一体验是在其他浏览器和IE之前版本上的即时改进。这样的浏览器更加可靠,反应更加迅速。有时你可能甚至不知道您的一个选项卡是挂起的。
虽然插件、长时间运行的脚本或加载项会导致网页被挂起,但浏览器框架仍然是保持响应的,IE9还提供您恢复该网页的功能。在下面的章节中,我们描述了这些场景中的用户体验。
未完待续
标签:IE相关IE9挂起