V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
Clisad236
V2EX  ›  程序员

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

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

    有没有一种浏览器扩展或者程序,操作界面傻瓜化,类似 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
    我的扩展支持将网站的网络资源重定向到其它网址,功能展示:
    https://www.v2ex.com/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   ·   实用小工具   ·   1034 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 20:11 · PVG 04:11 · LAX 12:11 · JFK 15:11
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.