I have this code in order to know if the page is reload by the user, unfortunately is deprecated. I want to know if angular has this approach.
if (performance.navigation.type === 1) {
console.log('is refreshed')
}
if (performance.navigation.type === 0) {
console.log('the user is arrived')
}
performance.navigation
was deprecated. To get navigation type you can use getEntriesByType
Example
console.log(performance.getEntriesByType("navigation")[0].type)
The type
value can be
enum NavigationType {
"navigate",
"reload",
"back_forward",
"prerender"
};
See more: https://w3c.github.io/navigation-timing/#sec-performance-navigation-types
Not specific to Angular, but this API has been replaced by the PerformanceNavigationTiming one, which also has a type
property, but which returns a string instead of a numerical code.
However I just noticed that Chrome won't expose this for iframes, which will always output "navigate"
.
The following snippet won't work in Chrome, please try this plnkr instead, in external view.
const entries = performance.getEntriesByType("navigation");
console.log( entries.map( nav => nav.type ) );
rel.onclick = e => location.reload();
<button type="button" id="rel">reload</button>
<a href="404">go to 404 (come back with your browser's back button)</a>
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With