前端部署中添加版本和保留旧版本的必要性

背景

前端项目会部署在云服务商的 CDN 上面,CDN 的缓存如果不强制刷新目录的话,会定期刷新缓存。试想一下,当更新一个服务时,虽然制品仓里面的资源已经更新,https://www.example.com/index.html 里面的静态资源链接也已经更换,但是部分非常规链接,例如 https://www.example.com/index.html?from=others,缓存还没有刷新,仍旧在访问已经不存在的静态资源,就会导致诸如白屏这样的前端事故。

"前端部署中添加版本和保留旧版本的必要性"继续阅读

使用 Golang & MurmurHash & JsonLogic 实现前端资源灰度分流

一、背景

在日常的前端开发中,倘若想验证一个业务功能正向性,需要针对部分用户进行灰度实验。

二、解决方案

方案 1:中转页

用一个轻量级的 H5 页面做流量中转,收集完用户信息后使用 Ajax 来请求后端接口来判断一个用户是否命中灰度,再通过 location.hreflocation.replace 来做相应的页面跳转。

优点:

  1. 适用于页面结构大不同的多个页面。

缺点:

  1. 两次页面加载页面,极其影响转化率。
  2. 不适用于只是模块小改的页面。

示例:

ajax.get('https://getwhich.com').then(
    abValue => {
        let jumpUrl = 'https://default.com'
        if (abValue === 'iAmExp') {
            jumpUrl = 'https://exp.com'
        }
        location.href = jumpUrl
    }
)

"使用 Golang & MurmurHash & JsonLogic 实现前端资源灰度分流"继续阅读