jQuery   发布时间:2022-04-19  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了jquery – 如何检测移动设备上的浏览器?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在开发的应用程序是基于jQuery Mobile和一些Ajax来刷新页面的部分.像使用自动刷新的网站一样,我想在一些条件(时间/可见性等)之后停止刷新,所以我的服务器不会被不必要的请求轰炸.应用程序具有通常由用户检查的状态屏幕,理想情况下,我的脚本将知道浏览器窗口已经成为焦点,这将是一个很好的刷新时间.我以前在桌面webapps中做到这一点,但我注意到不同平台和浏览器之间的移动端有很多变化,例如:

> window.onfocus()在浏览器获取焦点时/不会触发
>当浏览器中的标签页被切换时,window.onfocus()不会触发/不触发
>在浏览器之间的标签开关和/或开关之间没有挂起Javascript

迄今为止,我所能做的最好的一组启发式方法是在检测到用户页面进行交互时查看可用的事件,但是它很笨重,并且会导致用户跳回到页面并且必须手动刷新.不是很好.

任何聪明的技巧来解决这个问题?

解决方法

如果您只想知道浏览器窗口是否已经失焦,请使用requestAnimationFrame函数.
window.requestAnimFrame = window.requestAnimationFrame ||
                          window.mozRequestAnimationFrame || 
                          <add browsers here>

然后在你的代码

var lastupdate = new Date()
(function loop() {
      var Now = new Date();

      if ( Now - lastupdate > <some treshold like 1 second> ) {
          // browser was suspended and did come back to focus
      }
      lastupdate = Now;

      window.requestAnimFrame(loop);
})();

技巧是,如果标签或窗口失焦,则浏览器不会给出动画框架.正常的setInterval和setTimeouts仍然可以正常工作.当窗口在焦点上时,此循环将持续运行,但开销最小,在移动设备中每秒钟可能会调整3-5次.

大佬总结

以上是大佬教程为你收集整理的jquery – 如何检测移动设备上的浏览器?全部内容,希望文章能够帮你解决jquery – 如何检测移动设备上的浏览器?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: