“检测 Refresh 刷新”在不同场景下含义不同。下面按常见使用场景分别说明,你可以对号入座:
window.addEventListener('beforeunload', function () {
// 用户刷新或关闭页面会触发
console.log('页面即将刷新/关闭');
});
利用 performance.navigation(已逐步废弃)或 PerformanceNavigationTiming:
const navType = performance.getEntriesByType('navigation')[0]?.type;
if (navType === 'reload') {
console.log('这是刷新');
} else if (navType === 'navigate') {
console.log('首次访问');
}
if (localStorage.getItem('loaded')) {
console.log('刷新页面');
} else {
localStorage.setItem('loaded', '1');
console.log('首次加载');
}
onMounted(() => {
if (performance.navigation.type === 1) {
console.log('Vue 页面被刷新');
}
});
useEffect(() => {
if (window.performance) {
if (performance.getEntriesByType('navigation')[0].type === 'reload') {
console.log('React 刷新');
}
}
}, []);
刷新时:
Referer 通常是当前页面自身Cache-Control: max-age=0Pragma: no-cache后端记录:
SwipeRefreshLayoutUIRefreshControlRefreshIndicator监听刷新控件回调:
onRefresh: () async {
print('检测到下拉刷新');
}
如果是 Token 刷新:
refresh_token 请求/auth/refresh我可以直接给你可运行的示例代码。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。