基于svelte的浏览器插件方案

最近需要制作一个浏览器插件,实现通过插件, 修改目标页面的时间。 这里选择svelte作为开发框架,svelte作为无运行时的框架,可以减少代码体积(顺便玩玩没用过的框架)。 关于svelte和vue体积的对比, 前端圈子争论不休,挑出几个风靡一时的帖子看一下: 尤雨溪对比svelte和vue的构建体积 Jacek Schae 前端各框架对比 Jacek Scheae对多框架体积的对比图 浏览器插件简述 浏览器插件能做什么? chrome 给出三个能力分类: 设计界面 控制浏览器 控制网络 详情可参考 chrome插件开发文档 了解具体使用。 项目结构 目前的结构是, popup 因为有页面,作为独立的svelte项目, 通过vite构建。 其他的部分, content.js, background.js 作为原生js编写,不需要构建,只需要从 public 移动到最终的dist 即可。 ├── README.md ├── dist --------------------- 构建后的文件, 用于作为插件发布 │ ├── background │ ├── content │ ├── imgs │ ├── manifest.json │ ├── popup │ ├── svelte │ └── vite.svg ├── jsconfig.json ------------ vscode配置文件 ├── manifest.json ------------ 插件配置文件 ├── package-lock....

July 18, 2024 · 2 min · 310 words · Jacob

Jsconfig是什么

July 17, 2024 · 0 min · 0 words · Jacob

一个免费的博客方案

发布一个博客, 总共分几步? 三步。创建博客站点,写博客,发出去。 博客站点就像是一个空壳博客,存在于我们的电脑上 我们需要在这个站点中写文章 写完了不能只有自己看呀, 就需要发布到网上 下面, 把这三步具像化一点~~ 1. 【创建博客站点】:通过Hugo生成站点 Hugo 是一个静态网站生成器, 我们需要用它制作一个站点。 1.1 安装Hugo 这里记录下 Windows 和 MacOS 下的安装步骤 1.1.1 Windows 打开命令行, 输入: winget install Hugo.Hugo.Extended (待验证) 1.1.2 MacOS 安装:brew install hugo 验证: hugo version 看到输出类似这样的版本, 则表示成功: hugo v0.128.1+extended darwin/arm64 BuildDate=2024-07-02T06:46:41Z VendorInfo=brew 1.2 初始化站点 hugo new site test # 新建一个站点 cd test # 进入站点目录 git init # 初始化git git submodule add https://github.com/theNewDynamic/gohugo-theme-ananke.git themes/ananke # 添加主题 echo "theme = 'ananke'" >> hugo....

July 4, 2024 · 1 min · 206 words · Jacob

浏览器事件循环-微任务和宏任务,调用栈,渲染队列:布局,绘制与合成

翻译计划: 2024.1 此文翻译自: https://blog.xnim.me/event-loop-and-render-queue#heading-task-queue 已经获取作者授权 此文主旨在于关注事件队列, 执行顺序 以及开发者如何优化代码。 完整思路如下: 事件队列 古老的操作系统不支持多线程, 那时候的事件循环就类似这样一个简单的循环: while (true) { if (execQueue.isNotEmpty()) { execQueue.pop().exec(); } } 在老的操作系统上, 这段代码会疯狂跑满全部cpu。 (真的吗? – 年轻的译者注) 现代操作系统调度器非常复杂, 包括优先级,执行队列, 和其他的技术。 我们可以把事件循环理解为一个圆圈,系统就一圈一圈地检查, 有没有待执行的任务 (pending task)。 下面这些行为, 都会在事件循环里生成任务: script 标签 延迟任务: setTimeout, setInterval, requestIdleCallback 浏览器的事件处理API: click, mousedown, input, blur 等等。 有一些事件是用户初始化的,比如点击事件, tab切换这种 有的事件是来自于代码, 比如 ajax 的响应啥的 promise 状态变化; (关于promise, 可以看这个文章, emmm这篇文章是我准备留给2月份翻译的) DOMMutationObserver, IntersectionObserver 这种 Observer 家族的 RequestAnimationFrame Almost everything we described above is planned through WebAPI (or browserAPI)....

January 12, 2024 · 3 min · 580 words · Jacob

Test

ssss

August 12, 2022 · 1 min · word · Jacob