成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

不要太相信 SetInterval!我被它給坑得好慘!

開發 前端
我們的的輪詢是通過 setInterval 定時器去完成的,那么為啥定時器里的邏輯沒執行呢?通過向用戶詢問,我們得知了用戶有很長一段時間沒有去看這個前端頁面,并且把這個頁面給隱藏了。

最近組員遇到了一個 BUG,我們的需求是這樣的:前端需要通過輪詢的方式,每隔一段時間去做一些邏輯處理,并向后端發送請求上報。

出現的 BUG 是:后端發現前端有很長一段時間都沒有向后端發起上報請求。

問題排查

我們的的輪詢是通過 setInterval 定時器去完成的,那么為啥定時器里的邏輯沒執行呢?

通過向用戶詢問,我們得知了用戶有很長一段時間沒有去看這個前端頁面,并且把這個頁面給隱藏了。

在這里我跟大家科普一個監聽事件 visibilitychange,他可以用來監聽當前標簽頁頁面顯隱的切換。

圖片圖片

于是我需要復現一下這個 BUG ,我簡單寫了以下的代碼,并且做這些事:

  • 先在頁面待一會
  • 隱藏頁面一段時間
  • 再顯示頁面,并查看控制臺的輸出是否連續

圖片圖片

我先試著離開很短一段時間,再回去看,可以發現,控制臺的輸出還是很連續的,這說明離開很短時間,基本不會影響到定時器執行的連續性。

圖片圖片

第二次我離開了一兩分鐘時間,可以看到定時器執行的連續性不正常了,這說明了當頁面隱藏的時候,定時器的執行有點類似于節流的感覺,從而導致不太連續。

圖片圖片

定時器連續性的保證?

其實瀏覽器這么做也是有他的道理的,畢竟當頁面隱藏的時候,說明這個頁面對于用戶當前來說,不太重要了,所以適當減少一些代碼邏輯的運行,節省性能,也是無可厚非的!

但是如果你想一直保證定時器的連續性,還是有辦法做到的,可以用到我們的老朋友:Web Worker。

圖片圖片

圖片圖片

現在就能保證定時器的連續性執行了!

圖片 圖片

責任編輯:武曉燕 來源: 前端之神
相關推薦

2023-10-31 08:01:48

Mybatis參數jdbcurl?

2024-08-21 15:25:55

2020-07-17 09:58:31

Python開發工具

2020-03-20 08:00:32

代碼程序員追求

2023-07-17 10:28:00

C/C++編程接口

2013-04-22 09:05:11

程序員

2022-01-26 22:22:38

LinuxLinus TorvGitHub

2015-08-25 15:58:33

編程集錦

2024-11-21 09:55:25

2023-03-02 06:00:00

2024-08-16 16:13:00

2009-03-17 09:03:28

獎金軟件開發動漫

2022-06-30 05:25:01

蓄電池通信電源

2023-11-13 08:03:53

Next.js命令變量

2010-04-08 09:31:11

安全顧問網絡安全

2017-03-21 23:10:22

2015-06-04 11:22:22

前端程序員

2024-03-14 10:30:05

緩存場景DEMO

2021-07-16 07:57:35

SpringBootOpenFeign微服務

2024-08-26 10:06:58

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品久久国产精品久久 | 国产精品污www一区二区三区 | 伊人中文字幕 | www.久久.com| 国内精品久久久久 | 999www视频免费观看 | 国产精品久久久久久一区二区三区 | 麻豆国产一区二区三区四区 | 国产在线h| 亚洲 欧美 日韩在线 | 欧洲一区二区三区 | 亚洲精品1区2区3区 91免费看片 | 国产乱码一区 | 国产精品激情在线 | 黄色一级大片在线免费看产 | 97国产一区二区精品久久呦 | 亚洲精品欧美精品 | 午夜免费视频观看 | 国产欧美在线 | 免费xxxx大片国产在线 | 成年免费大片黄在线观看一级 | 国产视频一区二区三区四区五区 | 久久久久久综合 | 一区中文字幕 | 天天操夜夜拍 | 午夜精品一区二区三区免费视频 | 天天成人综合网 | 亚洲一区二区三区 | www午夜视频| 超碰人人人人 | 特级做a爰片毛片免费看108 | 91影库| 日韩欧美国产一区二区 | 国产一区电影 | 国产成人网 | 免费看爱爱视频 | 免费在线观看成年人视频 | 九九热精品在线 | 亚洲永久入口 | 久久久视频在线 | 国产免费观看久久黄av片涩av |