最近のWebブラウザーで、setTimeout
10分間(12:00に)を実行し、5分後にコンピューターをスリープ状態にすると、システムが再びウェイクアップするとどうなりますか?10分が経過する前に(12:09に)、またはそれよりかなり後に(16:00に)ウェイクアップするとどうなりますか?
私が尋ねている理由は、10分ごとに新しい認証トークンをリクエストしてもらいたいためです。また、ブラウザーが正しく動作するかどうかわからないので、しばらくしてから目覚めるとすぐに新しいトークンをリクエストします時間。
明確化:私はクッキーを使用したくない-私はここでウェブサービスを構築しようとしています。はい、サーバーは古い無効なトークンを拒否します。
私がテストした限りでは、コンピュータがウェイクアップした後に停止して再開します。それはsetTimeout/Interval
、コンピューターがスリープ状態になったときからのカウンターの目盛りに応じたセッションを意味すると思います。
私はあなたがsetTimeout/Interval
タイムクリティカルなものの正確さに依存すべきではないと思います。グーグルクロームの場合、最近アクティブ化されたタブがフォーカスを失うと、タイムアウト/間隔(1秒より短い)が1秒に1度遅くなることを発見しました。
それ以外に、タイムアウト/間隔の精度は、実行中の他の関数などに依存します。つまり、非常に正確ではありません。
したがって、間隔とタイムアウトを使用して、それによって開始された関数内の開始時間に対して時間をチェックすると、精度が向上します。これで、12:00に開始すると、コンピューターはスリープ状態になり、16:13程度にウェイクアップします。16:13を12:00と比較してチェックすると、トークンを更新する必要があることが確実になります。時間比較の使用例はここにあります
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加