最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

HTML5實現(xiàn)頁面切換激活的PageVisibility API使用初探

Kayo   發(fā)布時間:2016-05-13 11:16:24   作者:Kayo Lee   我要評論
這篇文章主要介紹了HTML5實現(xiàn)頁面切換激活的PageVisibility API使用初探,PageVisibility可以使我們在切換瀏覽器tab頁面時自動停止和播放視頻,需要的朋友可以參考下

HTMl5 推出了一個很“特別”的 API Page Visibility ,之所以說它特別,是因為這個 API 關注的是一個很少人留意的功能 —— 瀏覽器標簽( tab ) 是否被激活。這里必須解釋一下,這個“激活”,指的是這個標簽是否正被用戶瀏覽,或者說是否為當前標簽。

那么,這個 API 究竟有些什么用途呢?通常,很多傳統(tǒng)的頁面在用戶沒有激活它的時候,它還會繼續(xù)工作,例如,當用戶正在瀏覽新聞門戶,而他之前打開的 NBA 球賽頁面會繼續(xù)刷新獲取最新結果,視頻網(wǎng)站會繼續(xù)占用帶寬加載資源,于是,如果這類不必要的工作太多了,就會造成很多的資源浪費。因此,這貨相當有用:

Web 程序每隔一段時間會自動更新頁面信息,確保用戶獲取到及時的信息,但是,當用戶正在瀏覽其他頁面時,可以控制它暫停更新。
視頻網(wǎng)站在播放在線視頻時會不斷加載視頻,直到視頻加載完畢,但是,當用戶正在瀏覽其他頁面時,可以暫停加載視頻資源,節(jié)省帶寬。
網(wǎng)站首頁上有個大幻燈自動播放,當用戶瀏覽其他頁面了,就可以暫停播放。
于是,通過 Page Visibility ,我們可以至少達到以下一種或幾種的好處:

1.節(jié)省服務器資源,Ajax 輪詢這類服務器資源占用常常會被忽略,關閉這種請求可以節(jié)省資源。
2.節(jié)省內(nèi)存消耗。
3.節(jié)省帶寬消耗。

因此,使用 Page Visibility 無論是對于用戶還是服務器都有好處。

接下來正式介紹一下這個 API 。Page Visibility 會在瀏覽器的 document 對象上添加兩個屬性 hidden 和 visibilityState 。如果當前的標簽被激活了,那么 document.hidden 的值為 false ,否則為 true 。visibilityState 則有4個可能值:

hidden:當瀏覽器最小化、切換標簽、電腦鎖屏時 visibilityState 值是 hidden
visible:當瀏覽器上下文(context)的 document 至少顯示在一個屏幕當中時,返回 visible;當瀏覽器窗口沒有最小化,但是瀏覽器被其他應用遮擋時,這時也為 visible
prerender:當文檔被加載到屏幕畫面以外或者不可見時返回 prerender,這個是非必要屬性,瀏覽器可選擇性的支持。
unloaded:當文檔將要被離開 ( unload ) 時返回 unloaded,瀏覽器也可選擇性的支持這個屬性
另外,document 上會添加 visibilitychange 事件,當 document 的可見性改變時觸發(fā)該事件。

好了,介紹完屬性,放上一個 Demo (打開后切換標簽即可測試)。

這個 Demo 的作用是看標簽的可見性是否改變 ,并且在標簽可見性發(fā)生改變時產(chǎn)生提示。

值得注意的是,在目前,瀏覽器對于 Page Visibility 的支持還是通過私有屬性支持,因此在檢測或利用 Page Visibility 提供的屬性時需要加上瀏覽器私有前綴,例如在 Chrome 中檢測上面的 visibilityState 屬性時,就需要檢測 document.webkitVisibilityState 而不是 document.visibilityState 。所以,Demo 中會首先檢測瀏覽器類型,然后才使用 Page Visibility 的 API 。主要代碼如下:

在上面的代碼中,同樣,在CHROME運行下,在LOAD事件中,相關的 webkitvisibilitychange事件(這個在CHROME下),如果是IE 10,則是 msvisibilitychange事件,然后在回調(diào)函數(shù)中,開始了計算用戶在頁面停留的時間, 所以當你打開其他TAB頁或者最小化后,再切換回原來這個頁,則會彈出顯示:你離開了頁面多長時間 。
要注意的是,在CHROME中,屬性命名為webkitHidden,事件為 webkitvisibilitychange事件,而在IE 10中,屬性為msHidden 和 msVisibilityState.

相關文章

  • HTML5實現(xiàn)的移動端購物車自動結算功能示例代碼

    本文介紹HTML5實現(xiàn)移動端購物車自動結算,通過WebStorage、事件監(jiān)聽、DOM操作等技術,確保實時更新與數(shù)據(jù)同步,優(yōu)化性能及無障礙性,提升用戶體驗,感興趣的朋友一起看看吧
    2025-06-18
  • HTML5 中的<button>標簽用法和特征

    在HTML5中,<button>標簽用于定義一個可點擊的按鈕,它是創(chuàng)建交互式網(wǎng)頁的重要元素之一,本文將深入解析HTML5中的<button>標簽,詳細介紹其屬性、樣式以及實際
    2025-06-18
  • 基于 HTML5 Canvas 實現(xiàn)圖片旋轉與下載功能(完整代碼展示)

    本文將深入剖析一段基于 HTML5 Canvas 的代碼,該代碼實現(xiàn)了圖片的旋轉(90 度和 180 度)以及旋轉后圖片的下載功能,通過對代碼的解讀,我們可以學習到如何利用 Canvas API
    2025-06-18
  • HTML5 getUserMedia API網(wǎng)頁錄音實現(xiàn)指南示例小結

    本教程將指導你如何利用這一API,結合Web Audio API,實現(xiàn)網(wǎng)頁錄音功能,從獲取音頻流到處理和保存錄音,整個過程將逐步詳解,此外,還討論了getUserMedia API的使用限制和最
    2025-06-16
  • HTML5 搜索框Search Box詳解

    HTML5的搜索框是一個強大的工具,能夠有效提升用戶體驗,通過結合自動補全功能和適當?shù)臉邮?,可以?chuàng)建出既美觀又實用的搜索界面,這篇文章給大家介紹HTML5 搜索框Search Box
    2025-06-13
  • 全面解析HTML5中Checkbox標簽

    Checkbox是HTML5中非常重要的表單元素之一,通過合理使用其屬性和樣式自定義方法,可以為用戶提供豐富多樣的交互體驗,這篇文章給大家介紹HTML5中Checkbox標簽的深入全面解
    2025-06-13
  • HTML5無插件拖拽圖片上傳功能實現(xiàn)過程

    本實例展示了一種基于HTML5技術的圖片上傳功能,無需外部插件即可通過拖放圖片實現(xiàn)上傳,涉及到HTML5的拖放API和File API,以及使用CSS來增強用戶界面的交互性和視覺反饋,
    2025-05-16
  • HTML5 定位大全之相對定位、絕對定位和固定定位

    在HTML5和CSS中,定位(positioning)是控制元素在頁面上位置的重要機制,主要有四種定位方式:靜態(tài)定位(static)、相對定位(relative)、絕對定位(absolute)和固定定位(fixed),
    2025-05-13
  • HTML5中的Microdata與歷史記錄管理詳解

    Microdata作為HTML5新增的一個特性,它允許開發(fā)者在HTML文檔中添加更多的語義信息,以便于搜索引擎和瀏覽器更好地理解頁面內(nèi)容,本文將探討HTML5中Microdata的使用方法以及
    2025-04-21
  • HTML5表格語法格式詳解

    在HTML語法中,表格主要通過< table >、< tr >和< td >3個標簽構成,本文通過實例代碼講解HTML5表格語法格式,感興趣的朋友一起看看吧
    2025-04-21

最新評論

剑川县| 墨玉县| 香格里拉县| 平谷区| 宝丰县| 曲水县| 嘉峪关市| 乌海市| 荣昌县| 安仁县| 洱源县| 陆良县| 万盛区| 靖西县| 台中县| 大埔县| 佳木斯市| 乌兰浩特市| 镇平县| 蒙自县| 岳池县| 旬邑县| 融水| 故城县| 厦门市| 双鸭山市| 乳源| 英超| 汾西县| 昌图县| 阿拉善左旗| 北宁市| 明光市| 同江市| 油尖旺区| 沁阳市| 社旗县| 江城| 吉安市| 高台县| 营山县|