如何检查页面是否使用js重新加载
How to get check if a page gets reloaded with js
您现在如何检查页面是否重新加载?
以前是这样的:
//check for Navigation Timing API support
if (window.performance) {
console.info("window.performance works fine on this browser");
}
console.info(performance.navigation.type);
if (performance.navigation.type == performance.navigation.TYPE_RELOAD) {
console.info( "This page is reloaded" );
} else {
console.info( "This page is not reloaded");
}
但现在我发现导航类型已被弃用:
https://developer.mozilla.org/en-US/docs/Web/API/Performance/navigation
然后我检查了替换:https://developer.mozilla.org/en-US/docs/Web/API/PerformanceNavigationTiming
即使阅读了它,我仍然不太清楚如何才能做到这一点。那么检查页面是否刷新的新方法是如何工作的?
看完后我也试了一下:
if (PerformanceNavigationTiming.type == "reload") {
alert('page reloaded')
}
但随后将不会显示警报。
之后我尝试了这个:
if (PerformanceNavigationTiming.type == PerformanceNavigationTiming.TYPE_RELOAD) {
alert('page reloaded')
}
但随后它也会在不刷新页面的情况下显示警报。
然后我尝试的最后一件事:
const pageAccessedByReload = (
(PerformanceNavigationTiming && PerformanceNavigationTiming.TYPE === 1) ||
window.performance
.getEntriesByType('navigation')
.map((nav) => nav.type)
.includes('reload')
);
alert(pageAccessedByReload);
但这也给我一个警告,当它没有重新加载时为 false,当它重新加载时为 true。我只需要在重新加载页面时发出警报。
我终于找到了解决办法:
const pageAccessedByReload = (
(PerformanceNavigationTiming && PerformanceNavigationTiming.TYPE === 1) ||
window.performance
.getEntriesByType('navigation')
.map((nav) => nav.type)
.includes('reload')
);
if (pageAccessedByReload == true) {
alert(pageAccessedByReload);
}
现在只有刷新页面才会显示
阅读新的 API 文档时一定要注意,输入 PerformanceNavigationTiming 是字符串而不是数字,因此正确的方法是:
if (window.PerformanceNavigationTiming) {
console.info("window.performance works fine on this browser");
if (PerformanceNavigationTiming.type === "reload") {
console.info("This page is reloaded");
} else {
console.info("This page is not reloaded");
}
}
您现在如何检查页面是否重新加载?
以前是这样的:
//check for Navigation Timing API support
if (window.performance) {
console.info("window.performance works fine on this browser");
}
console.info(performance.navigation.type);
if (performance.navigation.type == performance.navigation.TYPE_RELOAD) {
console.info( "This page is reloaded" );
} else {
console.info( "This page is not reloaded");
}
但现在我发现导航类型已被弃用: https://developer.mozilla.org/en-US/docs/Web/API/Performance/navigation
然后我检查了替换:https://developer.mozilla.org/en-US/docs/Web/API/PerformanceNavigationTiming
即使阅读了它,我仍然不太清楚如何才能做到这一点。那么检查页面是否刷新的新方法是如何工作的?
看完后我也试了一下:
if (PerformanceNavigationTiming.type == "reload") {
alert('page reloaded')
}
但随后将不会显示警报。
之后我尝试了这个:
if (PerformanceNavigationTiming.type == PerformanceNavigationTiming.TYPE_RELOAD) {
alert('page reloaded')
}
但随后它也会在不刷新页面的情况下显示警报。
然后我尝试的最后一件事:
const pageAccessedByReload = (
(PerformanceNavigationTiming && PerformanceNavigationTiming.TYPE === 1) ||
window.performance
.getEntriesByType('navigation')
.map((nav) => nav.type)
.includes('reload')
);
alert(pageAccessedByReload);
但这也给我一个警告,当它没有重新加载时为 false,当它重新加载时为 true。我只需要在重新加载页面时发出警报。
我终于找到了解决办法:
const pageAccessedByReload = (
(PerformanceNavigationTiming && PerformanceNavigationTiming.TYPE === 1) ||
window.performance
.getEntriesByType('navigation')
.map((nav) => nav.type)
.includes('reload')
);
if (pageAccessedByReload == true) {
alert(pageAccessedByReload);
}
现在只有刷新页面才会显示
阅读新的 API 文档时一定要注意,输入 PerformanceNavigationTiming 是字符串而不是数字,因此正确的方法是:
if (window.PerformanceNavigationTiming) {
console.info("window.performance works fine on this browser");
if (PerformanceNavigationTiming.type === "reload") {
console.info("This page is reloaded");
} else {
console.info("This page is not reloaded");
}
}