有没有一种浏览器扩展或者程序,能让用户事先把某网站的 css 等放到本地磁盘或 localStorage,然后读取解析渲染

2019-04-11 14:25:48 +08:00
 Clisad236

有没有一种浏览器扩展或者程序,操作界面傻瓜化,类似 Stylus,能让用户事先把某网站的 css、js 等静态资源放到本地磁盘或 localStorage,然后读取本地资源渲染。

举例:

  1. 用户输入网址(假设是个 html 页面,并且是第一次访问),浏览器向服务器发出请求,服务器返回 html 文件。 比如访问 https://www.v2ex.com

  2. 浏览器开始载入 html 代码,发现标签内有一个<link>标签引用外部 CSS 文件。

<link rel="stylesheet" type="text/css" media="screen" href="/css/basic.css?v=3.9.8.3">
  1. 浏览器又发出 CSS 文件的请求,服务器返回这个 CSS 文件。
    用户事先把basic.css放到D:\css\basic.css(或者扩展文件夹)。
    这时 此程序(扩展)起作用:先判断本地磁盘有无basic.css,有则直接从本地读取,无才向服务器请求。

  2. 浏览器继续载入 html 中部分的代码,并且 CSS 文件已经拿到手了,可以开始渲染页面了。

关键是

  1. 这是用户端自己的事,类似localStorage自定义数据,但localStorage有大小限制,此扩展的存储上限与本地磁盘的大小有关。
  2. 用户可以自定义哪些网站哪些静态资源,放多少,完全根据用户自己的本地磁盘大小有关。 比如我可以在扩展里添加定义一个 www.v2ex.com ,然后在本地磁盘或者扩展文件夹里放 desktop.css ,basic.css ,style.css 以及 v2ex@2x.png ,然后规定访问 V2EX 时这四个资源就从本地读取,其他都从服务器请求。也可以定义多个网站,只要本地磁盘够大。
  3. 这个扩展就类似 Stylus,Stylus 是 用户样式管理器,可以自定义某网站的样式;
    以及 Tampermonkey,Tampermonkey 是 用户脚本管理器,可以自定义某网站的脚本。
    如果它存在,可以叫用户站点静态资源管理器,可以自定义某网站的哪些静态资源从本地读取。

参考:

2869 次点击
所在节点    程序员
18 条回复
paopjian
2019-04-11 14:46:48 +08:00
安全吗?
油猴可以修改页面脚本指向本地文件吗?可以的话自己写一个就完了
lzvezr
2019-04-11 14:50:10 +08:00
有一个可以保存 cdn 资源的,之前用过,后来发现和 https everywhere 冲突,就不用了
momocraft
2019-04-11 14:54:18 +08:00
拦截 http 请求的扩展有的
不明白为什么这里要扯上 localStorage
rrfeng
2019-04-11 14:56:40 +08:00
浏览器自带缓存,不明白搞这个的意义是什么。
如果要拦截修改跟 local storage 也没啥关系。

缓存估计没 API
annielong
2019-04-11 15:23:59 +08:00
firefox 有个扩展,专门做这个,可以使用本地样式表覆盖网站的
shawndev
2019-04-11 16:00:43 +08:00
换个思路把这些资源 proxy 到本地呢。
codehz
2019-04-11 17:29:46 +08:00
https://add0n.com/local-cdn.html 了解一下,不过只是帮你弄了几个常见库(
jeffAQA
2019-04-11 17:39:06 +08:00
service worker 和 cache 应该就可以实现你想要的效果啦吧
learnshare
2019-04-11 17:39:38 +08:00
浏览器自己不是有文件资源缓存机制么?
然后你的目的是什么?
herozzm
2019-04-11 17:41:27 +08:00
估计你想第一次给人看就造成速度很快的感觉
whypool
2019-04-11 17:47:40 +08:00
manifest.json 了解一下,还能离线使用
wenhainan
2019-04-11 17:48:36 +08:00
浏览器本身就有缓存机制,不明白你啥意思.
gzlock
2019-04-11 17:50:39 +08:00
我的扩展支持将网站的网络资源重定向到其它网址,功能展示:
https://www.v2ex.com/t/533001
不过好像跟楼主的需求不太一样
Vegetable
2019-04-11 17:59:36 +08:00
[http 缓存]( https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Caching_FAQ)
你读完这篇文档之后,就会发现你提的大部分需求根本就是浏览器默认行为.
ducklyl
2019-04-11 18:05:19 +08:00
浏览器会这么干的,只要缓存设定好就可以
learnshare
2019-04-11 19:50:54 +08:00
@Clisad236 了解一下 HTTP 缓存相关的知识
缓存并不应该是永久的,浏览器已经尽量避免任何多余和重复的加载了
sunocean
2019-04-11 21:02:12 +08:00
现在网速不是瓶颈了吧?而且不觉得这样子对用户来说太麻烦了吗?毕竟浏览器的自动缓存可以满足大部分人的需求。
最后,没有现成就自己写一个 手动狗头
no1xsyzy
2019-04-12 13:24:12 +08:00
一方面,扩展 decentraleyes 可以进行大多数常见资源的重定向。

- 支持的网络:Google Hosted Libraries, Microsoft Ajax CDN, CDNJS (Cloudflare), jQuery CDN (MaxCDN), jsDelivr (MaxCDN), Yandex CDN, Baidu CDN, Sina Public Resources, 及 UpYun Libraries。

- 打包的资源:AngularJS, Backbone.js, Dojo, Ember.js, Ext Core, jQuery, jQuery UI, Modernizr, MooTools, Prototype, Scriptaculous, SWFObject, Underscore.js 及 Web Font Loader。

能够直接覆盖掉这些 CDN 的这些地址,替换为本地版本。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/554077

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX