清除URL缓存链接

清除URL缓存链接

通过添加 hash 值方法,刷新链接

/**
 * 获取清除缓存的链接
 * @params { String } url 链接地址
 * @params { String } key 用于添加hash变量 
 * 支持格式: https://www.imiku.com/
 *           https://www.imiku.com/index.html?id=xxx
 *           https://www.imiku.com/index.html?id=xxx#/index
 */
const getClearCacheUrl = (url, key) => {
  var key = (key || '_t') + '=';  // 默认是 "_t"
  var reg = new RegExp(key+'\\d+');  // 正则:t=1472286066028
  var timestamp = +new Date();

  if(url.indexOf(key) > -1){ // 有时间戳,直接更新
    return url.replace(reg, key + timestamp);
  } else {  // 没有时间戳,加上时间戳
    var newUrlArr = [];
    var urlArr = url.split('#');
    var baseUrl = urlArr[0];
    var hash = urlArr[1] ? '#' + urlArr[1] : '';

    if(baseUrl.indexOf('\?') > -1){
      var tmpUrlArr = baseUrl.split('\?');
      newUrlArr.push(tmpUrlArr[0]);
      newUrlArr.push('?' + key + timestamp);
      newUrlArr.push('&' + tmpUrlArr[1]);
    } else {
      newUrlArr.push(urlArr[0]);
      newUrlArr.push('?' + key + timestamp);
    }
    newUrlArr.push(hash);

    return newUrlArr.join('');
  }
};
最后修改:2019 年 08 月 02 日 09 : 21 PM

发表评论