文档章节

RingoJS翻译官网之RingoJS简介

山林之野
 山林之野
发布于 2017/07/13 23:01
字数 948
阅读 380
收藏 2
点赞 1
评论 0

输入图片说明

多线程的运行在Java虚拟机(JVM)上的JavaScript

Ringo 是一个构建在Java虚拟机上的Javascript平台,设计用于服务端应用的编写。它允许多样化的编程风格,比如I/O部分。RingoJS具有大量的内置模块,并且遵循CommonJS标准。

可以直接把Java类引用到RingoJS中

它可以直接的使用任何Java的标准类(JDK里面的所有类),或者是你自己写的类,放在它的类路径中(后面的翻译将会介绍),就可以直接使用。给人感觉,与Java的无缝连接。这使得RingoJS可以很容易的把现有的Java环境,或者是现有的Java代码拿过来用。而不需要繁琐的研究各种转化方法。

RingoJS 是一个JavaScript平台

JavaScript的ECMA规范这样描述JavaScript:“an object-oriented programming language for performing computations and manipulating computational objects within a host environment”。每个用JavaScript编写的引用都需要一个宿主环境来运行,这个宿主环境中,提供必要的类的Api。RingoJS呢,就提供了这样的环境,而且还内置了大量的模块,让程序编写变得更加容易。作为“通用编程语言”的体系,JavaScript可用于解决广泛的问题,而RingoJS强化了这种解决问题的能力。使用RingoJS,可以很方便的写出命令行工具,以及复杂的Web应用,甚至是使用JavaUI技术的图形化界面的应用。

与Javascript不同的是,RingoJS没有自己的引擎。它用的是完全以Java实现的JavaScript——Mozilla Rhino。Mozilla Rhino最初在NetScape的时期就出现了,一直保留到现在。其基本思想是,把Javascript项目编译成为Java字节码,然后在Java虚拟机上面运行。Mozilla Rhino,也提供了使用Java标准类库和任何自定义Java类的方法。这使得Mozilla Rhino很方便的把现有的Java类库放到JavaScript应用中使用。例如:RingoJS打包好Java的I/O类,直接放在Javascript中使用。

RingoJS在服务器或者一个专门的机器上执行Javascript,不是在WEB浏览器环境中。这是与Html上的Javascript的主要不同之处。它是基于CommonJS模块的。如果你懂得Node.js的模块,那么你也就懂得如何用RingoJS写一个模块。模块,就是封装了Javascript方法和变量,使得能独立于其他模块一种技术。

多线程的JavaScript

典型的命令行应用或者是Web应用不需要用到多线程。 那种一般的Javascript用的是事件循环,实现多线程的效果。而RingoJS直接借助JVM让Javascript并行运行。为了使各个线程独立,每个运行的模块或者项目都被打包在一个Worker中。Worker是项目执行的上下文环境,而且拥有自己的模块和数据。这样使得各个Worker能相互独立,并且还支持典型多线程的协作修改数据功能。RingoJS的Worker有借鉴W3C的Web Worker APIs,使用异步消息来相互进行通讯。也包括,每个Ringo Worker 都保证运行在一个单线程中,也就意味着线程只在代码执行的过程中存在。每个Worker通过构造器以及原型来实现数据的共享。实际上,这个全局对象扮演着一个只读的角色。

谁在支持RingoJS

Ringo是被很多人一起编写的,是在大约2010由Hannes Wallnöfer发起的。目前,还可以在队伍成员列表(https://github.com/orgs/ringo/people)中看到那些程序员。澳大利亚广播公司ORF是RingoJS的一个大用户。

© 著作权归作者所有

共有 人打赏支持
山林之野
粉丝 2
博文 6
码字总数 4027
作品 0
武汉
程序员
JS的ORM框架--persistence.js

persistence.js 是一个异步的 JavaScript 对象数据库映射(ORM)框架。拥有数据库无关的独立抽象层,可轻松支持新的数据库。该软件最开始是为浏览器设计的,利用 HTML5 的 WebSQL 数据库。而后...

匿名 ⋅ 2011/03/17 ⋅ 0

Erbix:兼容于 CommonJS 的服务端 JavaScript 主机平台

Erbix 为构建和部署 JavaScript 应用程序的云端平台。除了支持 RinjoJS,CommonJS 模块,PostgreSQL 外,还支持具可伸缩性的按需调配主机。 Erbix is a platform for building and deploying...

sp42 ⋅ 2010/12/18 ⋅ 0

lodash 1.0.2 发布, JavaScript 实用工具库

lodash 1.0.2 发布,下载地址如下: Source code (zip) Source code (tar.gz) 详细信息请查看 lodash Github 页面: https://github.com/lodash/lodash/tags lodash 是一个 JavaScript 实用工......

oschina ⋅ 2015/03/31 ⋅ 6

lodash 3.0.1 发布,JavaScript 实用工具库

lodash 3.0.1 发布,此版本现已提供下载(ZIP),更新内容如下: Ensured coerces floating-point & params to integers Fixed lazy , , & Fixed regression with DOM elements lodash 是一个......

oschina ⋅ 2015/02/01 ⋅ 1

lodash 3.4.0 发布,JavaScript 实用工具库

lodash 3.4.0 发布,此版本现已提供下载:src="https://github.com/lodash/lodash/archive/3.4.0.zip" href="https://github.com/lodash/lodash/archive/3.4.0.zip">https://github.com/lod......

oschina ⋅ 2015/03/06 ⋅ 2

lodash 3.5.0 发布,JavaScript 实用工具库

lodash 3.5.0 发布,此版本更新内容如下: 添加字符串A & 声明方法 当 filter 应用之后确保延迟 drop 能正常运行 优化 curried 方法性能 此版本现已提供下载:https://github.com/lodash/lod...

oschina ⋅ 2015/03/09 ⋅ 3

lodash 3.0.3 发布,JavaScript 实用工具库

lodash 是一个 JavaScript 实用工具库,提供一致性,模块化,性能和配件等功能。 当前支持 Chrome 39-40, Firefox 34-35, IE 6-11, Opera 25-26, Safari 5-8,io.js 1.0.4, Node.js 0.8.28 & ...

oschina ⋅ 2015/02/21 ⋅ 4

Lodash 3.7.0 发布,JavaScript 实用工具库

lodash 3.7.0 发布,此版本更新内容如下: Added .get, .method, .methodOf, & .set Added support for assigning ES6 symbols to , , & Avoided a JIT bug in Safari on iOS 8.1 ARM64 Ens......

oschina ⋅ 2015/04/17 ⋅ 4

lodash 3.3.1 发布,JavaScript 实用工具库

lodash 3.3.1 发布,此版本更新内容如下: Ensured lazy reverselast` Ensured defaults to for & Ensured doesn’t error if is an object without a method Optimized , , & in Firefox (......

oschina ⋅ 2015/02/25 ⋅ 0

lodash 3.8.0 发布,JavaScript 实用工具库

lodash 3.8.0 发布,此版本更新内容如下: Added .mapKeys, .unzipWith, & .zipWith Allowed , , , & to accept array-like values Ensured empty brackets are ignored by & Ensured , , &......

oschina ⋅ 2015/05/02 ⋅ 5

没有更多内容

加载失败,请刷新页面

加载更多

下一页

中标麒麟(龙芯版)7.0优盘安装

########################################## 制作U盘安装盘: 1.准备U盘: PMON环境下U盘必须格式化成ext3; 昆仑固件环境下可以格式化成ext3,ext4 2.把整个镜像 xxx.iso 复制到U盘下面 3....

gugudu ⋅ 19分钟前 ⋅ 0

老司机写的大数据建模五步走

本文将尝试来梳理一下数据建模的步骤,以及每一步需要做的工作。 01 第一步:选择模型或自定义模式 这是建模的第一步,我们需要基于业务问题,来决定可以选择哪些可用的模型。 比如,如果要预...

gulf ⋅ 28分钟前 ⋅ 0

PacificA 一致性协议解读

PacificA 的 paper 在 08 年左右发出来的,比 Raft 早了 6,7 年。 在 PacificA 论文中,他们强调该算法使用范围是 LAN (Local Area Network),讲白了就是对跨机房不友好。 不管是 ZAB,Raf...

黑客画家 ⋅ 30分钟前 ⋅ 0

盘符图标个性化

设置自己的专属盘符图标 准备ico格式的图片文件一个,在根目录下创建autorun.inf文件 文件内容 [Autorun]icon=logo.ico 重新启动或者插拔U盘即可看到结果...

阿豪boy ⋅ 31分钟前 ⋅ 0

Windows下QQ聊天记录中图片的默认存放位置

Windows下QQ聊天记录中图片的默认存放位置在设置中是没有说明的。 实测位置在:D:\Documents\Tencent Files\974101467\Image 其中: “974101467”为对应的QQ号; “C2C”为个人之间的聊天图...

临江仙卜算子 ⋅ 37分钟前 ⋅ 0

GC 的三种基本实现方式

参考资料《代码的未来》(作者: [日] 松本行弘)。 由于并非本人原著(我只是个“搬运工“),SO 未经本人允许请尽情转载。 另外个人像说明一下这里所说的GC指泛指垃圾回收机制,而单指Jav...

xixingzhe ⋅ 38分钟前 ⋅ 0

Android双击退出

/** * 菜单、返回键响应 */ @Override public boolean onKeyDown(int keyCode, KeyEvent event) { // TODO Auto-generated method stub if(keyCode......

王先森oO ⋅ 42分钟前 ⋅ 0

idea 整合 vue 启动

刚学习Vue 搭建了一个项目 只能命令启动 Idea里面不会启动 尝试了一下修改启动的配置 如下: 1.首先你要保证你的package.json没有修改过 具体原因没有看 因为我改了这个name的值 就没办法启动...

事儿爹 ⋅ 48分钟前 ⋅ 0

redis在windows环境的后台运行方法

在后台运行,首先需要安装redis服务,命令为 redis-server.exe --service-install redis.windows.conf --loglevel verbose 启动,命令为 redis-server --service-start 停止,命令为 redis-...

程序羊 ⋅ 51分钟前 ⋅ 0

比特币现金开发者提出新的交易订单规则

本周,四位比特币现金的四位开发者和研究员:Joannes Vermorel(Lokad),AmaurySéchet(比特币ABC),Shammah Chancellor(比特币ABC)和Tomas van der Wansem(Bitcrust)共同发表了一篇关...

lpy411 ⋅ 55分钟前 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部