瀏覽器頁(yè)面處于不活躍狀態(tài)時(shí)setInterval不定時(shí)執(zhí)行

瀏覽器頁(yè)面處于不活躍狀態(tài)時(shí)setInterval不定時(shí)執(zhí)行

1.問(wèn)題背景

頁(yè)面建立webSocket并設(shè)置定時(shí)保活機(jī)制,切換到后臺(tái)或其他標(biāo)簽頁(yè)一段時(shí)間后,定時(shí)器未按時(shí)調(diào)用,導(dǎo)致?;畛瑫r(shí),ws closed

2.原因

當(dāng)頁(yè)面變?yōu)榉腔顒?dòng)狀態(tài)時(shí),WebKit 會(huì)自動(dòng)采取措施來(lái)節(jié)省電量:

  • requestAnimationFrame停止。
  • CSS 和 SVG 動(dòng)畫(huà)被暫停。
  • 計(jì)時(shí)器受到限制。

頁(yè)面變?yōu)榉腔顒?dòng)狀態(tài)(不是用戶(hù)的主要焦點(diǎn))的情況有多種,例如:

  • 用戶(hù)切換到不同的選項(xiàng)卡。
  • 用戶(hù)切換到不同的應(yīng)用程序。
  • 瀏覽器窗口最小化。
  • 瀏覽器窗口可見(jiàn)但不是焦點(diǎn)窗口。
  • 瀏覽器窗口位于另一個(gè)窗口的后面。
  • 窗口所在的空間不是當(dāng)前空間。

3.解決方案

使用 Web Workers??梢宰尀g覽器窗口在非激活狀態(tài)(或者最小化)也讓setTimeout、setInterval有效不休眠的功能。

而且webWorkers還可以解決一個(gè)頁(yè)面存在多個(gè)定時(shí)器時(shí)候間隔時(shí)間誤差較大的問(wèn)題。

4.交互狀態(tài)

對(duì)于 Web 開(kāi)發(fā)人員,需要考慮三種交互狀態(tài):

  • 當(dāng)用戶(hù)主動(dòng)與內(nèi)容交互時(shí)。
  • 當(dāng)頁(yè)面位于最前面,但用戶(hù)沒(méi)有與之交互時(shí)。
  • 當(dāng)頁(yè)面不是最前面的內(nèi)容時(shí)。

頁(yè)面可見(jiàn)性監(jiān)聽(tīng):

  • 頁(yè)面可見(jiàn)性 API提供了一種方法來(lái)響應(yīng)頁(yè)面轉(zhuǎn)換到后臺(tái)或前臺(tái)。這是避免在頁(yè)面處于后臺(tái)時(shí)更新 UI
  • blur只要頁(yè)面不再聚焦,就會(huì)發(fā)送事件。在這種情況下,頁(yè)面可能仍然可見(jiàn),但它不是當(dāng)前聚焦的窗口。

5.參考:

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 作者:陳大魚(yú)頭github: KRISACHAN[https://github.com/KRISACHAN] 在上...
    Kris陳大魚(yú)頭閱讀 304評(píng)論 0 0
  • 設(shè)備齊全的廚房并不一定意味著烤好的甜點(diǎn)。當(dāng)談到它在烘焙令人驚嘆的蛋糕方面的作用時(shí),廚房只與其中的糕點(diǎn)廚師一樣好。同...
    啟辰閱讀 644評(píng)論 0 0
  • 整理中 目標(biāo): 了解跨域 解決跨域 服務(wù)器配置跨域(java, nginx) 前端調(diào)試時(shí)配置解決跨域 一、什么是跨...
    麥曦閱讀 1,010評(píng)論 0 0
  • 什么是同源策略 同源策略是一個(gè)重要的安全策略,它用于限制一個(gè)origin[https://developer.mo...
    rangel閱讀 349評(píng)論 0 0
  • 在做項(xiàng)目的過(guò)程中,經(jīng)常需要把數(shù)據(jù)存儲(chǔ)在本地,便于提高用戶(hù)的體驗(yàn)效果等,如權(quán)限驗(yàn)證的token、用戶(hù)信息、數(shù)據(jù)埋點(diǎn)、...
    DoNow閱讀 499評(píng)論 0 1

友情鏈接更多精彩內(nèi)容