jsDelivr 提供的全球 CDN 加速,CDN的分流作用不仅减少了用户的访问延时,也减少的源站的负载。但其缺点也很明显:当网站更新时,如果CDN节点上数据没有及时更新,即便用户再浏览器使用Ctrl +F5的方式使浏览器端的缓存失效,也会因为CDN边缘节点没有同步最新数据而导致用户端未能及时更新。

CDN边缘节点对开发者是透明的,相比于浏览器Ctrl+F5的强制刷新来使浏览器本地缓存失效,开发者可以通过CDN服务商提供的“刷新缓存”接口来达到清理CDN边缘节点缓存的目的。这样开发者在更新数据后,可以使用“刷新缓存”功能来强制CDN节点上的数据缓存过期,保证客户端在访问时,拉取到最新的数据。

对于 jsDelivr,缓存刷新的方式也很简单,只需将想刷新的链接的开头的

https://cdn.jsdelivr.net/...

替换成

https://purge.jsdelivr.net/...

即可实时刷新。

起因还是由于封装的函数库里面有一个精度计算的问题,代码如下:

const addExact(arg1, arg2) => {
    let r1, r2, m;
    try {
        r1 = arg1.toString().split('.')[1].length;
    } catch (e) {
        r1 = 0;
    }
    try {
        r2 = arg2.toString().split(".")[1].length;
    } catch (e) {
        r2 = 0;
    }
    m = Math.pow(10, Math.max(r1, r2));
    return Math.round(arg1 * m + arg2 * m) / m;
};

- 阅读剩余部分 -

消失了快2个月了,博客也没有更新了,一直想写点东西,但是无奈时间不够,天天加班……

加班干嘛呢,搞了两个前端的小玩具,一个是前端可视化平台,另外一个是前端工具函数库:

2020-12-08T04:03:39.png

第一个暂时没有开源,里面用的是我们封装的饿了么组件,后期会封装业务之类。

第二个工具函数库已经开源了,使用TS + Rollup + Jest,但是现在还没有经过大规模验证,还在起步期间,可以来做小白鼠,质量这块专门弄了Jest做单元测试,尽量保证质量,后续我会把一些开发中遇到的问题和总结发出来。

2020-12-08T09:06:20.png

Jest单元测试的几个指标:
stmts是语句覆盖率(statement coverage):是不是每个语句都执行了?
Branch分支覆盖率(branch coverage):是不是每个if代码块都执行了?
Funcs函数覆盖率(function coverage):是不是每个函数都调用了?
Lines行覆盖率(line coverage):是不是每一行都执行了?

目前来看,整体测试覆盖度98%,哈哈。

至于第一个,先挖一个坑,我会在博客的后续文章中,把一些思路和方法总结归纳一下,大家可以共同探讨,然后做出一个通用性较好的东西来开源。

最近消失了一个月,忙公司的一个比较好玩的项目,所以博客断更了一个月。为了证明我是真的在忙,截一个图:

2020-10-15T00:45:54.png

这个项目,后期要上Electron,所以就研究了下自动打包,这次就分享下自动打包的,如果对Action不明白的,可以看我之前的文章,我就不在详细的说了。

- 阅读剩余部分 -