关于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框架有三种 ...
随机推荐
- Word2vec 理解
1.有DNN做的word2vec,取隐藏层到softmax层的权重为词向量,softmax层的叶子节点数为词汇表大小 2-3的最开始的词向量是随机初始化的 2.哈夫曼树:左边走 sigmoid(当前节 ...
- elasticsearch(三) 之 elasticsearch目录介绍和配置文件详解
目录 elasticsearch 配置 目录详情 (config) 配置文件 elasticsearch.yml 配置集群名称(cluster.name) 配置 network.host 更改数据和储 ...
- haproxy配置文件详解--转
原始出处:http://itnihao.blog.51cto.com/1741976/915537 #/usr/local/sbin/haproxy -f /etc/haproxy/haproxy.c ...
- Ripple(瑞波币)validator-keys-tool 配置验证器
目录 Ripple(瑞波币)validator-keys-tool配置验证器 验证器密钥工具指南 验证器密钥 验证器令牌(Validator Keys) public_key撤销 签名 Ripple( ...
- git常用命令小记
git status 查看缓存区和工作区的状态 +表示N个新文件 ~表示N个修改 -表示N个删除 两组的时候前面的是暂存区,后面的是工作区 git add fileName 变更文件状态(工作区--& ...
- Tornado简介
Tornado是一个具有强大异步功能的Python Web框架. Hello World 使用pip安装tornado: pip install tornado 编写控制器: import torna ...
- VS2013 项目项目安装和部署
版权声明:本文为博主原创文章,未经博主允许不得转载. 1.release 模式下生成项目 2.解决方案 右键 添加 新建项目 其他项目类型 安装和部署 3.操作前将待打包项目发布路径指向上述 ...
- [日常] Linux使用diff来比较目录
Linux diff比较两个目录的不同: diff dir1 dir2 -urNaq -a --text Treat all files as text. -u -U NUM --unifi ...
- [PHP] 重回基础(Array相关函数)
使用函数array_keys(),得到数组中所有的键,参数:数组 $arr=array(); $arr['one']="one"; $arr['two']="two&qu ...
- EF6 CodeFirst代码迁移笔记
由于EF7只支持codefirst only.朕无奈被微软逼上了梁山学一下codefirst,就算是为明年做准备吧.写的这些网上大致都有,基本没啥 新内容, 迁移 使用自动迁移 Enable- ...