文档章节

RingoJS翻译官网之RingoJS简介

山林之野
 山林之野
发布于 2017/07/13 23:01
字数 948
阅读 697
收藏 2

输入图片说明

多线程的运行在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
12.6K
0
Erbix:兼容于 CommonJS 的服务端 JavaScript 主机平台

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

sp42
2010/12/18
0
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
1K
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
1K
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
654
2

没有更多内容

加载失败,请刷新页面

加载更多

Snackbar源码分析

目录介绍 1.最简单创造方法 1.1 Snackbar作用 1.2 最简单的创建 1.3 Snackbar消失的几种方式 2.源码分析 2.1 Snackbar的make方法源码分析 2.2 对Snackbar属性进行设置 2.3 Snackbar的show显示...

潇湘剑雨
37分钟前
1
0
分布式作业系统 Elastic-Job-Lite 源码分析 —— 作业数据存储

分布式作业系统 Elastic-Job-Lite 源码分析 —— 作业数据存储 摘要: 原创出处 http://www.iocoder.cn/Elastic-Job/job-storage/ 本文基于 Elastic-Job V2.1.5 版本分享 1. 概述 本文主要分享...

DemonsI
43分钟前
1
0
jmockit demo

1、@Mocked,标识一个指定的class的实例或被测对象的参数被Mock掉。 2、@Capturing,标识一个被Mock的对象,从该对象派生的子类也被Mock了。 3、@Injectable,标识只有一个指定的被测对象的内...

我的老腰啊
57分钟前
1
0
内容换行

用 <textarea>13611112222 这里想换行 13877779999</textarea><textarea>13611112222 13877779999</textarea>...

小黄狗
58分钟前
1
0
学习设计模式——单例模式

1. 认识单例模式 1. 定义:一个类中仅有一个实例,并提供一个访问它的全局访问点。 2. 结构:仅一个Singleton类,其中包含一个static类变量,而类变量的类型就是Singleton类,而且Singleton...

江左煤郎
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部