文档地址:ClientWorker
↑这也是用 ClientWorker 搭建的!
ClientWorker 目前只涵盖了 ServiceWorker 的 路由拦截、路由劫持、请求 /响应(头、状态)修改,未来将支持缓存控制、请求 /响应(内容)修改。
MIME
,正常托管网站,绕过各大托管商对于网站部署的限制,可以毫无负担的使用阿里云、腾讯云等对象存储而不用开启网站模式,乃至 GithubRaw 无限流量(绕过 GithubPage 100GB 限制)。由 ServiceWorker 驱动,目的是用正则规则定义一切。
虽然我开发的目的是为了给小白好好用 ServiceWorker ,但其要求一点也不小白,是问哪里有不熟悉 JavaScript ,却非常熟悉正则和 yaml 的小白呢
独创的两台前端并发引擎:Classic
和Parallel
,可以用于同时并发请求多个请求,差异请见Engine
分为捕捉规则和搜索规则,具体请见文档Rule
目前2.2.1版本已支持:
缓存颗粒化控制
请求/响应标头搜索
请求/响应内容搜索与替换
可以实现:
1
ChenYFan OP 项目地址忘记贴了。。。
https://github.com/ChenYFan/ClientWorker |
2
SunsetShimmer 2022-07-13 13:28:23 +08:00
~~不熟悉 JavaScript ,认识正则,熟悉 yaml 的小白就在这里呀~~
文档比 freecdn 清晰( freecdn 好像没文档?),接入方式也很友好。 |
3
lzgshsj 2022-07-13 13:43:30 +08:00
我记得 freecdn 的作者好像也在 v 站来着
|
4
zhaohai 2022-07-13 13:47:00 +08:00
不知道怎么绕备案
|
5
ChenYFan OP @lzgshsj 不不不不不,两个工作原理基本不一样,除了两个并发引擎撞了一个(那个并发引擎也不是故意撞的,之前看没看懂,后来自己写出来了才发现原理一样,但确实是受 freecdn 启发;另一个并发引擎则完全不一样)
此外,ClientWorker 的目的是用规则定义工作,和 freecdn 的清单转发天差地别 |
7
qq316107934 2022-07-13 14:30:12 +08:00
@ChenYFan 这么做没有 CORS 问题吗,是不是需要后端改造支持 CORS
|
8
ChenYFan OP @qq316107934 yep ,虽然 ClientWorker 有一键降级 SimpleRequest 功能可以避免大部分 Preflight 问题,但是 CORS 是最基础的浏览器保护,这个是无法绕过的,Access-Control-Allow-Origin 必须包含当前站
|
9
learningman 2022-07-13 15:37:44 +08:00 via Android
第一次访问不就寄了,sw 升级的时候也寄了
|
10
ChenYFan OP @learningman 对,所以只要确保首屏不宕机,新用户是不会受影响的。
至于更新,配置更新可以用在配置里写上下一次更新的地址,这样原配置服务器宕机了也没关系。 而 sw 配置应该可以用 eval+fetch 热补丁,在下一次关闭 SW 前确保最新 |
11
zhaohai 2022-07-13 21:21:51 +08:00
@zhaohai #4 腾讯云试过非标端口,一样检测到啊。试过用 CDN 指向国内 x.x.x.x:xxxx 还是检测到未备案
|
13
yanyaovo 2022-07-19 23:18:08 +08:00
@ChenYFan 大佬,我按那个 ICP 绕备、家宽、动态加速的试例去做了,但是 cw 不知道为什么,会一直卡在反复尝试安装,能在项目地址那提个 issues 不。用的也是纯 ip ,zerossl ,应该和您是相似的 QwQ
|
15
zckevin 2022-07-20 15:59:14 +08:00
不得不说 ServiceWorker 这一套东西使用体验真的非常难受,很难理解为什么会这样。
|
17
zckevin 2022-07-20 22:36:55 +08:00
@ChenYFan 纯主观感知,之前用 ServiceWorker 总感觉用的时候会突然卡 /顿挫那么一下,包括且不限于加载、刷新...尤其是和正常 /普通的网页对比起来。不过你这个网站似乎没有这种感受,也许是我之前的错觉?或者是 Chrome 更新了?已 Star ,有空研究起来。
|
18
ChenYFan OP @zckevin 唔,使用了 ServiceWorker 或 workbox 通常会存在 缓存无限填充不删除、一瞬间缓存过多文件或者重安装假死的问题,这个是网上泛滥的教程里面都没解决的问题。我博客的 ChenBlogHelper 和 ClientWorker 都对此进行了优化,缓存重填充和按请求填充的方式能够很好解决这些问题。目前我博客缓存占用保持在 10M-200M 之间,相较于动辄 2G-5G 的缓存已经好了不少
|