清除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('');
}
};