大家好,很高兴又见面了,我是"前端进阶",由我带着大家一起关注前端前沿、深入前端底层技术,大家一起进步,也欢迎大家关注、点赞、收藏、转发!
Gluon 是一个新的框架,用于从网站创建桌面应用程序,使用系统内置的浏览器(不是 webviews)和 NodeJS,与其他现有的活跃项目有很大不同 ,Gluon开放创新并具有一些主要优势。 Gluon 不使用其他类似框架打包浏览器(如 Chromium)或使用 webview(如 Windows 上的 Edge Webview2),而是使用系统安装的浏览器,如 Chrome、Edge、Firefox 等。
Gluon 支持基于 Chromium 和 Firefox 的浏览器作为前端,而 Gluon 的后端使用 NodeJS 是通用且易于开发的(也允许通过使用相同的堆栈从其他流行的框架(如 Electron)轻松学习)。
Gluon 项目开源还不到一个月,因此仍处于早期和实验状态。 但它已经显示出巨大潜力!下面是Gluon项目目前的一些状态。
基本(纯 HTML)Hello World 演示,在机上最新的 Windows 10 上测试结果。 使用截至 2022 年 12 月 9 日所有框架的最新稳定版本。测试结果如下:
从上图可以看出,Gluon与Tauri、Electron 、 Neutralinojs相比,在打包时间、包大小、内存使用、打包时间上等诸多维度都具有明显的优势。
在 Gluon 中打开一个窗口就像一个函数调用一样简单,同时还提供了诸多选项可用,例如窗口大小或加载额外代码。
import * as Gluon from '@gluon-framework/gluon';
const Window = await Gluon.open('https://gluonjs.org');
IPC(进程间通信)允许您在后端和网站前端之间进行通信。
Gluon 有一个简单但功能强大的异步 IPC API,它在 Node 和公开的 Gluon Web API 中也几乎相同,以允许更容易和更快的开发。
它还具有多个通用的子 API 来完成常见的事情,包括包装基本 API,因此大多数开发人员不需要使用不必要的复杂的基于事件的系统:
// Node后端
import * as Gluon from '@gluon-framework/gluon';
const Window = await Gluon.open('https://gluonjs.org');
Window.ipc.store.config = {
env: 'production'
};
import { writeFile } from 'fs/promises';
let log = '';
Window.ipc.log = msg => {
// 打印日志到磁盘
log += msg;
writeFile('app.log', log);
// 写入日志到文件
};
Idle API 是 Gluon 的一项独特功能,允许休眠”Gluon 窗口以节省系统资源。
休眠时会完全杀死浏览器(使用约 30MB 的内存),而休眠使用页面的屏幕截图作为占位符(使用约 60MB 的内存)。
您可以使用 API 手动休眠、睡眠和唤醒,或者使用自动空闲管理,它会在选定的时间段内最小化窗口时休眠,并在它再次聚焦时将其自动唤醒。
// Node后端
import * as Gluon from '@gluon-framework/gluon';
const Window = await Gluon.open('https://example.com');
const sleep = ms => new Promise(resolve => setTimeout(resolve, ms));
await sleep(5000);
// 等待窗口完全加载
Window.idle.hibernate();
// 休眠窗口
await sleep(5000);
Window.idle.wake();
// 唤醒窗口
await sleep(5000);
Window.idle.sleep();
// 休眠窗口
await sleep(5000);
Window.idle.wake();
// 唤醒窗口
本文主要和大家探讨下一个全新的桌面开发框架Gluon的现状,并与 Electron 、Tauri 、 Neutralinojs等诸多前辈进行对比。当然,有些人可能对Electron 、Tauri 、 Neutralinojs等有诸多执念,那就当一次看客,知道有这么个框架好了。文末的参考资料提供了大量优秀文档以供学习,如果有兴趣的读者可以自行阅读。
https://github.com/gluon-framework/gluon
https://gluonjs.org/
页面更新:2024-05-16
本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828
© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号