Ringo 101

為了讓用戶更高效地編寫和執行 Javascript 腳本,在軟件的腳本環境中集成了 RingoJS 框架,用戶可在腳本中直接引入并使用 RingoJS 提供的大量豐富的庫。
例如:如果您想在腳本中使用 RingoJS 模塊 fs 中的方法,您只需引入模塊 require('fs') 即可。
1.引入模塊 'fs'
var fs = require('fs');
2.根據需要,直接使用 fs 模塊的函數,例如,使用 fs 的 exists 函數。
fs.exists('test.txt');

Ringo 是一個 JavaScript 平臺

ECMA JavaScript 規范將該語言描述為面向對象的編程語言,用于在主機環境中執行計算和處理計算對象。每個用 JavaScript 編寫的應用程序都需要一個主機環境,它提供特定于環境的對象和 API 來執行 I / O。 Ringo 為 JavaScript 提供了這樣一個環境,并附帶一組模塊以使應用程序開發更容易。由于其作為通用編程語言的特性,JavaScript 可以用來解決各種各樣的問題,而 Ringo 可以幫助您這么做。利用 Ringo,編寫命令行工具,復雜的 Web 應用程序甚至基于 Java UI 技術的 GUI 應用程序都很容易。

腳本語言如 JavaScript 需要一個引擎來解釋和執行程序。 Ringo 沒有自己的引擎。相反,它使用 Mozilla Rhino,一種 Java 中的 JavaScript 實現。犀牛的最初發展始于 Netscape 時代,并一直持續到現在。基本思想是將 JavaScript 程序編譯為 Java 字節碼,Java 字節碼可以由 Java 虛擬機(JVM)執行。犀牛還提供了對 Java 標準類庫和其他每個 Java 類的輕松訪問。這使得將現有的 Java 庫集成到新的 JavaScript 應用程序變得很容易。例如:Ringo 不是編寫自己的 I / O 系統,而是使用現有的 Java I / O 類,并將它們封裝起來以提供從 JavaScript 更容易的訪問。

Ringo 在服務器或專用機器上執行 JavaScript,而不是在 Web 瀏覽器上下文中執行。如果您已經從基于 HTML 的應用程序中了解 JavaScript,則這是主要區別。沒有什么像一個窗口對象,你沒有一個 DOM 來操縱 HTML 對象。盡管如此,很多事情會像你從瀏覽器中知道的那樣。您可以使用 console.log() 調試到控制臺,但也有專用的日志記錄模塊可用于更復雜的日志記錄。

Ringo 最大的優勢之一就是模塊系統。 Ringo 并沒有自己構建代碼,而是擁有一個易于使用的模塊系統。它基于 CommonJS 模塊,這是用于保持代碼可互換的服務器端 JavaScript 環境的規范。如果您了解 Node.js 的模塊,您還知道如何在 Ringo 中編寫模塊。一個模塊封裝了 JavaScript 方法和變量,并將它們與其他模塊隔離。

多線程 JavaScript

典型的命令行應用程序和 Web 應用程序不需要 Ringo 的多線程模型的任何特殊知識。使用 Ringo 并不意味著明確的多線程,初學者不需要編寫并行的 JavaScript 代碼。但是,如果某個程序需要特殊的并行執行,或者在后臺運行耗時的計算任務,開發人員可以選擇使用多線程。

Ringo 不是在單線程事件循環中運行每個程序,而是使用 JVM 線程并行執行 JavaScript。為了彼此隔離線程,每個正在運行的程序或模塊都被工作者包裝。工作人員是程序的執行上下文,具有自己的一組模塊和數據。這將工作人員彼此隔離,并防止典型的多線程問題,如并發修改共享數據。 Ringo 的工作人員受 W3C Web Worker API 的影響,并使用異步消息傳遞進行工作間通信。像 W3C Web Workers 一樣,每個 Ringo 工作者都有自己的事件循環,保證在單個線程中運行,這意味著只有在沒有其他代碼運行時才會處理預定功能和外部事件。雖然 Ringo 工作人員都有自己的一套模塊可供使用,但他們的確使用標準的構造函數和原型來共享全局對象。這是安全的,因為 Ringo 中的全局對象實際上扮演只讀角色。

誰在支持 Ringo?

Ringo 由許多貢獻者開發,由 HannesWalln?fer 于 2010 年左右創建。目前,它由團隊頁面上的人員維護。 Ringo 的主要用戶之一是奧地利公共廣播公司 ORF。

吉林快三计划软件