推荐星级:
- 1
- 2
- 3
- 4
- 5
功能强大的JavaScript引擎-SpiderMonkey
资料介绍
文档为功能强大的JavaScript引擎-SpiderMonkey详解文档,是一份不错的参考资料,感兴趣的可以下载看看,,,,,,,,,,,,,
部分文件列表
文件名 | 大小 |
功能强大的JavaScript引擎-SpiderMonkey.pdf | 124K |
部分页面预览
(完整内容请下载后查看)功能强大的JavaScript引擎--SpiderMonkey
JavaScript 在浏览器中的应用几乎是尽人皆知的。实际上,JavaScript 技术也可以使用在非浏览器应用程
序当中,从而让应用程序具有自动的脚本功能。本文介绍了一种功能非常强大的JavaScript引擎
SpiderMonkey。这个引擎是 Mozilla 浏览器的 JavaScript 引擎。该引擎接口定义清晰,模块化好。本文
简要介绍了 SpiderMonkey 的基本结构,并讲解了如何在自己的应用程序中使用该引擎,最后给出了一个样
例程序。该程序能够解释执行JavaScript脚本完成简单的脚本功能。
JavaScript是由Netscape开发的对象脚本语言,其特点是开发简单、功能灵活,目前已广泛应用于WEB页面
及服务器应用程序中。HTML本身是静态的、不允许用户干预,但用JavaScript编写的脚本程序就可以在用户
的浏览器端运行,可以同用户进行交互,从而实现动态页面。可以将JavaScript与嵌入WEB的大多数对象的
事件(如鼠标点击、移动等)相关联,然后用自己的方式处理这些事件。JavaScript提供了丰富的内置函数
及命令,能在浏览器中显示HTML、数值计算、多媒体播放、超级链接以及简单的交互窗口等,还可以使在浏
览器中运行的小Java应用程序的性质改变从而很容易地改变控件或其它对象的行为而不必深入研究其本身的
结构。
JavaScript虽然是为Internet而开发的,但它的应用却不仅仅局限于Internet,事实上由于其面向对象的特
性使得其适用范围非常广泛,只要我们的应用程序具有良好的对象机制,我们就可以借用JavaScript,从而
实现很好的交互功能。
SpiderMonkey是由C语言操作的JavaScript引擎,它支持JS1.4和ECMAScript-262规范。该引擎分析、编译和
执行脚本,根据JS数据类型和对象的需要进行内存分配及释放操作。利用该引擎可以让你的应用程序具有解
释JavaScript脚本的能力,目前已有若干个项目都采用了SpiderMonkey引擎,像K-3D、WebCrossing、
WebMerger等。K-3D是用C++实现的3D建模与仿真系统,该系统内嵌SpiderMonkey引擎来提供自定义脚本(用
户创建脚本生成像齿轮一样具有重复特性的复杂形体),也可用来驱动交互式的教学系统(用户可以使用一
段JS脚本程序记录其交互过程,如移动鼠标、选择菜单、点击鼠标等)。WebCrossing利用SpiderMonkey实
现了服务器端的脚本环境,提供了完全的Web-server脚本环境,服务器端的实现允许你在内置的、面向对象
的数据库中创建永久对象,这样即可根据自己的需要扩展服务器环境。
下面简要介绍在自己的应用程序中如何使用SpiderMonkey,最后给出一个简单的例子程序。
一、如何使用引擎
JS引擎一般作为共享库使用,应用程序调用引擎提供的API函数。引擎API函数大致分为以下几种:数据类型
操作、RunTime控制、类与对象的创建和维护、函数与脚本执行、字符串操作、错误处理、安全控制、Debug
支持。一般情况下,在你的应用程序中只需使用某几类函数。例如,在进行JS调用之前你必须调用
JS_NewRuntime函数来创建并初始化JS引擎。有些类型的函数,象安全控制类,提供可选择的特征。
从概念上讲,JS引擎是你系统上的一个共享资源。通过将引擎API调用嵌入到应用程序中(包含jsapi.h文
件),你可以请求JS引擎进行操作。接下来,引擎处理你的请求,并将结果或状态信息返回给你的应用程
序。
例如,假定你在使用JS引擎自动化应用程序,脚本应用程序鉴别用户并设置权限。首先,应用程序创建JS对
象,该对象描述用户信息,包括姓名、ID、权限和可用的函数列表。在这种情况下,应用程序首先调用
JS_NewObject创建对象。当JS引擎创建对象后,返回一个指针给应用程序。应用程序再调用JS引擎执行脚
本。在创建用户对象后,应用程序即刻传递脚本给JS_EvaluateScript以便编译和运行。脚本或许取得并效
验用户信息,然后建立用户存取的权利。
JS引擎收到初始化请求后,给JS RunTime分配内存,应用程序使用的变量、对象和上下文(上下文)都保存
1
全部评论(1)
2019-09-25 09:57:30qq624811130
不错