从新认识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,写一个 文件浏览器,来实践一下 ,这些技术是 怎么 结合 的?

以上 纯属我的 看法。

相关文章
相关标签/搜索