ネットワーク接続がアングルでオンライン/オフラインであるかどうか調べる方法
7275 ワード
我々はすべてのオンライン/オフラインのステータスをチェックするJavaScriptの方法に精通している可能性があります.しかし、角度の場合、我々は、我々が聞いているイベントを適切に取り消す必要がある、さもなければ、我々は不必要な行動とメモリリークを引き起こすかもしれません.
プレーンJS
window.addEventListener("load", () => {
this.networkStatus = navigator.onLine
window.addEventListener("online", () => {
this.networkStatus = true
});
window.addEventListener("offline", () => {
this.networkStatus = false
});
});
角水路
import { Component, OnDestroy, OnInit, VERSION } from '@angular/core';
import { fromEvent, merge, of, Subscription } from 'rxjs';
import { map } from 'rxjs/operators';
@Component({
selector: 'my-app',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent implements OnInit, OnDestroy {
networkStatus: boolean = false;
networkStatus$: Subscription = Subscription.EMPTY;
constructor() {}
ngOnInit(): void {
this.checkNetworkStatus();
}
ngOnDestroy(): void {
this.networkStatus$.unsubscribe();
}
checkNetworkStatus() {
this.networkStatus = navigator.onLine;
this.networkStatus$ = merge(
of(null),
fromEvent(window, 'online'),
fromEvent(window, 'offline')
)
.pipe(map(() => navigator.onLine))
.subscribe(status => {
console.log('status', status);
this.networkStatus = status;
});
}
}
ここでデモを見ることができますまたは、ここでコードをチェックしてください
ハッピーコーディング!🎉🎉🎉
Reference
この問題について(ネットワーク接続がアングルでオンライン/オフラインであるかどうか調べる方法), 我々は、より多くの情報をここで見つけました https://dev.to/the_thinkster/how-to-detect-if-a-user-is-online-offline-with-angular-rxjs-48cmテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol