有没有一种浏览器扩展或者程序,能让用户事先把某网站的 css 等放到本地磁盘或 localStorage,然后读取解析渲染 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
Clisad236
V2EX    程序员

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

  •  
  •   Clisad236 2019-04-11 14:25:48 +08:00 3302 次点击
    这是一个创建于 2462 天前的主题,其中的信息可能已经有所发展或是发生改变。

    有没有一种浏览器扩展或者程序,操作界面傻瓜化,类似 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 以及 [email protected] ,然后规定访问 V2EX 时这四个资源就从本地读取,其他都从服务器请求。也可以定义多个网站,只要本地磁盘够大。
    3. 这个扩展就类似 Stylus,Stylus 是 用户样式管理器,可以自定义某网站的样式;
      以及 Tampermonkey,Tampermonkey 是 用户脚本管理器,可以自定义某网站的脚本。
      如果它存在,可以叫用户站点静态资源管理器,可以自定义某网站的哪些静态资源从本地读取。

    参考:

    第 1 条附言    2019-04-11 19:44:50 +08:00
    浏览器缓存有时间限制,(手动)清理了就没有了。也有空间的大小限制。而我说的则可以永久存在。
    目的可以加快访问速度,或者能访问一些被 强 网站 的静态资源。
    第 2 条附言    2019-04-11 19:55:18 +08:00
    相当于用户端的 local cdn
    18 条回复    2019-04-12 13:24:12 +08:00
    paopjian
        1
    paopjian  
       2019-04-11 14:46:48 +08:00
    安全吗?
    油猴可以修改页面脚本指向本地文件吗?可以的话自己写一个就完了
    lzvezr
        2
    lzvezr  
       2019-04-11 14:50:10 +08:00 via iPhone
    有一个可以保存 cdn 资源的,之前用过,后来发现和 https everywhere 冲突,就不用了
    momocraft
        3
    momocraft  
       2019-04-11 14:54:18 +08:00
    拦截 http 请求的扩展有的
    不明白为什么这里要扯上 localStorage
    rrfeng
        4
    rrfeng  
       2019-04-11 14:56:40 +08:00 via Android
    浏览器自带缓存,不明白搞这个的意义是什么。
    如果要拦截修改跟 local storage 也没啥关系。

    缓存估计没 API
    annielong
        5
    annielong  
       2019-04-11 15:23:59 +08:00
    firefox 有个扩展,专门做这个,可以使用本地样式表覆盖网站的
    shawndev
        6
    shawndev  
       2019-04-11 16:00:43 +08:00   1
    换个思路把这些资源 proxy 到本地呢。
    codehz
        7
    codehz  
       2019-04-11 17:29:46 +08:00
    https://add0n.com/local-cdn.html 了解一下,不过只是帮你弄了几个常见库(
    jeffAQA
        8
    jeffAQA  
       2019-04-11 17:39:06 +08:00
    service worker 和 cache 应该就可以实现你想要的效果啦吧
    learnshare
        9
    learnshare  
       2019-04-11 17:39:38 +08:00
    浏览器自己不是有文件资源缓存机制么?
    然后你的目的是什么?
    herozzm
        10
    herozzm  
       2019-04-11 17:41:27 +08:00
    估计你想第一次给人看就造成速度很快的感觉
    whypool
        11
    whypool  
       2019-04-11 17:47:40 +08:00
    manifest.json 了解一下,还能离线使用
    wenhainan
        12
    wenhainan  
       2019-04-11 17:48:36 +08:00
    浏览器本身就有缓存机制,不明白你啥意思.
    gzlock
        13
    gzlock  
       2019-04-11 17:50:39 +08:00
    我的扩展支持将网站的网络资源重定向到其它网址,功能展示:
    t/533001
    不过好像跟楼主的需求不太一样
    Vegetable
        14
    Vegetable  
       2019-04-11 17:59:36 +08:00   1
    [http 缓存]( https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Caching_FAQ)
    你读完这篇文档之后,就会发现你提的大部分需求根本就是浏览器默认行为.
    ducklyl
        15
    ducklyl  
       2019-04-11 18:05:19 +08:00
    浏览器会这么干的,只要缓存设定好就可以
    learnshare
        16
    learnshare  
       2019-04-11 19:50:54 +08:00   2
    @Clisad236 了解一下 HTTP 缓存相关的知识
    缓存并不应该是永久的,浏览器已经尽量避免任何多余和重复的加载了
    sunocean
        17
    sunocean  
       2019-04-11 21:02:12 +08:00
    现在网速不是瓶颈了吧?而且不觉得这样子对用户来说太麻烦了吗?毕竟浏览器的自动缓存可以满足大部分人的需求。
    最后,没有现成就自己写一个 手动狗头
    no1xsyzy
        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 的这些地址,替换为本地版本。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5444 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 03:34 PVG 11:34 LAX 19:34 JFK 22:34
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86