rawjs下Electron开发移动APP:谈web前端演变

简述黑群晖的DOCKER镜像去哪下载? 腾讯云/阿里云:仅限其云服务器内使用(如 https://mirror.ccs.tencentyun.com)[citation:5][citation:8]轩辕镜像:https://docker.xuanyuan.me(免费版)[citation:5][citation:7][citation:11]新手推荐:直接通过群晖 Docker GUI 搜索下载(配置国内加速源提升速度)[citation:1][citation:7]。核心原则:确保镜像来源可信、架构匹配,并合理利用加速服务解决网络瓶颈。 阅读详情

本文关键字:web前端演变的历史,vue,react,pwa,spa,mpa

在《用开发本地tcpip程序的思路开发webapp》等许多文章中我们都讲过web/webstack的原型(那文主要讲前后端分离的web开发思路),如果说一种ui代表一种app,(我们用app特指那种需要下载/安装/运行,区别于用浏览器打开作为的那种桌面和移动app,它们一般寄宿在os上用native rendered gui库发明,体验为无延迟的UI和APP,可以调用本地的服务),那么或许在2015年前就从来没出现过什么严肃意义上的web app ui/web app,只有page ui和网站,虽然我们谈webapp已经很多年但其实它是个新事物,为了应付日渐庞大的 Web 页面,经过优化的 JavaScript 引擎已经可以和一些编译语言的速度相提并论已经不仅是用js实现交互就行了。因此用web打造app的思路出现了,从网站到webasapp而这二种需求看似共享同样的基础,但面向它们的设计都不相同,web一开始就被设计成静态,保有鲜明的内容属性而非可编程属性(语义,routerable,可退回/可前进,页面内容可索引可爬取可seo),因此它要变身“某种用html表达的app”,类似native render ui/native app(甚至整合它们形成多端合一的app:一云多端的OS+多端合一的APP,universal webui+siteui app)。这不但要求web本身规范变(w3c),而且要求支撑现有web运行起来的那些东西也要变,甚至变化过后,会破坏现有的web本身。

从siteui page到webapp

首先是硬件和OS平台要为支持它们(而产生变化),webos有chromeos和html手机(基于 Firefox OS 的 KaiOS据称全球第三大移动os)这种,包括最近出来的fuschia。

然后是web本身的富网页技术(基于flash的内容创作型工具被面向程序员的js技术代替)要到位,用js写成用浏览器跑出来的ui,会跟真正的原生UI在体验上相差很大比如延迟高没有长链不能调用摄像头无法推送无法离线,这一般来自浏览器或应用的“webview”支持,(虽然说现在的浏览器有localstorage,websocket,webgl,etc.近二年又有service worker.但还是不够)因此要求增强浏览器本身的api(一般来说,正常的浏览器page运行在沙盒里没有权限调用本地api,而特制的浏览器如electron这种会面向“发明webapp”的需求保留一些特权API,,这也是它经常被apple mas禁止的原因,微信那个浏览器也是增强了私有 api的,实际上,在w3c规范之上定制浏览器这种行为就破坏了web的应用形式,故提高webapp体验的同时又不致于破坏现在的web这是一对矛盾)

webapp的意义:
(这个技术如果成立,web ui可以完全代替渲染原理的远程桌面形式的remote app,真正实现原生不光跨端甚至跨云的UI:我们知道,远程UI的原理大部分都是投屏技术这丝毫不原生,云没有自己的原生UI与APP技术:webapp与容器正在填补这个空隙,在前面一些文章中我们多次提到远程APP这种云原生APP的需求,曾经我追求这样的统一本地和远程的appstack《cloudwall:一种真正的mixed nativeapp与webapp的统一appstack》,但现在看来:正是桌面早已成一套的情况下原生云UI都做不到成为规范,,所以导致现在都没有“universal desktop/web app”)

最后也是最大的变化还是语言层上这种appstack本身和开发这种WEBAPP的范式上(因为前端始终是面向程序员的而不仅是内容制作),事情发生在2015年之后,产生了将web ui作为app ui的技术潮流,并由此诞生了很多 js框架。

我们在前面说到框架,往往是基于对整个ola(os/langsys/applicationdomain)的修正增强补充。"js框架与浏览器/server环境"的关系跟"ola与框架"的关系一样,可以全方位去修补,因此,类似react,vue这样的东西其意义可大可小,可以是一个库也可是一个框架。虚拟DOM就是这类框架用来修补目前还跟不上webapp需要而作的框架内暂代方案。

webfront/webfront框架的前世今生

我们来谈下webfront/webfrontdev的前世今生(从网站前端到webapp)。首先是自适应、响应式设计,前后端用模版实现分离,DOM API最开始是一些JS框架要面向的全部东西(这些DOMAPI就是网站ui可编程的全部,注意从这里开始,我们严格区分siteui与webappui的说法),JQ这些能很好封装ajax和dom,然后出现了更高级一点的MVC,前后端通过json数据交换实现分离《用开发本地tcpip程序的思路开发webapp》,那种monolith websiteapp的局面(服务器脚本中套前端和模板)被打破,一切用到的展示数据都是后端经由过程异步接口(AJAX/JSONP)的方法供给的,前端尽管展示。。再后来就是MVVC,到这里开始,已有webapp的初级形式,一些网站前端开始谋求progssive(注意这里是网站用的Progressive)。与移动端UI结合,又有pwa,spa,mpa(这里才是webapp化之后的前后端分离技术),

对于webapp:spa,mpa基本上,它们的分离前后端处理方法是把原来后端做的事放到了纯前端,SPA 可以在客户端提供完整的路由、页面渲染、甚至一部分数据处理; 这往往需要一个比 jQuery 时代更重的 JavaScript 框架,来实现这些原本发生在后端的逻辑(在js下的web开发就是前后端分离又融合又融合又分离全栈技术方向会越来越统一,甚至环境都可以互换,ssr可以放到服务端做,而serviceworker也可以像cloudflare一样放到服务端做,被称为大前端,比如angular的出现,使得后端的mvc,和依赖注入等技术在前端也可用,但这只是例子之一)。而且使用虚拟DOM组件来代替raw DOM。----- 目前比较主流框架:vue、react、angular等框架。AngularJS 可以构建一个单一页面应用程序(SPAs:Single Page Applications)。Vue (pronounced /vjuː/, like view) is a progressive framework for building user interfaces.我们在《elmlang:一种编码和可视化调试支持内置的语言系统》《why elmlang:最简最安全的full ola stack的终身webappdev语言选型》讲过react和fp和虚拟dom组件(这里的组件并非指脚本语言二进制构件级的概念,而是指前端和浏览器DOM层级节点的“组件”,代表前端ui的统一可管理单元,类似桌面的widget),vue就是较它们更为轻量一点的方案,也有虚拟dom和组件,Vue 除了是 React/Angular 这种“重型武器”的竞争对手外,其轻量与高性能的优点使得它同样可以作为传统多页应用开发中流行的 “jQuery/Zepto/Kissy + 模板引擎” 技术栈的完美替代。angular,react,vue都属于纯粹用组件,用程序员的思路来管理前端,虽然这样可以使得html ui更像webapp ui,但这样会破坏web的原始语义(比如seo),所以普通网站不太适合用这套框架,这都是网站管理后端,工具化应用用的。

大前端,这就有点像游戏引擎下开发游戏APP的思路了(这里是逻辑渲染引擎)。virtualdom就是从chrome真实渲染引擎中再建立一套编程用的场景管理和渲染实体/节点。而游戏UI/传统桌面GUI都是组件管理和组件逻辑,这个组件可以是程序上的componet也可以是可视的widget,组件就是变web html模板元素为传统的gui方式进行开发(template based ui变成了带状态的可编程ui widgets)。

PWA 方案(pwa+轻度spa)更接近于 Web 的方式,它是 Web 的增强而不是替代。PWA 一词出自 Alex Russell 的 Progressive Web Apps: Escaping Tabs Without Losing Our Soul,构成 PWA 的标准都来自 Web 技术, 它们都是浏览器提供的、向下兼容的、没有额外运行时代价的技术。 因此可以把任何现有的框架开发的 Web 页面改造成 PWA,而且与 SPA 方案不同, 没有强组件化机制,因此不需要一把重构可以逐步地迁移和改善。

Progressive 是指 PWA 的构建过程。Service Worker 是一个特殊的 Web Worker,PWA 对性能的提升主要靠 Service Worker(cloudflare workers用的类serverless云函那套),它是在传统的 Client 和 Server 之间新增的一层。性能提升程度取决于这一层的具体策略。例如:它可以提供缓存服务,通过service worker在后台更新下载实现页面离线也可以浏览(如material design),加速应用程序渲染,并改善用户体验。

SPA:得益于ajax,我们可以实现无跳转刷新,又多亏了浏览器的histroy机制,我们用hash的变化从而可以实现推动界面变化,纯粹依赖原生浏览器环境,而无须用到vue,react组件里那些重度方案。

更多etc…

electron开始webapp

虽然web是本身跨平台跨语言的,但它并非严格跨端的,上面说到其存在多种浏览器以及内置浏览器的APP(如微信小程序以微信为宿主)的具体实现形式,这些依然需要在js框架层进行适配,web应用(包括webapp为前端的形式的整个web)都一般有明显的前后端分离做成“一云多端”结构,后端一般是传统意义上的普通网站,(你可以在后端托管具体端,比如小程序端的前端资源文件,和提供小程序框架性的服务API。当然如果是管理性后端你也完全可以可以做成webapp形式),前端则对应PC/mobile上原生浏览器网页,pwa page(ES5起兼容的普通浏览器pwa+spa那套),webapp spa/mpa,应用内的小程序,H5(这货也可以理解为原生浏览器),等多种形式作为UI端和客户端。----- 这些客户端共享webfront技术、w3c规范虽然不是严格意义上真正的跨端,但已经做得差不多了,而vue,react等框架用“AST,渲染引擎,bridge,runtime等抽象中间层”进一步实现了“框架和开发层跨端”,(这个跨端才是跨各种运行js的浏览器实现而不是传统意义上的跨OS) ---- ---- 也干脆出现了一些“跨服务商的webapp引擎”,如小程序开发框架,开源小程序引擎,在中国主要是一些电商系和外卖系移动APP的前端,其本质无外乎内置了自己的浏览器,加上vue封装的小程序引擎,处理“提供一个小程序的宿主运行环境(如微信小程序的运行环境:分成渲染层和逻辑层,WXML和WXSS工作在渲染层,JS脚本工作在逻辑层),并植入自己业务的服务性API”的东西,及更多其它事情。

跟普通浏览器环境一样,微信内置浏览器一样,electron也是一种端,它提供了环境(整个v8服务,及它自己特有的一些api和扩展),支持严肃和纯粹,追新的webapp创造,,electron可嵌入显示普通网页和webapp,你也可以用electron做pc小程序也可以做移动小程序,electron下的小程序也不是普通网页套个electron壳(比如我要做个blog客户端就是给个主页逻辑给electron),而是网页意义上真正的app化。

跟它们不一样的是,electorn还提供了devstack(开发,语言支持,注意这并不是js而是更强大的nodejs/包结构和可开发生态),框架方面你还需要vue等。vue和nodejs.还有vue-electron这样的封装,通过webpack生产webapp打包及流程自动化,产生支持普通浏览器js的vue引用。


下文我们就准备使用raw api,使用electron提供一个小程序的宿主运行环境,配合简单后端,打造我们的移动/PC小程序:一个类《打造小程序版本公号和自托管的公号》miniblog的客户端。利用它发明多端合一的“小程序”可免去依附于微信这样的环境(微信小程序审核很费事。一点社交性质,个人版的小程序博客带评论都不允许。为免责关注程序而不是内容)。

黑群晖5.2-5592系统安装镜像 黑群晖5.2-5592系统安装镜像,可支持ISO刻盘安装或者U盘启动安装 立即下载

相关推荐

黑群晖 ,DS918 6.21直接硬盘安镜像(完美运行,主板必须改为UEFI)蜗牛星际

黑群晖 ,DS918+ 6.21版直接硬盘安装镜像文件(完美运行,主板必须改为UEFI)蜗牛星际。压缩包内自带img写盘软件,直接写入硬盘即可使用

自己电脑中安装黑群辉NAS

我是遇见了卡在45%的情况,我重启后继续安装就好了,如果长时间卡在一个地方,我们可以直接重启试试。

Jason_WangYing的博客 1万+

黑群晖稳定版本软件:DS918+6.21镜像、DiskGenius\群晖助手nology-assistant.exe\Image

黑群晖稳定版本软件:DS918+6.21镜像、DiskGenius\群晖助手nology-assistant.exe\Image

SSH连接黑群晖下载Docker镜像

Docker镜像下载,SSH下载,群晖Docker注册失败

ljp1112的专栏 3281

黑群晖老机器专用引导和镜像

黑群晖老机器专用引导和镜像支持n270 32位 黑群晖老机器专用引导和镜像

深入解析CRC16查表法:从原理到Modbus协议实践

本文深入解析了CRC16查表法的核心原理与实现,重点阐述了其“空间换时间”的优化思想。通过对比直接计算法,详细说明了查表法如何通过预计算表格将计算速度提升数十倍,并提供了完整的Modbus CRC16查表法代码生成、解析及实战避坑指南,帮助开发者在嵌入式及工业通信场景中高效实现可靠的数据校验。

weixin_29166013的博客 556

1.3 小白黑群晖系统安装:基于arpl、引导镜像 两种方式教程(含洗白)

本文详细讲述了两种黑群晖系统安装的方法:基于arpl方式安装(含洗白)、基于现有引导方式安装(含洗白)

国庆的博客 3万+

【深度学习】普通卷积、DWconv(逐深度卷积)与PWconv(逐点卷积)以及DSconv(深度可分离卷积)

深度可分离卷积(Depthwise Separable Convolution)通过将常规卷积分解为逐通道卷积(Depthwise)和逐点卷积(Pointwise)两步,显著减少了参数量和计算成本。常规卷积同时提取空间和通道特征,而深度可分离卷积先对每个通道单独进行空间卷积,再用1×1卷积调整通道数。以输入3通道、输出4通道的64×64图像为例,常规卷积需108个参数,而深度可分离卷积仅需39个参数,减少了约2/3。这种结构在轻量级网络(如MobileNet)中广泛应用,可在保持性能的同时降低计算资源需求。

猫天意的博客 4068

黑群辉DSM 6.2.3 系统安装

国内镜像:https://www.openos.org/downloads/win32-disk-imager.2/下载地址:https://sourceforge.net/projects/win32diskimager/在左边找到刚刚打开的img文件, 点击ESP-grub, 在右边找到grub.cfg, 选择复制到桌面.再把已经编辑好的grub.cfg文件拖动到DiskGenius刚刚的位置, 并且替换之前的文件.工具下载 : http://www.upan.cc/tools/mass/SMI/

weixin_44048054的博客 3319

如何用SoulChat2.0快速克隆你的心理咨询师?手把手教你搭建AI数字孪生体

本文详细介绍了如何利用SoulChat2.0框架快速构建心理咨询师的AI数字孪生体。通过其核心PsyDT技术,仅需少量真实案例即可合成风格数据并微调大模型,从而低成本地创建能高度模仿特定咨询师语言风格和专业技术的AI分身,适用于预约访谈、心理教育等辅助场景,实现高效的人机协作。

julia4scientist的博客 979

解决windows10下无法安装.net framework 3.5(包括.net2.0和3.0)

入域电脑,win10系统中安装 .net framework 3.5(包括.net2.0和3.0)

God_me_1的博客 4万+

安装黑群晖7.1时报错:Loader disk not found!

解决黑群晖制作引导盘时的报错问题

eternal_xe的博客 6873

软件需求规格说明书(SRS)深入解析

摘要: SRS(软件需求规格说明书)是定义系统功能、性能与接口的核心文档,为开发、测试、项目管理提供依据。标准结构包括引言、总体描述、功能/非功能需求、接口等模块。撰写需确保清晰、可验证、无歧义,避免模糊术语。示例展示学生注册模块的需求写法,强调性能与安全性要求。推荐使用Confluence、StarUML等工具辅助编写,交付时需包含主文档、原型图及需求跟踪矩阵。SRS应兼具技术性与管理性,作为沟通桥梁和验收标准。

moton2017的博客 2931

群辉Docker 下载仓库镜像提示失败 解决办法

使用群晖的Docker套件过程中,经常遇到映像下载失败及下载速度只有几KB到几十KB的情况。猜测是因为国内外网络环境问题,所以使用阿里云的加速器加速Docker映像的下载就可以解决这个问题

李佑辰 1万+

聊聊蓝牙配对技术-CTKD OVER BR/EDR

摘要:本文探讨了蓝牙设备通过跨传输密钥派生(CTKD)机制实现双模连接的技术细节。研究发现,手机在连接双模耳机时优先通过BR/EDR配对,再利用CTKD派生BLE连接所需的密钥。关键条件包括:设备地址一致性、启用安全连接(Secure Connection)及禁用justworks配对方式。文章详细剖析了从BR/EDR链路密钥派生BLE长期密钥(LTK)的算法流程,重点解析了H6/H7加密函数的作用机制与安全差异。研究还通过HCI日志验证了密钥交换和加密建立的完整过程,指出蓝牙5.1版本对CTKD安全性的强

十多年蓝牙协议软件开发,擅长蓝牙协议分析 2700

【纯干货分享】常用高速接口眼图模板合集

文章汇集了常见的高速接口的信号眼图测试模板技术要求,比如,LPDDR5/4、PCIe 5.0/4.0、USB、MIPI等等,方便工程师快速进行查询和使用。

一只豌豆象的博客 3116

亲测解决群晖7.2无法通过Docker下载镜像问题

但是只要做了这个设置之后,你就可以通过SSH登录后台执行相关脚本完成镜像拉取,如果没有做以上的设置,很多镜像也无法拉取。我的是群晖920+,上个月升级到7.2版本之后,Container Manager(Docker)就无法下载镜像。我应用了这个设置后,仍然无法在群晖docker界面的注册表界面直接找到镜像,仍然会提示无法执行此操作等提示。打开注册表设置,点击“Docker Hub(v1)”,再点击编辑。进入编辑界面后,可以看到如下的内容,请按照下图设置。(三)应用这个设置后的现象(非常重要)

m0_37465990的博客 3万+

SQL进阶技巧:数据预处理如何对数据进行分桶【分箱】?

本文详细介绍了数据分析中常见的几种分桶方式:基于业务规则的分桶、等距分桶及等频分桶等,针对每种分桶方式给出了SQL实现

石榴姐yyds 4021

【免费下载】 黑群辉引导各种版本arpl-1.1-beta2a.img

黑群辉引导各种版本arpl-1.1-beta2a.img 【下载地址】黑群辉引导各种版本arpl-1.1-beta2a.img 本仓库提供的是“黑群辉”引导镜像文件——`arpl-1.1-beta2a.img`。该镜像专为希望自定义和深度操作NAS系统的用户设计,属于黑群辉(一种非官方的、高度定制化的Synology D...

gitblog_09800的博客 763

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

黑群 晖dsm ds918+ 7.01二合一引导加系统一体 镜像系统

黑群晖dsm ds918+ 7.01二合一引导加系统一体 镜像系统 1、版本7.01 2、直接写入硬盘或者SSD硬盘 3、大小2G 附上下载链接: link.

weixin_42611592的博客 2万+

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

黑群晖7.2下载地址

胖路由

xlxxcc的专栏 4129

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Esxi安装黑群晖(只适用于学习,商用请支持正版)

本文用的是Esxi虚拟化安装

vv12345的博客 6093

2024年8月27日解决群晖docker下载失败问题

之前购买的群晖通过docker镜像处理好了域名、公网IP、ssl证书等后就一直没再使用docker功能,最近使用时发现拉取镜像失败,网上百度了一番,说是因为GFW原因,要么科学,要么就用一些三方的代理加速。下文记录通过第三方代理加速进行docker下载的过程。此处可以添加多个地址,我于2024年8月27日测试了几个可访问的地址并成功下载,由于加速地址都是为爱发电的居多,为了不广泛传播,就不直接贴上来了,有需要的可以通过文末的地址下载查看。

kyq_1024yahoocn的博客 4965
上一篇: panel.sh:一个nginx+docker的云函和在线IDE面板,发明你自己的paas(2)
下一篇: 普化群晖改造成正常磁盘布局及打开kernel message
Minlearn
博客等级 码龄18年 20粉丝 146原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值