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