IE8的新特性(二)

Posted on 2008-4-9 星期三

自动故障恢复

概述   

自动崩溃恢复 (ACR) 是 Windows® Internet Explorer® 8 的功能之一,当发生意外事件导致浏览器崩溃或挂起时,该功能可避免工作成果丢失以及生产效率降低。ACR 功能可利用松散耦合的 Internet Explorer 功能提供最新的崩溃恢复功能,如选项卡恢复,这一恢复能够将用户浏览会话的中断机率降至最低。
多数软件应用程序都能够提高用户的工作效率。Microsoft® Office 是世界上应用最广泛的应用程序产品套件,因能够显著提高用户生产效率而声名鹊起。可在一定程度上提高生产效率,帮助用户避免工作成果丢失。几乎每个人都有过辛苦工作的成果丢失的经历,并且非常了解重要数据丢失所造成的破坏性影响。
用户已经可以借助浏览器完成许多工作。例如:

撰写

撰写包括写入或创建新内容。撰写是一项困难且需要花费大量时间来完成的工作,若工作成果发生丢失,会给用户造成极大的困扰。撰写工作可包括:
电子邮件消息
博客文章
学业课件(留言板、书面作业等等)

上下文联系

上下文联系属“隐性工作”,可显示在浏览器状态中。此类工作成果的丢失可能不会造成巨大损失,但也足以令人倍感沮丧。此类工作可包括:
信息搜索和检索(搜索和导航)
购物车
登录会话(网上银行、电子邮件等)
选项卡设置/URL 加载
Travel Log
当发生意外事件导致浏览器崩溃、挂起或应用程序意外关闭时,ACR 功能可帮助避免上下文联系和撰写工作成果的丢失。

ACR 功能详细描述   

本节讨论了自动崩溃恢复功能的体系结构和用户界面。

体系结构

ACR 功能可利用松散耦合的 Internet Explorer 功能,将 UI Frame 与 Tab 设置保存在不同的进程中对其进行分离,如下图所示。

超过 70% 的 Internet Explorer 崩溃和挂起都由扩展引起,如 ActiveX® 控件、浏览器辅助对象 (BHO) 和工具栏。通过分离选项卡进程中的扩展代码,我们可以确保浏览器的完整性,并限制许多选项卡进程中的故障。
ACR 功能由 Frame 中的对象构成,它能够像虚拟飞行数据记录器一样,备份选项卡进程中的重要数据,这些数据包括:
“后退”->“前进”历史记录 (Travel Log)
使用 URL 和排序的 Tab 设置


下图显示了 ACR 功能的高级体系结构。

若整个浏览器发生崩溃(框架崩溃)或系统意外关闭,则可采用连续备份存储进行恢复。

用户界面

ACR 功能包括以下 UI 功能:

选项卡恢复

崩溃或挂起成功恢复后,Internet Explorer 会在选项卡中显示标题气泡图(如以下屏幕快照所示)通知用户。


框架恢复

如果无法避免级联到框架的故障或浏览器意外关闭(如意外断电),则 Internet Explorer 可还原用户的最终选项卡设置,如以下屏幕快照所示。

代码实例

为进行正确恢复,许多 Web 站点都不需要更改代码。
但是,进行选项卡或框架恢复时,Internet Explorer 将重新定位当前页。具有动态插入形式的 AJAX 站点应使用 Internet Explorer 8 中的书签页面状态功能,以确保恢复正确的页面状态。以下实例给出了正确方法。
浏览器中书签页面状态的 AJAX 导航
在 IE8 标准模式下,Internet Explorer 将 window.location.hash 中的更改作为导航,并保存先前文档的 URL。通常会产生以下结果:
地址栏、“后退”按钮和其他浏览器组件中先前的 URL(可能包含于之前的散列碎片中)将被更新。
此时会发出传统导航时的“卡嗒”声。
并生成新的 hashChanged 事件。
在从当前页面导航至其他位置之前,Internet Explorer 还会保存散列的 URL 碎片。

下列代码片段设置了事件处理器及散列值,从而可实现浏览器对其组件进行更新:
// 1. Attach event handler to new onhashchange event.
onhashchange = hashchange;

// 2. Set hash object to URL fragment to be saved.
window.location.hash = "Fragment_added_to_URL";

符合 W3C 标准:当 window.location.hash 发生变化时保存 URL,并生成符合 W3C HTML 5 Working Draft 行为的 hashChanged 事件。


No comments have been added to this post yet.

留下评论

(必需)

(必需)


Information for comment users
Line and paragraph breaks are implemented automatically. Your e-mail address is never displayed. Please consider what you're posting.

Use the buttons below to customise your comment.


RSS feed for comments on this post | TrackBack URI