• 请不要在回答技术问题时复制粘贴 AI 生成的内容
Clisad236
V2EX  ›  程序员

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

  •  
  •   Clisad236 · Apr 11, 2019 · 3903 views
    This topic created in 2767 days ago, the information mentioned may be changed or developed.

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

    参考:

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

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