校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > HTML5實現頁面切換激活的PageVisibility API使用初探

HTML5實現頁面切換激活的PageVisibility API使用初探

熱門標簽:電話機器人如何 高德地圖標注賓館位置 聯通400電話申請 百應電銷機器人產業 飛亞外呼系統 電視購物電銷外呼系統 杭州營銷電銷機器人供應商 貸款電銷人工和機器人哪個好 西寧智能外呼系統加盟

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

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

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

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

因此,使用 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 的可見性改變時觸發該事件。

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

這個 Demo 的作用是監聽標簽的可見性是否改變 ,并且在標簽可見性發生改變時產生提示。

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

JavaScript Code復制內容到剪貼板
  1. function browerKernel(){   
  2.     
  3.     var result;   
  4.     
  5.     ['webkit''moz''o''ms'].forEach(function(prefix){   
  6.     
  7.         iftypeof document[ prefix + 'Hidden' ] != 'undefined' ){   
  8.             result = prefix;   
  9.         }   
  10.     });   
  11.     
  12.     return result;   
  13.     
  14. }   
  15.     
  16. function init(){   
  17.     
  18.     prefix = browerKernel();   
  19.     
  20.     var showTip = document.getElementById('showTip');   
  21.     
  22.     document.addEventListener( prefix  + 'visibilitychange'function onVisibilityChange(e){   
  23.     
  24.         var tip = null;   
  25.                 
  26.         if( document[ prefix + 'VisibilityState' ] == 'hidden' ) tip = '<p>離開頁面</p>';   
  27.         else if( document[ prefix + 'VisibilityState' ]  == 'visible' ) tip = '<p>進入頁面</p>';   
  28.     
  29.         showTip.innerHTML = showTip.innerHTML + tip;   
  30.     });   
  31. }   
  32.     
  33. window.onload = init();   
  34.   

再再來看一個具體的例子,代碼如下:

JavaScript Code復制內容到剪貼板
  1. <!DOCTYPE HTML>       
  2. <html>       
  3. <head>       
  4.      <script type="text/javascript">       
  5.           timer = 0;       
  6.           function onLoad(){       
  7.                document.addEventListener("visibilitychange",stateChanged);       
  8.                document.addEventListener("webkitvisibilitychange", stateChanged);       
  9.                document.addEventListener("msvisibilitychange", stateChanged);       
  10.           }       
  11.           function stateChanged(){       
  12.                console.log(document.webkitVisibilityState);       
  13.                if(document.hidden || document.webkitHidden || document.msHidden){       
  14.                     //new tab or window minimized     
  15.                     timer = new Date().getTime();       
  16.                }       
  17.                else {       
  18.                     alert('You were away for ' + (new Date().getTime()-timer)/1000+ ' seconds.')       
  19.                }       
  20.           }       
  21.      </script>       
  22. </head>       
  23. <body onLoad="onLoad()">       
  24. </body>       
  25. </html>    

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

標簽:晉中 玉溪 邯鄲 安慶 牡丹江 撫州 煙臺 內蒙古

巨人網絡通訊聲明:本文標題《HTML5實現頁面切換激活的PageVisibility API使用初探》,本文關鍵詞  HTML5,實現,頁面,切換,激,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《HTML5實現頁面切換激活的PageVisibility API使用初探》相關的同類信息!
  • 本頁收集關于HTML5實現頁面切換激活的PageVisibility API使用初探的相關信息資訊供網民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    中文字幕的久久| 国产精品久久三| 一区二区三区精品| 欧美一a一片一级一片| 亚洲精品国产一区二区三区四区在线| 成熟亚洲日本毛茸茸凸凹| 中文字幕一区二区三区乱码在线| 波多野结衣在线aⅴ中文字幕不卡| 中文字幕中文字幕在线一区| 色女孩综合影院| 亚洲国产一区二区三区| 欧美一区二区人人喊爽| 国产精品资源在线| 中文字幕一区二区三区四区| 欧美日韩你懂的| 狠狠狠色丁香婷婷综合激情| 国产精品夫妻自拍| 欧美性色aⅴ视频一区日韩精品| 日韩精品一二三区| 久久久久久久久久久久久女国产乱 | 日韩视频中午一区| 国产精品538一区二区在线| 最新热久久免费视频| 欧美日韩国产高清一区二区| 国产综合久久久久影院| 亚洲欧洲日产国码二区| 欧美丰满一区二区免费视频| 国产精品亚洲视频| 精彩视频一区二区| 亚洲日穴在线视频| 欧美xxxxx裸体时装秀| 国产精品一卡二| 婷婷国产v国产偷v亚洲高清| 国产婷婷一区二区| 6080亚洲精品一区二区| 成人美女视频在线看| 日韩va亚洲va欧美va久久| 国产精品污网站| 91精品啪在线观看国产60岁| av不卡一区二区三区| 成人免费在线观看入口| 欧美影院精品一区| 最新久久zyz资源站| 国产一区二三区| 91精品国产福利在线观看 | 欧美日韩精品福利| 亚洲丝袜另类动漫二区| 国产精品中文有码| 欧美xfplay| 韩国av一区二区三区在线观看| 日韩欧美色综合| 免费在线观看精品| 久久婷婷色综合| 精彩视频一区二区三区| 久久久久久久久99精品| 5858s免费视频成人| 欧美精品一区二区三区在线播放 | 久久久久久久久久久黄色| 欧美精品日韩综合在线| 自拍偷拍亚洲欧美日韩| 天堂在线一区二区| 亚洲免费观看视频| 国产精品少妇自拍| 欧美三区在线视频| 91精品福利在线| 99re热这里只有精品免费视频| 激情综合色播五月| 日本欧美久久久久免费播放网| 国产亚洲综合性久久久影院| 老色鬼精品视频在线观看播放| 日韩视频中午一区| 极品美女销魂一区二区三区| 国产精品国产三级国产aⅴ入口 | 色天天综合久久久久综合片| 韩国三级在线一区| 老司机精品视频线观看86| 日本麻豆一区二区三区视频| 亚洲成人综合在线| 五月天丁香久久| 国产精品女上位| 久久久国产精品不卡| 久久久一区二区三区| 国产婷婷精品av在线| 久久久久久黄色| 日本一区二区免费在线观看视频 | 午夜精品影院在线观看| 一区二区三区免费在线观看| 亚洲欧美电影一区二区| 亚洲视频精选在线| 一区二区三区四区高清精品免费观看 | 国产白丝精品91爽爽久久| 亚洲一区二区高清| 亚洲三级免费电影| 国产欧美精品一区二区色综合朱莉| 欧美日韩成人激情| 欧美精选在线播放| 欧洲在线/亚洲| 欧美日韩在线免费视频| 99久久精品一区二区| 中文av一区特黄| 一区二区三区在线观看视频| 亚洲综合成人在线| 麻豆专区一区二区三区四区五区| 久久国内精品自在自线400部| 亚洲欧美日韩国产综合| 国产精品高潮久久久久无| 中文字幕乱码一区二区免费| 国产欧美日韩另类一区| 久久久美女毛片| 欧美国产一区二区在线观看| 91麻豆精品国产91久久久久久| 99精品国产视频| 色妹子一区二区| 日韩一区二区在线播放| 久久夜色精品国产噜噜av| 亚洲精品一区二区三区精华液| 中文字幕亚洲欧美在线不卡| 中文字幕制服丝袜一区二区三区| 亚洲素人一区二区| 日本麻豆一区二区三区视频| 国产又粗又猛又爽又黄91精品| 韩国av一区二区三区| 91蜜桃免费观看视频| 麻豆精品蜜桃视频网站| 亚洲成国产人片在线观看| 日本视频一区二区三区| 91亚洲精华国产精华精华液| 国产精品少妇自拍| 亚洲精品一区二区三区精华液 | 欧美性受极品xxxx喷水| 精品国产91乱码一区二区三区| 亚洲欧洲av另类| 免费在线一区观看| 97成人超碰视| 久久久久国产精品麻豆| 亚洲va天堂va国产va久| 成人高清在线视频| 精品蜜桃在线看| 经典三级在线一区| 欧美精品丝袜久久久中文字幕| 久久精品视频免费观看| 舔着乳尖日韩一区| 欧美精品一区二区三区很污很色的 | 一区二区在线观看免费视频播放| 91精品国产色综合久久久蜜香臀| 色女孩综合影院| 男女激情视频一区| 亚洲一区在线观看网站| 成人午夜视频网站| 日韩在线观看一区二区| 久久新电视剧免费观看| 欧美一区二区三区四区五区| 欧美日韩在线播放一区| 在线精品视频小说1| 91蜜桃网址入口| 91视视频在线直接观看在线看网页在线看| 精品一区二区在线观看| 久久99国产精品免费| 久久99国产精品久久| 国产一区二三区好的| 成人爽a毛片一区二区免费| 国产夫妻精品视频| av中文字幕亚洲| 色噜噜狠狠成人中文综合| 欧美色图天堂网| 欧美日韩免费一区二区三区| 欧美日韩国产123区| 日韩视频免费观看高清完整版在线观看 | 欧美日韩国产影片| 一本一本久久a久久精品综合麻豆 一本一道波多野结衣一区二区 | 欧美精品日韩一区| 久久综合久久综合九色| thepron国产精品| 国产精品国产自产拍高清av| 91精品国产91热久久久做人人| www.av亚洲| 在线看不卡av| 欧美亚洲国产一卡| 欧美色图第一页| 精品成a人在线观看| 精品999久久久| 欧美亚洲高清一区二区三区不卡| 九色porny丨国产精品| 国产精品久久久久久久久免费樱桃 | 精品视频免费在线| 不卡的电影网站| 粉嫩av一区二区三区粉嫩| 精品综合免费视频观看| 老司机午夜精品99久久| 久久99久国产精品黄毛片色诱| 麻豆精品一区二区综合av| 国产精品综合二区| 国产精品综合久久| 麻豆一区二区在线| 亚洲精品午夜久久久| 国产免费成人在线视频| 51精品国自产在线| 欧美人与性动xxxx| 欧美精品少妇一区二区三区| 精品视频在线免费|