日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

目錄
  • 1. 關于JavaScript
    • 1.1 JavaScript 的歷史 
    • 1.2 如何運行 JavaScript 
    • 1.3 JavaScript 的特點 
  • 2. 關于Node.js
    • 2.1 Node.js簡介 
    • 2.2 Node.js 的組成 
  • 3. 用Docker搭建和使用Node.js環境 
    • 總結

      1. 關于JavaScript

      JavaScript是目前所有主流瀏覽器上唯一支持的腳本語言,這也是早期JavaScript的唯一用途。Node.js的出現,讓服務端應用也可以基于 JavaScript進行編寫。

      1.1 JavaScript 的歷史 

      JavaScript 最初被稱為 LiveScript,由 Netscape(Netscape Communications Corporation,網景通信公司)公司的布蘭登·艾奇(Brendan Eich)在 1995 年開發。在 Netscape 與 Sun(一家互聯網公司,全稱為“Sun Microsystems”,現已被甲骨文公司收購)合作之后將其更名為了 JavaScript。

      之所以將 LiveScript 更名為 JavaScript,是因為 JavaScript 是受 Java 的啟發而設計的,因此在語法上它們有很多相似之處 ,JavaScript 中的許多命名規范也都借鑒自 Java,還有一個原因就是為了營銷,蹭 Java 的熱度。

      同一時期,微軟和 Nombas(一家名為 Nombas 的公司)也分別開發了 JScript 和 ScriptEase 兩種腳本語言,與 JavaScript 形成了三足鼎立之勢。它們之間沒有統一的標準,不能互用。為了解決這一問題,1997 年,在 ECMA(歐洲計算機制造商協會)的協調下,Netscape、Sun、微軟、Borland(一家軟件公司)組成了工作組,并以 JavaScript 為基礎制定了 ECMA-262 標準(ECMAScript)。

      第二年,ISO/IEC(國際標準化組織及國際電工委員會)也采用了 ECMAScript 作為標準(即 ISO/IEC-16262)。

      1.2 如何運行 JavaScript 

      作為一種腳本語言,JavaScript 代碼不能獨立運行,通常情況下我們需要借助瀏覽器來運行 JavaScript 代碼,所有 Web 瀏覽器都支持 JavaScript。

      除了可以在瀏覽器中執行外,也可以在服務端或者搭載了 JavaScript 引擎的設備中執行 JavaScript 代碼,瀏覽器之所以能夠運行 JavaScript 代碼就是因為瀏覽器中都嵌入了 JavaScript 引擎,常見的 JavaScript 引擎有:

      • V8:Chrome 和 Opera 中的 JavaScript 引擎;
      • SpiderMonkey:Firefox 中的 JavaScript 引擎;
      • Chakra:IE 中的 JavaScript 引擎;
      • ChakraCore:Microsoft Edge 中的 JavaScript 引擎;
      • SquirrelFish:Safari 中的 JavaScript 引擎。

      1.3 JavaScript 的特點 

      JavaScript 具有以下特點:

      1) 解釋型腳本語言

      JavaScript 是一種解釋型腳本語言,與 C、C++ 等語言需要先編譯再運行不同,使用 JavaScript 編寫的代碼不需要編譯,可以直接運行。

      2) 面向對象

      JavaScript 是一種面向對象語言,使用 JavaScript 不僅可以創建對象,也能操作使用已有的對象。

      3) 弱類型

      JavaScript 是一種弱類型的編程語言,對使用的數據類型沒有嚴格的要求,例如您可以將一個變量初始化為任意類型,也可以隨時改變這個變量的類型。

      4) 動態性

      JavaScript 是一種采用事件驅動的腳本語言,它不需要借助 Web 服務器就可以對用戶的輸入做出響應,例如我們在訪問一個網頁時,通過鼠標在網頁中進行點擊或滾動窗口時,通過 JavaScript 可以直接對這些事件做出響應。

      5) 跨平臺

      JavaScript 不依賴操作系統,在瀏覽器中就可以運行。因此一個 JavaScript 腳本在編寫完成后可以在任意系統上運行,只需要系統上的瀏覽器支持 JavaScript 即可

      2. 關于Node.js

      Node.js自2009年發布,使用Google Chrome瀏覽器的V8引擎,采用事件驅動,性能優異。同時還提供了很多系統級API,如文件操作、網絡編程等。

      2.1 Node.js簡介 

      JavaScript 誕生于 1995 年,幾乎是和互聯網同時出現;Node.js 誕生于 2009 年,比 JavaScript 晚了 15 年左右。

      在 Node.js 之前,JavaScript 只能運行在瀏覽器中,作為網頁腳本使用,為網頁添加一些特效,或者和服務器進行通信。有了 Node.js 以后,JavaScript 就可以脫離瀏覽器,像其它編程語言一樣直接在計算機上使用,想干什么就干什么,再也不受瀏覽器的限制了。

      Node.js 不是一門新的編程語言,也不是一個 JavaScript 框架,它是一套 JavaScript 運行環境,用來支持 JavaScript 代碼的執行。用編程術語來講,Node.js 是一個 JavaScript 運行時(Runtime)。

      現在的 JavaScript 除了用于 Web 前端編程(網頁編程),還能干很多事情,比如:

      • 開發網站后臺,這原本是 PHP、Java、Python、Ruby 等編程語言擅長的;
      • 開發 GUI 程序,也就是我們常說的帶界面的電腦軟件,比如 QQ、360、迅雷等;
      • 手機 APP,包括 Android APP、iOS APP;
      • CLI 工具,也就是不帶界面的命令行程序。

      2.2 Node.js 的組成 

      Node.js 運行時主要由 V8 引擎、標準庫和本地模塊組成,尤其是本地模塊的多少,從底層決定了 Node.js 功能的強弱。

      1) V8 引擎 

      V8 引擎就是 JavaScript 解釋器,它負責解析和執行 JavaScript 代碼。

      V8 引擎借鑒了 Java 虛擬機和 C++ 編譯器的眾多技術,它將 JavaScript 代碼直接編譯成原生機器碼,并且使用了緩存機制來提高性能,這使得 JavaScript 的運行速度可以媲美二進制程序。

      2) 本地模塊 

      Node.js 集成了眾多高性能的開源庫,它們使用 C/C++ 語言實現,比如:

      模塊 說明
      libuv 一個跨平臺的、基于事件驅動的異步 I/O 庫。但是 libuv 不僅限于 I/O,它還提供了進程管理、線程池、信號處理、定時器等其它功能。

      Linux 中一切皆文件,這里的 I/O 不僅僅包括文件讀寫,還包括數據庫讀寫、網絡通信(socket)等。

      nmp Node.js 包管理器,可以下載包、安裝包、卸載包、更新包、上傳包等。
      http_parser 一款由C語言編寫的輕量級 HTTP 解析器,用以支持 Web 應用開發。
      zlib 工業級的數據壓縮/解壓模塊,Nodejs 借助 zlib 來創建同步、異步或者流式的壓縮/解壓接口。
      OpenSSL 該模塊提供了經過嚴密測試的許多加密/解密功能,現代 Web 依賴這些功能來實現安全性,比如 SSL 協議和 https 協議。
      c-ares 異步 DNS 查詢和解析庫。

      Node.js 直接在計算機上運行 JavaScript 代碼,并且要賦予 JavaScript 強大的能力,所以它的本地模塊和瀏覽器中的運行時有很多大區別,甚至說幾乎沒有什么關聯。Node.js 幾乎完全拋棄了瀏覽器,自己從頭構建了一套全新的 JavaScript 運行時。

      3) 標準庫 

      本地模塊使用 C/C++ 編寫,而 Node.js 面向 JavaScript 開發人員,所以必須要封裝本地模塊的 C/C++ 接口,提供一套優雅的 JavaScript 接口給開發人員,并且要保持接口在不同平臺(操作系統)上的一致性。

      這套 JavaScript 接口,就是 Node.js 標準庫。標準庫是否優雅和強大,決定了 Node.js 的易用性,直接影響 Node.js 的市場表現。

      3. 用Docker搭建和使用Node.js環境 

      Node.js擁有3種官方鏡像:node:<version>、node:onbuild、node:slim。

      其中常用的是帶有版本標簽的,以及帶有onbuild標簽的node鏡像。 首先,在Node.js項目中新建一個Dockerfile:

      FROM node:4-onbuild
      EXPOSE 8888

      然后,新建server.js文件,內容如下:

      'use strict';
      var connect = require('connect');
      var serveStatic = require('serve-static');
      var app = connect();
      app.use('/', serveStatic('.', {'index': ['index.html']}));
      app.listen(8080);
      console.log('MyApp is ready at http://localhost:8080');

      之后,通過npm init命令來新建node項目所必須的package.json文件

      $ npm init
      This utility will walk you through creating a package.json file.
      It only covers the most common items, and tries to guess sensible defaults.
      See `npm help json` for definitive documentation on these fields
      and exactly what they do.
      Use `npm install <pkg> --save` afterwards to install a package and
      save it as a dependency in the package.json file.
      Press ^C at any time to quit.
      name: (node) node
      version: (1.0.0)
      description: node-sample
      entry point: (index.js)
      test command:
      git repository:
      keywords:
      author:
      license: (ISC)
      About to write to /Users/faxi/Docker/js/node/package.json:
      {
          "name": "node",
          "version": "1.0.0",
          "description": "node-sample",
          "main": "index.js",
          "scripts": {
              "test": "echo \"Error: no test specified\" && exit 1"
          },
          "author": "",
          "license": "ISC"
      }
      Is this ok? (yes) yes

      下面使用docker build指令構建node鏡像:

      $ docker build -t node-image .

      最后,創建并運行node容器:

      $ docker run -it -P node-image
      npm info it worked if it ends with ok
      npm info using [email protected]
      npm info using [email protected]
      npm info prestart [email protected]
      npm info start [email protected]
      > [email protected] start /usr/src/app
      > node server.js
      MyApp is ready at http://localhost:8080

      此時可以使用瀏覽器查看到MyApp應用的服務頁面。

      首先,使用docker ps指令查看端口綁定情況:

      $ docker ps
      CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
      7b6f666d4808 node-image "npm start" xxxago Up xx 0.0.0.0:32771->8888/tcp node-container

      如果只需要運行單個node腳本的容器,則無需通過Dockerfile構建鏡像,可以使用以下指令:

      $ docker run -it --rm --name my-running-script -v "$(pwd)":/usr/src/myapp -w /usr/src/myapp node:0.10 node your-daemon-or-script.js

      也可以參考node官方提供的最佳實踐:

      https://github.com/nodejs/docker-node/blob/master/docs/BestPractices.md

      總結

      分享到:
      標簽:主流 全過程 快速 腳本語言 部署
      用戶無頭像

      網友整理

      注冊時間:

      網站:5 個   小程序:0 個  文章:12 篇

      • 51998

        網站

      • 12

        小程序

      • 1030137

        文章

      • 747

        會員

      趕快注冊賬號,推廣您的網站吧!
      最新入駐小程序

      數獨大挑戰2018-06-03

      數獨一種數學游戲,玩家需要根據9

      答題星2018-06-03

      您可以通過答題星輕松地創建試卷

      全階人生考試2018-06-03

      各種考試題,題庫,初中,高中,大學四六

      運動步數有氧達人2018-06-03

      記錄運動步數,積累氧氣值。還可偷

      每日養生app2018-06-03

      每日養生,天天健康

      體育訓練成績評定2018-06-03

      通用課目體育訓練成績評定