Node-Webkit能够做什么呢?

发布于 2021-12-01 09:37:01 字数 467 浏览 663 评论 11

我是一个新手(真的很新。。。),所以如果下面问到大神们不喜欢的千万别喷我!!!

这两天我看到了haXe这个项目,然后我就来了兴趣,我看了一些资料,接着我又了解到node-webkit和CEF这些软件,但是我在了解的过程中产生了一些迷惑,我不知道这里有没有大神能够给出一个很好的解答:

(1)node-webkit、haXe、CEF是不是都可以用来制作桌面应用,有什么优势,现在的瓶颈是不是还是性能问题(我知道他们本质上都是个浏览器的内核)。他们可不可以调用操作系统本地的一些API?或者动态链接库?这一点也是我比较关心的,因为这样可以更好的扩展,灵活性高,应用可能也比较广。

(2)如果作为一种界面制作技术,node-webkit、haXe、CEF和Flex各自的优势和缺点?

(3)Node.js不是应该应用在服务器端的,现在出现在node-webkit中。那Node.js在node-webkit客户端应用中扮演了一个什么样的角色?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(11

傾城如夢未必闌珊 2021-12-05 12:47:20

node-webkit 怎么对异常统一处理???

坚持沉默 2021-12-05 12:47:06

那你有那些可以推荐的?

冷默言语 2021-12-05 12:46:47

@hangvo

HTMLayout可以支持不规则窗口,而且非常方便,直接在背景里设置透明图像做背景就可以了,而且HTMLayout支持 APNG,即PNG动画。反而是传统浏览器要实现透明窗口非常麻烦。

这是一个HTMLayout实现桌面宠物的示例:http://www.oschina.net/code/snippet_987851_18905

这里有教程:HTMLayout 与分层窗口的结合

柠檬 2021-12-05 12:46:18

利用HTMLayout构建的界面会不会有什么限制?可以订制不规则窗口吗?

想挽留 2021-12-05 12:45:59

node-webkit,CEF之类就是把服务器、浏览器全部打包封装一下搬到客户端电脑上。
优势是支持HTML5,现有的很多JS框架,相对于调用系统自带的IE内核(webbrowser控件)不会遇到太多浏览器兼容性问题(因为自带一个浏览器),缺点是体积太大,当然对于不在乎体积的软件这也许不是最大的问题, 但浏览器引擎都有个致命的弱点,就是难以完全避免内存泄漏,这个表现在桌面软件上就是你的界面不断切换打开较多网页时内存会只增不减,这对桌面软件是致命的问题, 

但对浏览器不是问题,例如chrome,为了完全解决这类问题,他每个网页都是创建一个新的进程,关闭网页就关闭进程可以完全释放资源。但这对桌面软件就非常麻烦了,进程间虽然可以通信,但交互与进程管理都非常麻烦,也许看网页,放个小电影,玩个HTML5小游戏你不会非常在乎资源占用,但对大多数桌面软件这就不行了。 

桌面软件的运行环境不是服务器,体积与资源占用、启动速度都需要考虑,nodejs他毕竟是为服务器设计的一个技术,即使是在服务端他仍然不能成为任何时候最好的选择,更不要说客户端了,他在服务端的优势有很多,但这些都不表示他在桌面开发上会表现很好。 

用javascript 就可以写全部的东西,其实也可以反过来说,全部的东西都要用JS写,js虽然很不错但所有事用js来做就是很痛苦的事,谁写谁知道。 

而且从使用这些技术的软件来看,感觉付出这么大的代价,加上这么大的体积,却没有带来太多惊炫的界面。在网上经常能看到种种源码:仿这个仿那个,而这些被争相模仿的界面很少有使用webkit之类技术做的,这个与我们去使用webkit的初衷就不太对称了,举一个例子 豆瓣FM 的桌面客户端,用到了QT,Webkit,Python都是时尚前沿的技术,看一下运行起来的界面 

哑剧 2021-12-05 12:40:40

node-webkit和heX只用html/css写界面就可以了,然后处理逻辑神马的可以扔给C/C++,最后再用nodejs链接起来,可以这样理解吗? 那个CEF可能还需要包装一下是什么意思,这个我有点不太懂。

陌上芳菲 2021-12-05 12:17:07

我觉得你要说的不是haXe,haXe是跨语言平台的语言,而是hex,有道的html5桌面化方案

1. node-webkit和hex都是把nodejs和chromium核心组合,而CEF是一个chromium内嵌组件用c或c++调用。nodejs可以操作系统api,比如文件,数据库等等。而动态链接库c和c++可以直接调用,nodejs只能支持c++ addon,由node-gyp编译,不是任意的

2. 作为界面技术而言的话,node-webkit,hex都是html5+css3,CEF也是但是可能还需要c或c++写界面包装一下(像豌豆荚),而flex是flash。

3. nodejs不是非得运行在服务端。比如你可以在cmd里命令使用一些模块,最常见的就是前端解决方案grunt,就是命令行应用。因而,显然nodejs可以为node-webkit提供逻辑支持,而html和css是界面支持。

谁的新欢旧爱 2021-12-05 11:57:47

node-webkit 怎么跟系统连接的传感器通信?

疑心病 2021-12-04 22:56:05

怎么个方便,能不能解释一下呢???

千笙结 2021-12-02 14:31:26

方便

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文