JavaScript调试器软件架构
摘 要 JavaScript编程变得越来越重要,一个独立运行的轻量的JavaScript调试器工具成为许多Web应用开发人员迫切需要的一种工具.采用基于C++的V8引擎作为调试器的脚本解释器,构建出包含编辑模块、结果显示模块、JavaScript模块三个模块的JavaScript调试器.其中JavaScript模块又包含JavaScript引擎、代码检查器、参数配置器、代码压缩器、代码辅助五个子模块.使用委派的信息交互方式来实现模块间的信息传递,使提出的调试器具有简便易用、突出重点、容错高的软件界面.
关键词 JavaScript编程;C#语言;V8引擎;JavaScript调试器;委派;软件界面
中图分类号 TP311 文献标识码 A 文章编号 1000-2537(2014)06-0088-05
Abstract JavaScript programming is becoming increasingly important. An independent-running lightweight JavaScript debugger has become an important tool for Web application developers. The JavaScript debugger three modules, namely the editing module, the result displaying module and the JavaScript module is constructed by the script interpreter which adopts v8 engine based on C# language as debugger. Among them, the JavaScript module includes five submodules such as JavaScript engine, code checker, parameters configuration, code compressors and code assistance. Using the delegation information-interacted means to achieve information transmission between modules, the established debuger owns a software interface with qualities as using simply and easily, highlighting the keys and high fault tolerance.
Key words JavaScript programming; C# language; V8 engine; JavaScript debugger; delegation; software interface
当前,基于Web浏览器的应用越来越受到用户的喜爱和开发商的重视,而越来越多的成熟用户对Web应用的易用性提出新的高要求,这就迫使开发商不断地改进应用.例如,使用JavaScript代码控制Web页面的展现;使用AJAX技术改善Web页面的控制等等.这些都使得作为Web应用的开发人员不得不去学习并使用JavaScript语言编写应用程序.
提供JavaScript代码调试的工具目前主要分为两类:第一类工具是与大型的IDE工具集成的调试工具,如微软的InterDev, Visual Studio. NET 2003/2005,Eclipse上的HTML编辑器插件,NetBeans上的HTML编辑器等等;第二类工具是作为浏览器的一个插件的调试工具,如FireFox浏览器上的FireBug插件[1-2].这两类工具不同的是:第一类不能对JavaScript代码进行单步调试、设置断点等代码的跟踪功能.相同的地方就是:为了调试JavaScript代码,不得不启动应用自身,从而占用大量不必要的系统内存资源.
尽管JavaScript的编程变得越来越重要,目前还没有真正独立的JavaScript调试工具.因此,一个独立运行的轻量的调试器工具成为许多Web应用开发人员迫切需要的一种工具.它将使得Web应用的开发人员能更好地调试JavaScript代码,从而减轻开发的成本、提高开发工作的效率.
笔者采用C#语言构建了一个独立的、轻量的JavaScript代码调试工具.所谓独立性,是指该JavaScript代码调试工具无须与现在的IDE和Web浏览器结合,它是一个独立的应用;所谓轻量级,是指该JavaScript代码调试工具只占用系统很少的资源.该JavaScript代码调试工具提供如下主要功能为:(1)对JavaScript代码的单步调试;(2)设置断点;(3)取消断点;(4)跟踪指定的变量;(5)定位出错代码位置.本文主要介绍该JavaScript代码调试工具的软件架构思想.
JavaScript调试器分为3个模块:编辑模块,结果显示模块,JavaScript模块[3-4].整体架构如图1所示.
在JavaScript调试器中,编辑模块负责编辑功能,包括新建文档、打开文档、保存、另存为、剪切、复制、粘贴、查找、撤销、重做、跳转到指定行列、放大、缩小等基本功能.编辑模块采用窗体控制器对多个编辑窗口进行管理和控制,支持多文档的打开和编辑.
JavaScript模块是JavaScript调试器的核心,包括JavaScript引擎、代码检查器、参数配置器、代码压缩器、代码辅助5个子模块[5-7].
JavaScript调试器的结果显示模块以列表的形式显示当前JavaScript代码的错误.结果显示模块分析代码检查器的检查结果,显示错误总数及错误明细,错误明细会细致显示出错的行号、字符位置、错误描述.
2 JavaScript模块架构
JavaScript模块是软件的核心,JavaScript模块包括JavaScript引擎、代码检查器、参数配置器、代码压缩器、代码辅助5大子模块[8-9],如图2所示.
2.1 JavaScript调试器的C#开发语言和V8引擎
JavaScript引擎是JavaScript代码执行的解释器[10-11].目前,国际上开源的JavaScript引擎是Mozilla公司的Rhino和Google公司的V8[12-14].Rhino是用纯 Java 实现的开源 JavaScript 引擎,Firefox浏览器采用了该引擎;而V8引擎则是用C++开发的开源引擎,用于Chrome浏览器上[15].Rhino引擎和V8引擎都为客户端提供了JavaScript脚本执行能力.它们都是开源的引擎,能很方便地将JavaScript脚本嵌入到程序中.
(www.fabiaoba.com),是一个专门从事期刊推广期刊发表、投稿辅导、发表期刊的网站。
本站提供如何投稿辅导、发表期刊,寻求论文刊登合作,快速投稿辅导,投稿辅导格式指导等解决方案:省级论文刊登/国家级论文刊登/
CSSCI核心/医学投稿辅导/职称投稿辅导。
投稿邮箱:fabiaoba365@126.com
在线咨询:
275774677、
1003180928
在线咨询:
610071587、
1003160816
联系电话:13775259981