基于Linux 的嵌入式浏览器的研究
Ajax 的交互进度改变) 。绝大部分事件都由用户的动作所引发, 例如用户按鼠标的按键, 就产生click 事件, 若鼠标的指针在链接上移动, 就产生MouseOver 事件等。在JavaScript 中, 事件与事件处理程序配套使用。而对事件的处理用addEventListener() 函数, 它有3 个参数: 事件、引发的函数以及是否使用事件捕捉。
为了保障安全性, 将第三个参数始终设置为false。
JavaScript 具有几个特性: 能使网页增加互动性; 能使有规律地重复的HTML 源代码简化, 减少下载时间;能及时响应用户的操作, 对提交表单做即时的检查, 无需浪费额外的验证时间。
3.2 JavaScript 引擎
JavaScript 引擎一般作为共享库使用, 应用程序调用引擎提供的API 函数。引擎API 函数大致分为以下几种: 数据类型操作、RunTime 控制、类与对象的创建和维护、函数与脚本执行、字符串操作、错误处理、安全控制、Debug 支持。一般情况下, 在应用程序中只需使用某几类函数。例如, 在进行JavaScript 调用之前必须调用JS_NewRuntime 函数来创建并初始化JavaScript 引擎。有些类型的函数(像安全控制类)提供可选择的特征。
JavaScript 引擎是系统上的一个共享资源。通过将引擎API 调用嵌入到应用程序中, 可以请求JavaScript 引擎进行操作。引擎处理请求, 并将结果或状态信息返回给应用程序。例如, 假定使用JavaScript 引擎自动化应用程序, 脚本应用程序鉴别用户并设置权限。首先, 应用程序创建JavaScript 对象, 该对象描述用户信息, 包括姓名、ID、权限和可用的函数列表。在这种情况下, 应用程序首先调用JS_NewObject 创建对象。当JavaScript 引擎创建对象后, 返回一个指针给应用程序。应用程序再调用JavaScript 引擎执行脚本。在创建用户对象后, 应用程序即刻传递脚本给JS_EvaluateScript 以便编译和运行。脚本获许取得并校验用户信息, 然后建立用户存取的权利。
JavaScript 引擎收到初始化请求后,给JavaScript Run-Time 分配内存, 应用程序使用的变量、对象和上下文都保存在RunTime 中。一个上下文是脚本的执行状态(JavaScript 引擎使用的) 。每个同时存在的脚本或线程都必须有自己的上下文。单个的JavaScript RunTime 可以包含多个上下文、对象和变量。几乎所有的JavaScript 引擎调用都需要一个上下文变量, 应用程序在创建RunTime后, 首先应调用至少一次JS_NewCONtext 来创建一个上下文。上下文的实际数量依赖于程序中同时使用的脚本数。程序中每个同时存在的脚本都需要一个上下文。另一方面, 如果某个时刻只有一个脚本编译和运行, 则只需一个上下文给每个脚本重复使用即可。
3.3 JavaScript 与浏览器结合
3.3.1 直接加入方式
绝大部分含有JavaScript 代码的网页都采用直接加入的方式。
script type=test/javascript>
document.write(This is Javascript! );
/script>
其中,script> /script> 是JavaScript 的标签。scripttype = test/javascript > 用来提示浏览器该程序采用JavaScript 语言编写, 需要调动相应的解释程序进行解释。
除此之外, 还有一个更高版本的嵌入脚本, 使用HTML 中的CDATA 语法, 就是把CDATA 中的文本全部当作纯文本处理, 当遇到CDATA 时结束。
script language=javascript type=test/javascript>
! CDATA[[>
! ]]>
/script>
3.3.2 引用方式
如果已经存在一个JavaScript 源文件(以js 为扩展名),则可以采用引用的方式提高程序代码的利用率。其基本格式如下:
script src=url type=test/javascript>
/script>
其中url 就是程序文件的地址。
同样地, 这样的JavaScript 程序语句可以放在HTML文档头部或主体的任何部分。如果要实现直接加入JavaScript 程序代码, 可以首先创建一个JavaScript 源代码文件“javascript.js ” , 其代码为document.write (This isJavascript! ) 。在网页中调用程序的方法, 如:
script src=javascript.js type=test/javascript>
/script>
也可以同时在导入文件时指定JavaScript 的版本,如:
script src = javascript.js type = test/javascript; version =2.0>
/script>
本文对Linux 操作系统的嵌入式浏览器进行了研究与分析。分析了嵌入式浏览器的结构, 并对嵌入式浏览器的各部分功能进行阐述, 其中包括词法分析、语法分析与布局、浏览器JavaScript 支持、I/O 端等部分。其中,在嵌入式浏览器的研究过程中, 词法分析的算法是开发技术的核心。在后续研究工作中, 可以对词
- 基于DSP的音频会议信号合成算法研究(05-10)
- 基于定点DSP的MP3间频编码算法研究(07-04)
- DSP的并联电力有源滤波器的仿真研究(02-15)
- PCI总线数据采集系统的硬件研究(09-12)
- PIC单片机在温度测量领域的应用及仿真研究(11-23)
- 嵌入式软PLC 的设计与研究(06-27)