Web应用浏览器兼容性的自动规范化方案

上传人:飞*** 文档编号:36275880 上传时间:2018-03-27 格式:PDF 页数:4 大小:845.22KB
返回 下载 相关 举报
Web应用浏览器兼容性的自动规范化方案_第1页
第1页 / 共4页
Web应用浏览器兼容性的自动规范化方案_第2页
第2页 / 共4页
Web应用浏览器兼容性的自动规范化方案_第3页
第3页 / 共4页
Web应用浏览器兼容性的自动规范化方案_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《Web应用浏览器兼容性的自动规范化方案》由会员分享,可在线阅读,更多相关《Web应用浏览器兼容性的自动规范化方案(4页珍藏版)》请在金锄头文库上搜索。

1、 2 0 1 3年 第2 2卷 第 l 2期 h t t p : ww w c - S - a o r g c n 计 算 机 系 统 应 用 长期 以来,对于 DO M 。 】 部分 的兼容性 问题,传 统的解决方案有如下 2种: 完全按照W3 C的D O M规范里的A P I 来编写程 序 此 方法 的局限是,很多标准 的 A P I 对于 国内习惯于 某 一浏览器开发 的人员来说,不熟悉并且不愿学习 使用能力检测 也叫做对象检测,指的是在执 行代码之前检测某个脚本对象或者方法是否存在,而 不是依赖于你对哪个浏览器具有哪些特性的了解如 果必需的对象或方法存在, 那么说明浏览器能够使用 它,

2、并且代码也可以按照预期执行 例子如下: i f ( d o c u me n t a l 1 ) I E兼容 的部分代码 e l s e F i r e f o x版本的代码 ) 对于现有的代码来说,以上两种方案有一个共同 的缺 点就 是按照上面 的方法 重新开发程序工作 量太 大 成本太高, 难以实现自动化 此类现有代码的问题在软 件工程学科上属于遗留系统 的改造问题 对网页代码 的改造 的 目的是要将不能够跨浏 览器的 网页代码 改造 为能够跨浏览器的,同时要保持原有的功能不变在遗 留系统的改造中,重构是能够达到将已有的代码进行 改造,同时又不改变 已有功能性的目的 故我们提出了 基于重构

3、的方式对非兼容网页代码进行改造,同时又 不用人工改动现有代码由于网页本身是以W3 C D O M 模型规范作为指导, 本文提出的针对非规范网页代码 的改造,以DO M模型规范作为指导,以符合W3 C规范 为目标,即基于模型的网页代码 自动规范化的重构 2 基于DOM模型规范的重构 在 W3 C组织制定针对 网页代码 D OM 规 范前,各 浏 览器通 过使用一种叫做 D H T ML ( D y n a mi c H T ML ) 技术来操纵文档、样式等特性 D HT ML为嵌入到网页 中的脚本语言提供了一个编程接 口。但由于各种浏览 器提供的接 口各不相同, 其应用和发展受到了很大的 制约

4、DO M( Do c u me n t O b j e c t Mo d e 1 ) 起源于 DH T ML , 虽然 W3 C组织早在 1 9 9 8 年 1 O月就提出了D O M 的正 式建议( R e c o mme n d a t i o n ) ,但到 目前为止,这个建议 被一些主流浏览器实施的程度差异很大 DO M 是一套平台和语言独立的接 口,允许通过 程序或者脚本动态地访问和更新文档的内容、 结构和 样 式D OM 规 范分成 了不 同的级 别,以当前常 用的 DO M L e v e l 2为例, DO M2推荐标准 分成 了以下 6个 不 同 的规 范 :D O M2 C

5、 o r e 、DC I M2 H T ML、D OM2 Ev e n t s 、 DOM 2 S t y l e、 DOM2 T r a v e r s a l a n d Ra n g e 、 DO M2 V i e ws 其中D0 M2 HT ML是专门针对 H T ML 网页文档 设计 的,通 过将整个 HT ML 页面文档 规划 成 由多个相互连接的节点构成 的文档,文档中的每 个部分都可以看成是一个节点( No d e ) 的衍生物这样 的一个节 点集 合看 成是 一棵节 点树 ( T r e e ) ,也 就是浏 览器载入网页文档后得到的 HT ML D o c u me n t

6、对象 通 过这 个对 象 ,开 发 者可 以对 文 档 的 内容和 结 构拥 有强 大的控制力,并且使 用 DO M 提供 的 A P I 在文档 树 中遍 历、删除 、添加 、修 改和替换 节点,由此生成 丰富的应用形式浏览器厂家由于为了提高竞争力 等原因,在对 D O M 规范的实现上,并没有完全遵守 W3 C 制 定 的标 准 通 过 对 DO M 解 析 文档 后 得 到 Do c u me n t 对象 统计发现,对 Do c u me n t 对象 的方法 的 部分兼容性 测试如表 1 所示 表 1 各浏览器的D OM兼容性支持 方法名 I E 6 0 F F W3 CDO M a

7、 d d E v e n t Li s t e n e r N Y L e v e l 3Co r e a d o p tNo d e N Y Le v e l 3Co r e a t t a c h E ve n t Y N c l e a r N Y Le v e ll c l o s e Y Y Le v e l1 c o mp are Do c u m e n t P o s it i o n N Y Le v e l 3Co r e c r e a t e At t r i b u t e Y Y Le v e l1 c r e a t e At t r i b u t e NS N

8、 Y Le v e l 2Co r e c r e a t e CDAT AS e c t i o n N Y Le v e l 2 Co r e c r e a t e Co r n me n t Y Y Le v e 11 c r e a t e Do c u me n t F r a g me n t Y Y Le v e ll c r e a t e E l e me n t Y Y Le v e l1 对于已有的不符合 D O M 模型规范的代码,使用 重构【 6 】 的方式能够使不符合规范的代码规范化,实现 代码的跨浏览器兼容性若是使用手工的方式对代码 进行 重构 的话不仅 费时

9、费力 ,而且容 易出错以遵 守 D O M 模 型规范 为 目标 的 自动化 重构工具能够提 供很 好的重构效果和用户体验 要构造 的 自动重构 工具面 向的是存在兼容性 问题 的网页代码。其 目标是遵 守 D 0 M 模型规范浏览器是 通过嵌入的脚本语言实现对 D OM 模型的操纵,发现 不兼容 的代码则 首先 要实现对 嵌入 脚本进行解析 想 要从进行解析后的嵌入脚本中发现不兼容的部分, 则 需要有 已知的不兼容列表重构工具所需的程序数据 库在生成符合 D O M 规范的代码 时经常用到以上这 R e s e a r c h a n d D e v e l o p me n t研究开发 1

10、 9 7 计 算 机 系 统 应 用 h t t p : ww w c - S a o r g c n 2 0 1 3年 第 2 2 卷 第 1 2期 些是构造 自动化 重构工具 的必要条 件则重构工具 的 整个工作过程如 下图 2 所示 图 2 重构工具工作过程 3 构造基于DO M模型规范的自动重构工具 在我们的具体实现中,采用的是对嵌入到网页中 的 J a v a S c r i p t 7 J 脚本代码进行解析并发现和纠正不兼容 部分的 针对具体的 J a v a S c r i p t脚本,构造一个语言解 析器【 ,采用 了 A N T L R l ( A n o t h e r T

11、 o o l f o r L a n g u a g e R e c o g n i t i o n ) 实现 A N T L R 能够接 受文法语言描述, 能 够依据给 出的语法规则生成相应的基于 J a v a 、C + + 或 c 的词法分析器或语法分析器代码,极大地提高了自 行编写分析器的效率 A N T L R接受 L L ( k ) 文法 L L ( k ) 文 法书写的限制是 1 : 不能用左递归 2 :向前看的字符数 最多是 k 个,当编译程序递归 k次仍无法找到匹配的产 生式时,则句子识别失败重构工具的程序数据库在以 网页文档作为输入时,就是需要从网页文档解析 出 D O M

12、模型出来, 使用解析后得到的D o c u me n t 对象,使 用 D O MA P I 可以轻松地对整个网页内容进行遍历、查 询等 使用开源的 H T ML解析器Ne k o H T ML可以把网 页解析出一棵 D O M 树N e k o H T ML 是一个简单地 H T ML扫描器和标签补偿器l l 0 ( t a g b a l a n c e r ) 。 使得程序 1 9 8 研究开发 R e s e a r c h a n d De v e l o p m e n t 能解析HT ML文档并用标准的X ML 接 口来访问其中的 信息 这个解析器能够扫描 H T ML文件并“

13、修正” 许多 作者( 人或机器) 在编写H T ML文档 过程中常犯的错误 N e k o H T ML能增补缺失的父元素、自动用结束标签关 闭 相 应 的 元 素 。以 及 不 匹 配 的 内 嵌 元 素 标 签 N e k o H T ML的开发使用了X e r c e s Na t i v e I n t e r f a c e ( X NI ) , 后者是 X e r c e s 2的实现基础 使用 N e k o H T ML 作 为预处理器对 输入的网页文 档预处理得到 D O M 树,使用 A N T L R作为 J a v a S c r i p t 代码解析器解析 J S代码

14、, 使 用解析过程 中获取 的上下 文信息和浏览器兼容性对照表则可以识别并对非兼容 代码予以纠正,起到了重构的作用非D O M兼容的代 码重构后完全符合 W3 C 的 D O M 模型规范, 且易维 护、易扩充、代码更加健壮 4 实验结果 为测试对 网页代 码的重构效果 , 特别 发起 了一个 针对 中国银 行网上银行进行 重构的项 目,通过构造 自 动重构工具,对含有较多浏览器兼容问题的中国银行 网银的网页代码进行测试为了方便用户测试,该项 目将重构工具部署在一台中间服务器上,当用户设置 代理服务器为中间服务器即可实验结果为,当使用 重构工具后 , 在 多种系统 包括特别 是龙芯上 的 L

15、i n u x 系统下用多种浏览器如 F i r f o x等都可以十分顺利登陆 并且使用中国银行网上银行的几乎全部页面, 详情可 参照本项 目的网站 h t t p : ww w w 3 c b a n k o r g w e b a r t k 5 总结 本文通 过分析当前我国许多 网站 网页代码 出现 的 浏 览器 兼容性 问题 的原因 提 出了针对非规范 的网页 代码进行 自动规范化来对网页代码实现重构的做法 自动重构后的网页代码,遵照 D O M 模型,符合 W3 C 规 范。从而实现 了网页跨浏 览器 的兼容性最后通 过 实现一个基于 DO M 模型的自动规范化重构工具对网 页代码进行重构使用网页 自动重构工具将会对现有 网页文档的规范化有非常积极的意义,以较小的代价 实现了对现存的不规范We b应用遗留系统的规范化实 现跨系统跨浏览器的兼容性因此本文提出的方案对 于解决国内广泛存在的w_e b 应用跨浏览器兼容性问题 具有非常强的实用价值和推广价值 ( 下转第 1 8 7页)

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 期刊/会议论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号