從新認識HTML,CSS,Javascript 之node-webkit 初探

今天咱們來系統的、全面的 瞭解一下前端的一些技術,將有助於咱們寫出 更優秀的 產品 出來。javascript


什麼是HTML?css

HTML 是用來描述網頁的一種語言。
html

HTML 包含一些根節點,子節點,文本節點,屬性節點,組成,前端

它經過一系列預約義標籤來描述網頁結構,如: <title>This is title</title> ,這個代表該網頁的標題是 This is titlehtml5


什麼是CSS?java

CSS 指層疊樣式表 (Cascading Style Sheets),它描述瀏覽器顯示如何顯示html元素。
node

看下面代碼,瀏覽器 將會 以 20px綠色字體   顯示 p標籤中的文本節點android

p{font-size: 20px;color: green;}

這些html元素 、css樣式 是由W3C組織制定規範;ios

而後由不一樣瀏覽器實現,全部你會看到 同一個網頁 頁面,經過不一樣的 瀏覽器查看,顯示會有一些差異。css3


下面圖片是說明 瀏覽器 如何解析 html 和 css的:


html 就是一個文本文件,

一、瀏覽器經過http 請求 服務器,把html文檔 下載下來

二、把html解析成dom樹,同時提供dom接口,方便其餘編程語言操做dom樹,如:javascript

三、下載並,解析css樣式規則

四、把樣式規則依附在html元素上(以css選擇器做爲依賴)

五、渲染dom樹

六、顯示


爲何說html,css,javascript 是 跨平臺的?
html,css,javascript 其實 就是 一個文本文件,而後經過瀏覽器 不一樣的引擎 去 解析相應的 代碼 來 執行,

因此 只有 實現某個 平臺 下 的 瀏覽器就好了 ,就能夠在 這個平臺上 使用 這個 Web Project,聽起來 是否是 以爲 頓悟了。


而java 跨平臺 的原理 則是 ,把 java源文件 翻譯成 與 平臺無關的class文件,而後經過 JVM 去 加載 執行。

值得一提的是 JVM 也是 一個 規範, 使用普遍的JVM 是 Java HotSpot ,若是你能力夠強的話,能夠基於openjdk

來 開發 本身的jdk ,來實現jdk級別的 優化。


如此分析,是否是以爲HTML、CSS、Javascript 很可愛,它其實就是一個規範,

如今HTML5 、CSS3 ,EcmaScript6 提出不少 新的 特性,概論,若是一旦 瀏覽器獲得了更好的 支持,那就移動Web開發 將成爲 主流, 而 android,ios ,這類原生的程序 將會慢慢 的減小。


想象一下,經過瀏覽器,就能夠實現全部的請求,好比 聊天 ,看視頻,上網方式 將會變得很是 優美,不是麼。



好吧,接下來 說一下 node-webkit,個人理解是 它是一個nodejs引擎+ webkit 引擎。

經過nodejs引擎 解析 js ,而經過 webkit 引擎 解析 html 、 css ,因此在網頁中能夠嵌入 nodejs 的代碼 。


有些html 、 css、js的經驗的話, 會很平滑的過渡,來開發一些東西。

那咱們來 掀起node-webkit的蓋頭來 吧。


打開nw.exe 來看看 


乍一看 ,就是 谷歌瀏覽器啊,好吧,來點乾貨吧。


index.html

<!DOCTYPE html>  
<html>  
<head lang="en">  
    <meta charset="UTF-8">  
    <title>what's node-webkit?</title>  
    <style>  
        h1 {  
            color: red;  
        }  
  
        p {  
            font-size: 20px;  
            color: green;  
        }  
    </style>  
    <script>  
        console.log('當你看到這段文字,說明這段代碼被nodejs引擎,解釋,執行了');  
        console.log(this);  
    </script>  
</head>  
<body>  
<h1>This is a nw app.</h1>  
  
<p>它是一個nodejs引擎+ webkit 引擎 </p>  
  
</body>  
</html>

package.json

{  
    "name": "nw-frist",  
    "version": "0.0.1",  
    "main": "index.html"  
}

打包成zip格式的文件,而後執行 nw.exe nw-first.zip 來運行它 




第一圖 是用 nw 去執行 ,第二圖是在Google Chrome 中查看,

能夠看出 ,效果 是同樣的。


好吧,來添加點不同的。

<!DOCTYPE html>  
<html>  
<head lang="en">  
    <meta charset="UTF-8">  
    <title>what's node-webkit?</title>  
    <style>  
        h1 {  
            color: red;  
        }  
  
        p {  
            font-size: 20px;  
            color: green;  
        }  
    </style>  
    <script>  
        console.log('當你看到這段文字,說明這段代碼被nodejs引擎,解釋,執行了');  
        console.log('this : ', this);  
        console.log('global : ', global);  
    </script>  
</head>  
<body>  
<h1>This is a nw app.</h1>  
  
<p>它是一個nodejs引擎+ webkit 引擎 </p>  
  
</body>  
</html>


能夠看到咱們輸出 global 對象的信息,

這意味着node-webkit  javascript 運行環境 是 nodejs,

那 咱們就能夠在 html script標籤中 使用 nodejs 進行 編程,包括,讀取本地文件,進行網絡請求,訪問本地硬件設備。。。等等 ,這是否是 意味着能夠用來 開發 本地程序 ?答案 固然是 true ,並且能夠 跨平臺 ,就如 上面分析的同樣。咱們可使用html5 、css3 開發 很是優美,交互更棒的 本地 web app ,有大量的 nodejs 包 和 js lib 使用, 試想一下 用 c++ , vb ,Python 開發一個 漂亮的本地程序,要自定義 一些 組件, 那是多麼 麻煩。


有時間咱們將經過  node-webkit,寫一個 文件瀏覽器,來實踐一下 ,這些技術是 怎麼 結合 的?

以上 純屬我的 看法。

相關文章
相關標籤/搜索