这几天在构思项目,研究了一下Electron,记录下来。

说起WEB桌面程序,当前最火的就是Electron了。

Electron的架构用一句话总结,就是一个main.js进程加上一个或数个chrome窗口,每个窗口都包含一个独立的Node.js。

这样的架构,使得这种桌面应用必须是一个(或数个)单页面应用(SPA),而这个SPA还拥有访问本地API的能力(Node.js)。

一方面,程序对前端框架的依赖必然加强,想再JQuery打天下就不那么容易了;另一方面也大大加强了前端框架的能力与版图。

这样它把前端与后端的战火,从服务器蔓延到了桌面。使得JS解决一切的宗旨,又得到了贯彻。

相比较这种新的架构,还有三种早已出现在WEB桌面程序。一般基于嵌入式Chromium框架(CEF)。

一种就是CEF+远程访问。这种程序体验极差,就是个单页面的网站。

值得注意的是Electron+远程访问,是极度危险的,只需劫持JS,则可利用Node.js为所欲为。

另一种就CEF+本地服务。本地服务常见的有.net和java,也有用PHP和Node.js的。

这种组合与前一种组合体验类似,而且体积臃肿,但胜在页面延时较小。

最后一种就是CEF+本地资源+远程API接口。这种是手机WebAPP的常用模式。体验尚可。

和这些架构比较起来,Electron的体验和能力上得到很大的增强,但是有着天生的弱点。

一、安全性,这是脚本语言的弱点

二、投入大,SPA不同于原有的WEB开发,必然导致新的投入和旧资源的浪费。

三、体验,虽然WEB应用的体验在不断增强,但天生就必然限制在chrome窗口中

理想当中的混合应用应该是Electron作为模块嵌入其它编译型语言中,不必追求JS解决一切,更不要追求一切皆是WEB。

强强联合,团队作战的效果远大于语言或平台大一统带来的好处。

比如这个go-astilectron项目,使用GO语言开发主进程代替main.js,弱化JS的依赖是个不错的想法,但还远不成熟。

(完)

pythonelectron桌面开发案例_Web桌面应用框架1:Electron与WEB桌面应用程序开发及其它...相关推荐

  1. Web微信小程序开发(一)

    微信作为一种通讯工具的使用可以说是越来越频繁了,随之兴起的也有很多,比如服务号,小程序,但是似乎小程序更能符合大众的心意,在面临着越来越多的APP的普及,大家更多的是希望手机上的APP能越来越少 所以 ...

  2. java高级框架应用开发案例教程_Java高级框架应用开发案例教程:struts2+spring+hibernate PDF...

    资源名称:Java高级框架应用开发案例教程:struts2+spring+hibernate PDF 第1章 struts+spring+hibernate概述 1.1 框架概述 1.2 struts ...

  3. HiApp移动开发案例,HTML5移动框架,看了绝不后悔

    好久没发表过文章了,由于最近换工作,由webapp转html5+Android开发了.今天是给大家介绍一个html5 app开发案例,现在移动开发越来越多,大家选择起来也非常困难,而且跨平台框架在各种 ...

  4. 手把手教你WEB套打程序开发

    WEB套打可选方案不多,理想的更少,利用免费控件Lodop+JavaScript实现精确套打,算是较为经典的选择.这种方案其实比较简单,利用一个htm文件就可以实现模板设计过程,几乎是"空手 ...

  5. 基于mpvue框架的仿酷狗音乐小程序开发的微信小程序(Robot Music)

    1. 项目实现 由于是小程序未认证所以只能添加体验者才能预览 项目github地址:https://github.com/historytiger/wx- 请下载放开发者工具食用 数据来源于网络大佬免 ...

  6. 个人微信小程序开发案例(附带源码以及教程,不懂后台小程序可提问)

    文章目录 划重点了 公众号二维码 小程序二维码 小程序原型图片 YOLO BMI 指数体脂率计算 划重点了 有什么好的改进和优化可以小程序YOLO 私信客服联系我哦 如果想要源码的话,可以关注dh随笔 ...

  7. Vue开发跨端应用(四)electron发布web应用并打包app

    命令: npm run build:web dist里面web就是打包好的网页代码 我们可以复制dist/web文件到my-app/www目录下: 进入my-app目录下运行命令: cordova r ...

  8. 盘点 | 跨平台桌面应用开发的5大主流框架

    受益于开源技术的发展,以及响应快速开发的实际业务需求,跨平台开发不仅限于移动端跨平台,桌面端虽然在市场应用方面场景不像移动端那么丰富,但也有市场的需求. 相对于个人开发者而言,跨平台框架的使用,主要为 ...

  9. AT32F437基于LVGL的桌面显示案例

    AT32F437基于LVGL的桌面显示案例 示例目的 提供AT32F437基于LVGL V8的桌面显示案例. 注:本示例代码是基于雅特力提供的V2.x.x板级支持包(BSP)而开发,对于其他版本的BS ...

最新文章

  1. linux 检索全部文件中的中文词汇,linux – 获取所有文件中的单词计数
  2. 转:小城也有好去处(3):云南建水 - 丽江大理之后第三城
  3. 10万元奖金语音识别赛进行中!CTC 模型 Baseline 助你轻松上分
  4. ubuntu 将某个目录下的文件复制到_命令行 将多个特定文件从一个文件夹复制到另一个文件夹...
  5. linux udhcpc指令,dhcpclient和udhcpc区别和用法
  6. 《计算机应用基础》试卷,《计算机应用基础》试卷(二)
  7. 万亿安防市场前景可期 未来四大发展趋势分析
  8. javascript arguments(转)
  9. Linux文本处理(grep,sed)
  10. python 抢红包 不越狱_这个Python脚本牛逼了,秒抢红包and无视撤回消息
  11. git提交过滤target文件 idea_详解如何在IntelliJ IDEA中使用.ignore插件忽略不必要提交的文件...
  12. 《众妙之门——用户体验设计的秘密》一1.4 良性的问题解决案例
  13. 2015年最新Scala语言视频教程
  14. MT4自带30项指标介绍
  15. python卡尔曼滤波室内定位_基于卡尔曼滤波的室内定位方法设计
  16. 远程桌面连接(远程控制另一电脑)的详细步骤
  17. 迭代器 iter()函数与next()函数 for...in...循环的本质
  18. 什么是node.js
  19. Mac电脑的效率超高的输入法,自动切换输入法
  20. 陈春花发布声明,这场流量狂欢该到了收尾的时候

热门文章

  1. c语言马踏棋盘编程分析,C语言马踏棋盘实现
  2. linux db2删除表字段命令,DB2—alter追加/删除/重置column操作
  3. 81章 老子1章到_老子道德经全文翻译(全81章)之一
  4. 打通BurpSuite与Python之间的任督二脉的插件—Burpy
  5. 传奇服务器都有哪些文件,传奇服务端MonUseItems文件夹什么用?
  6. CSDN在线公开课日历【十月】
  7. python爬虫(13)爬取百度贴吧帖子
  8. 后台管理框架 :花裤衩 / vue-admin-template
  9. C/C++安全编程条例
  10. 企业开发的困境与变局