使用 service worker+sw-precache 实现网站加速 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
metaquant
V2EX    程序员

使用 service worker+sw-precache 实现网站加速

 
  •   metaquant
    sorrowise 2016-12-29 19:36:30 +08:00 4885 次点击
    这是一个创建于 3211 天前的主题,其中的信息可能已经有所发展或是发生改变。

    service worker 是谷歌 chrome 团队近年提出的一个技术方案,本意为渐进式网络应用(progressive web app, PWA)提供离线支持,使得网络应用可以离线运行。一旦启用 service worker ,则它可以根据开发者的缓存配置为用户缓存网站静态与动态资源,并截获用户的所有网络请求,并根据缓存配置来决定是从缓存还是网络获取相应资源,从而可以提高网页的加载速度。测试结果表明,一般能实现 4-5 倍的加速,最好的时候能够实现 10 倍的加速。使用 service worker 实现网站加速的优势有:

    • 可以很轻易地实现静态与动态资源缓存,决定缓存空间的大小与缓存时间期限,可定制性高;
    • 不需要服务端支持,只需要在本地生成 service worker 文件并上传就可以使用,特别适用于没有服务端的静态博客或网站;
    • 配合 sw-precache ,只需要做好缓存配置, sw-precache 可以自动生成 service woker 文件,不需要自己实现缓存逻辑;
    • 可以灵活为动态与静态资源,以及不同网址提供不同的缓存机制,并实现资源的动态更新,同样不需要自己编写代码

    劣势包括:

    • 网站必须启用 HTTPS:这个不太算劣势,毕竟是大势所趋,但在目前可能会限制其适用范围;
    • 不是所有浏览器都支持:目前 chrome, firefox,opera 以及国内的各种双核浏览器都支持,但是 safari 不支持
    • 不能解决首次访问缓慢的问题,因为还没有缓存。

    相关文章:

    7 条回复    2016-12-29 22:28:35 +08:00
    momentum
        1
    momentum  
       2016-12-29 19:42:09 +08:00
    之前接触过 service worker ,但没想过可以用来网站加速,很新颖的思路
    piedpipper
        2
    piedpipper  
       2016-12-29 19:43:14 +08:00
    wordpress 可以用吗?
    metaquant
        3
    metaquant  
    OP
       2016-12-29 19:44:51 +08:00
    @momentum 感谢支持
    metaquant
        4
    metaquant  
    OP
       2016-12-29 19:45:09 +08:00
    @piedpipper 虽然没有试过,但应该可以,没有什么本质的区别
    kimwang
        5
    kimwang  
       2016-12-29 19:58:23 +08:00
    不是有 Page Speed 了吗
    zeninger
        6
    zeninger  
       2016-12-29 21:19:54 +08:00
    通过本地缓存加快网页加载?感觉和 ququblog 的思路类似,虽然那个是在后端实现的
    metaquant
        7
    metaquant  
    OP
       2016-12-29 22:28:35 +08:00
    @zeninger 的确是类似的方案
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     919 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 20:50 PVG 04:50 LAX 13:50 JFK 16:50
    Do have faith in what you're doing.
    ubao 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