首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  程序员

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

  •  
  •   Clisad236 · 42 天前 · 1385 次点击
    这是一个创建于 42 天前的主题,其中的信息可能已经有所发展或是发生改变。

    有没有一种浏览器扩展或者程序,操作界面傻瓜化,类似 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 是 用户脚本管理器,可以自定义某网站的脚本。
      如果它存在,可以叫用户站点静态资源管理器,可以自定义某网站的哪些静态资源从本地读取。

    参考:

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

    缓存估计没 API
        5
    annielong   41 天前
    firefox 有个扩展,专门做这个,可以使用本地样式表覆盖网站的
        6
    shawndev   41 天前   ♥ 1
    换个思路把这些资源 proxy 到本地呢。
        7
    codehz   41 天前
    https://add0n.com/local-cdn.html 了解一下,不过只是帮你弄了几个常见库(
        8
    jeffAQA   41 天前
    service worker 和 cache 应该就可以实现你想要的效果啦吧
        9
    learnshare   41 天前
    浏览器自己不是有文件资源缓存机制么?
    然后你的目的是什么?
        10
    herozzm   41 天前
    估计你想第一次给人看就造成速度很快的感觉
        11
    whypool   41 天前
    manifest.json 了解一下,还能离线使用
        12
    wenhainan   41 天前
    浏览器本身就有缓存机制,不明白你啥意思.
        13
    gzlock   41 天前
    我的扩展支持将网站的网络资源重定向到其它网址,功能展示:
    https://www.v2ex.com/t/533001
    不过好像跟楼主的需求不太一样
        14
    Vegetable   41 天前   ♥ 1
    [http 缓存]( https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Caching_FAQ)
    你读完这篇文档之后,就会发现你提的大部分需求根本就是浏览器默认行为.
        15
    ducklyl   41 天前
    浏览器会这么干的,只要缓存设定好就可以
        16
    learnshare   41 天前   ♥ 2
    @Clisad236 了解一下 HTTP 缓存相关的知识
    缓存并不应该是永久的,浏览器已经尽量避免任何多余和重复的加载了
        17
    sunocean   41 天前
    现在网速不是瓶颈了吧?而且不觉得这样子对用户来说太麻烦了吗?毕竟浏览器的自动缓存可以满足大部分人的需求。
    最后,没有现成就自己写一个 手动狗头
        18
    no1xsyzy   41 天前
    一方面,扩展 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 的这些地址,替换为本地版本。
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   3926 人在线   最高记录 5043   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 19ms · UTC 07:09 · PVG 15:09 · LAX 00:09 · JFK 03:09
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1