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

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

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

HTMl5 推出了一個(gè)很“特別”的 API Page Visibility ,之所以說(shuō)它特別,是因?yàn)檫@個(gè) API 關(guān)注的是一個(gè)很少人留意的功能 —— 瀏覽器標(biāo)簽( tab ) 是否被激活。這里必須解釋一下,這個(gè)“激活”,指的是這個(gè)標(biāo)簽是否正被用戶瀏覽,或者說(shuō)是否為當(dāng)前標(biāo)簽。

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

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

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

因此,使用 Page Visibility 無(wú)論是對(duì)于用戶還是服務(wù)器都有好處。

接下來(lái)正式介紹一下這個(gè) API 。Page Visibility 會(huì)在瀏覽器的 document 對(duì)象上添加兩個(gè)屬性 hidden 和 visibilityState 。如果當(dāng)前的標(biāo)簽被激活了,那么 document.hidden 的值為 false ,否則為 true 。visibilityState 則有4個(gè)可能值:

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

好了,介紹完屬性,放上一個(gè) Demo (打開(kāi)后切換標(biāo)簽即可測(cè)試)。

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

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

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

相關(guān)文章

  • HTML5實(shí)現(xiàn)的移動(dòng)端購(gòu)物車自動(dòng)結(jié)算功能示例代碼

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

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

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

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

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

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

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

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

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

    在HTML語(yǔ)法中,表格主要通過(guò)< table >、< tr >和< td >3個(gè)標(biāo)簽構(gòu)成,本文通過(guò)實(shí)例代碼講解HTML5表格語(yǔ)法格式,感興趣的朋友一起看看吧
    2025-04-21

最新評(píng)論

湟中县| 湖北省| 望城县| 华坪县| 沂源县| 十堰市| 忻州市| 石泉县| 常宁市| 东阳市| 宣化县| 禄丰县| 香格里拉县| 灌南县| 吴桥县| 栾城县| 天全县| 孟州市| 东丽区| 迭部县| 聂拉木县| 揭东县| 开平市| 文安县| 纳雍县| 岑溪市| 神池县| 龙川县| 台东市| 临海市| 台山市| 同仁县| 中牟县| 科技| 泉州市| 阿克苏市| 南澳县| 临沧市| 酒泉市| 万全县| 阿巴嘎旗|