关于Nodejs开发桌面应用。NW.js 和 Electron 优缺点分析对比
从开发角度来说,选择用 nw.js 还是 election ,区别其实不是很大。大部分工作还是在自己的 javascript 和 HTML 上。
国内比较有名的,比如微信web开发工具、钉钉都是基于 nw.js 开发的
electron 相对来说比 nw.js 靠谱。有一堆成功的案例:
1. Atom 编辑器 2. Slack (那个独角兽公司)3. Visual Studio Code 4. WordPress 等等。。
优点:
1. 开源的核心扩展比较容易,目前是基于 node 6.x,加之现在 gyp 已经非常人性化了,使得c++ 和 js 搞基非常容易。
2. 界面定制性强,原则上只要是Web能做的他都能做。
3. 是目前最廉价的跨平台技术方案,HTML+JS 有大量的前端技术人员储备,而且有海量的现存web UI 库。大多都很靠谱。
4. 相对其他跨平台方案(如 QT GTK+ 等),更稳定,bug少, 毕竟只要浏览器外壳跑起来了,里面的问题不会太多 ,当然我也遇到过一些暗坑。
5.方便热更新。下载覆盖完事。当然这是所有脚本共有的优点。
缺点:
1.卡,启动慢,这可能是webkit的锅。毕竟一个浏览器要支持的功能确实有点多。
2.除了主进程 你可能还需要启动一些辅助进程来完成工作。而每当你新开一个进程,起步价就是一个nodejs的内存开销!
3.丢帧,这个最严重,可我已习惯了native 的丝滑. mac下感觉还可以 win下有点够呛。
4.打出来的包太大。(很显然,即便是一个空包,也至少包含了一个浏览器的体积)
nw.js 现在半死不活,弃坑吧。。 (除非你要兼容XP。。)codebye.com
| NW.js 0.16.0 | Electron 1.2.8 | |
| Project inception | 2011 | 2013 |
| Corporate Sponsor | Intel | GitHub |
| Licensing | Open Source, MIT License | |
| Browser Runtime | Chromium | libchromiumcontent |
| Node.js Version | 6.3.0 | 6.1.0 |
| Chromium Version | 52.0.2743.82 | 51.0.2704.106 |
| Entry Point | HTML or JavaScript4 | JavaScript |
| Bare Distribution Size | 139MB (52MB zipped) | 125MB (45MB zipped) |
| Windows Platform Support | Windows 7+ (x86 and x64) | |
| Windows XP Support | In LTS version (0.14.x) | No |
| Mac Platform Support | Mac OS X.9 + | |
| Mac OS X.6 | In LTS version (0.14.x) | No |
| Architecture Support | 32bit (Win), 64bit (Win/Mac) & arm (limited) | |
| Chrome Apps Support | Yes | No |
| Support of chrome.* APIs | Yes | No |
| Plugin Support | NaCL, Pepper | Pepper |
| Adobe Flash Support | via Pepper Plugin | |
| Mac App Store Support | Yes | |
| Windows App Store Support | Yes | Windows 10+ (details) |
| App signing | Yes | |
| Source Code Protection | V8 Snapshot1 | ASAR Archive Support2 |
| Auto-update | Unclear (module) | Mac/Win (thru Squirrel) |
| Crash Reporting | No | Yes |
| Kiosk Mode | Partial (Buggy on Mac5) | |
| PDF Viewer | Yes | Using pdf.js |
| Native Node Module Support | Yes | |
| SSL Client Certificate | Yes | Partial (details) |
| Print Preview | Yes | No |
| DevTools Extension Support | Yes | |
| Debugging | DevTools + extensions | Dedicated Devtron Module |
| Integration Testing | ChromeDriver & WebDriver | Dedicated Spectron Module |
| Windows Installer | Yes (nw-builder) | Yes (external module) |
| html5test.com Score | 492 | |
| Octane 2.0 Score3 | 27205 | 27343 |
| Issue Resolution Time6 | ||
| Open Issues6 | ||
| GitHub Trends | ||
| Open Codecs/Containers | Vorbis, Theora, Opus, VP8, VP9, PCM, Ogg, WebM, WAV | |
| Licensed Codecs | MP3, MP4, H.264, AAC7 | |
关于Nodejs开发桌面应用。NW.js 和 Electron 优缺点分析对比的更多相关文章
- 用Node开发桌面应用:NW.js和Electron
NW.js和Electron对比:[http://tangiblejs.com/posts/nw-js-electron-compared] NW.js:[https://nwjs.io/] Elec ...
- nw.js桌面软件开发系列 第0.1节 HTML5和桌面软件开发的碰撞
第0.1节 HTML5和桌面软件开发的碰撞 当我们谈论桌面软件开发技术的时候,你会想到什么?如果不对技术本身进行更为深入的探讨,在我的世界里,有这么多技术概念可以被罗列出来(请原谅我本质上是一个Win ...
- 中文代码示例之NW.js桌面应用开发初体验
先看到了NW.js(应该是前身node-webkit的缩写? 觉得该起个更讲究的名字, 如果是NorthWest之意的话, logo(见下)里的指南针好像也没指着西北啊)和Electron的比较文章: ...
- NW.js桌面应用开发(一)
NWjs中文网 Electron中文网 一些需要了解的历史与特性,其实就是 NW.js 和 Electron的争议,建议还是亲自阅读一下各自的官网说明 1.下载SDK版工具 从淘宝NPM镜像下载,速度 ...
- 使用NW.js封装微信公众号菜单编辑器为桌面应用
开发微信公众号的朋友都会遇到一个常见的需求就是修改自定义菜单,如果每个人都去开发这个不经常使用的功能确实有点浪费时间.前段时间在github上找到一个仿企业号的菜单编辑界面,结合微信的C# SDK开发 ...
- 使用Nwjs开发桌面应用体验
之前一直用.net开发桌面应用,最近由于公司需要转为nodejs,但也是一直用nodejs开发后台应用,网站,接口等.近期,需要开发一个客户端,想着既然nodejs号称全栈,就试一下开发桌面应用到底行 ...
- Nwjs开发桌面应用
使用Nwjs开发桌面应用体验 https://www.cnblogs.com/zhupengfei/p/8906131.html 之前一直用.net开发桌面应用,最近由于公司需要转为nodejs,但也 ...
- nodejs的桌面应用(electron)
最近发现nodejs可以做桌面应用,主要是之前的同事在搞,我也要稍微研究下不能落后啊,基于nodejs的桌面应用,常用的就是nw.js和electron,nw出的比较早,资料比较多,bug也很多,它的 ...
- 使用nwjs开发桌面应用之Hello,World!
今天发现原来JavaScript也可以用来开发桌面应用程序,顿时有一种很牛逼的感觉,于是马上就开始了Hello,World!,感受一下JavaScript的强大. 可以用来开发桌面应用的js框架有三种 ...
随机推荐
- CDH版本大数据集群下搭建Hue(hadoop-2.6.0-cdh5.5.4.gz + hue-3.9.0-cdh5.5.4.tar.gz)(博主推荐)
不多说,直接上干货! 我的集群机器情况是 bigdatamaster(192.168.80.10).bigdataslave1(192.168.80.11)和bigdataslave2(192.168 ...
- Java的符号扩展与零扩展
byte b = -127; System.out.println(b); // -127 int b1 = b & 0xff; System.out.println(b1); // 129 ...
- 【转】Hadoop vs Spark性能对比
原文地址:http://www.cnblogs.com/jerrylead/archive/2012/08/13/2636149.html 基于Spark-0.4和Hadoop-0.20.2 1. K ...
- 在Windows家里杀死一个偷端口的家伙
今天,写项目了,写了好多代码,然后运行成功,但是返回的信息啥的还有代码整体的逻辑有点问题,于是就review了代码,改了些东西,然后再次启动服务,但是,问题来了:Address already in ...
- mongodb3.4.15集群搭建
机器:ubuntu 2台 ip: 192.168.0.131 host1 192.168.0.132 host2 安装mongodb sudo apt-key adv --keyserver hkp: ...
- 【LeetCode题解】237_删除链表中的节点
目录 237_删除链表中的节点 描述 解法 思路 Java 实现 Python 实现 237_删除链表中的节点 描述 请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除 ...
- CocoaPods管理第三方
之前听伟哥说用CocoaPods做第三方库的管理很方便,今天看了下自己做了下感觉确实不错.下面开始,Let's go!! 1.安装CocoaPods之前,先确保本地有Ruby环境,因为CocoaPod ...
- c#基础学习(0630)之面向对象总习
面向对象总习 1.封装.继承.多态 ****字段:存储数据,访问修饰符应该设置为private私有的 ****属性:保护字段,对字段的取值和赋值的限定 ****new关键字: 1.在堆中开辟空间(引用 ...
- Mac下显示和隐藏隐藏文件的命令
打开终端,输入: 1.defaults write com.apple.finder AppleShowAllFiles -bool true 此命令显示隐藏文件defaults write com. ...
- 微信小程序,关于设置data里面的数据。
关于设置 data里面的数据 wxml: <view>{{userName}}</view> data: { userName:'张三', } 有两种方法 方法一:直接使用点关 ...