有没有一种浏览器扩展或者程序,操作界面傻瓜化,类似 Stylus,能让用户事先把某网站的 css、js 等静态资源放到本地磁盘或 localStorage,然后读取本地资源渲染。
举例:
用户输入网址(假设是个 html 页面,并且是第一次访问),浏览器向服务器发出请求,服务器返回 html 文件。 比如访问 https://www.v2ex.com
浏览器开始载入 html 代码,发现标签内有一个<link>标签引用外部 CSS 文件。
<link rel="stylesheet" type="text/css" media="screen" href="/css/basic.css?v=3.9.8.3">
浏览器又发出 CSS 文件的请求,服务器返回这个 CSS 文件。
用户事先把basic.css
放到D:\css\basic.css
(或者扩展文件夹)。
这时 此程序(扩展)起作用:先判断本地磁盘有无basic.css
,有则直接从本地读取,无才向服务器请求。
浏览器继续载入 html 中部分的代码,并且 CSS 文件已经拿到手了,可以开始渲染页面了。
关键是
localStorage
自定义数据,但localStorage
有大小限制,此扩展的存储上限与本地磁盘的大小有关。参考:
1
paopjian 2019-04-11 14:46:48 +08:00
安全吗?
油猴可以修改页面脚本指向本地文件吗?可以的话自己写一个就完了 |
2
lzvezr 2019-04-11 14:50:10 +08:00 via iPhone
有一个可以保存 cdn 资源的,之前用过,后来发现和 https everywhere 冲突,就不用了
|
3
momocraft 2019-04-11 14:54:18 +08:00
拦截 http 请求的扩展有的
不明白为什么这里要扯上 localStorage |
4
rrfeng 2019-04-11 14:56:40 +08:00 via Android
浏览器自带缓存,不明白搞这个的意义是什么。
如果要拦截修改跟 local storage 也没啥关系。 缓存估计没 API |
5
annielong 2019-04-11 15:23:59 +08:00
firefox 有个扩展,专门做这个,可以使用本地样式表覆盖网站的
|
6
shawndev 2019-04-11 16:00:43 +08:00 1
换个思路把这些资源 proxy 到本地呢。
|
7
codehz 2019-04-11 17:29:46 +08:00
https://add0n.com/local-cdn.html 了解一下,不过只是帮你弄了几个常见库(
|
8
jeffAQA 2019-04-11 17:39:06 +08:00
service worker 和 cache 应该就可以实现你想要的效果啦吧
|
9
learnshare 2019-04-11 17:39:38 +08:00
浏览器自己不是有文件资源缓存机制么?
然后你的目的是什么? |
10
herozzm 2019-04-11 17:41:27 +08:00
估计你想第一次给人看就造成速度很快的感觉
|
11
whypool 2019-04-11 17:47:40 +08:00
manifest.json 了解一下,还能离线使用
|
12
wenhainan 2019-04-11 17:48:36 +08:00
浏览器本身就有缓存机制,不明白你啥意思.
|
13
gzlock 2019-04-11 17:50:39 +08:00
|
14
Vegetable 2019-04-11 17:59:36 +08:00 1
[http 缓存]( https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Caching_FAQ)
你读完这篇文档之后,就会发现你提的大部分需求根本就是浏览器默认行为. |
15
ducklyl 2019-04-11 18:05:19 +08:00
浏览器会这么干的,只要缓存设定好就可以
|
16
learnshare 2019-04-11 19:50:54 +08:00 2
@Clisad236 了解一下 HTTP 缓存相关的知识
缓存并不应该是永久的,浏览器已经尽量避免任何多余和重复的加载了 |
17
sunocean 2019-04-11 21:02:12 +08:00
现在网速不是瓶颈了吧?而且不觉得这样子对用户来说太麻烦了吗?毕竟浏览器的自动缓存可以满足大部分人的需求。
最后,没有现成就自己写一个 手动狗头 |
18
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 的这些地址,替换为本地版本。 |