layui多iframe页面控制定时器运行的方法


Posted in Javascript onSeptember 05, 2019

我们web页面中有几个页面是有定时器在刷新的,并且查询的内容还不少,给服务器造成了不少压力。这些接口已经尽量优化,能放到缓存的都放到缓存。然后主管又提了一个需求,就是我们使用的是layui多标签iframe框架,当不在某个页面的iframe时不要执行定时器。我觉得这是一个挺不错的提议,而且实现起来也不难。

粗略地考虑有两个思路,一个是点击标签时开启或关闭定时器,一个是定时器执行时判断所在的iframe是否隐藏,如果隐藏则不执行定时器的方法。第一种维护麻烦,难免有错漏的情况,而且和别的iframe有联系,不好。第二种逻辑判断简单,只和定时器所在iframe有关,虽然定时器一直在跑,不过只要里面的逻辑不执行就行,重要的是减少给服务器的压力。

那么怎么判断定时器所在页面是否隐藏呢?

layui多iframe页面控制定时器运行的方法

获取iframe所在元素的父元素,判断是否有layui-show类就好了。

function myInterval(func, time){
 console.log("启动定时器",func,time);
  //点击iframe对应的标签则直接执行定时器方法。不过注意,这里我默认只执行最后一个定时器方法,如果有多个定时器请自行更改。
 top.$("li[lay-id='"+$(self.frameElement).attr("src")+"']").unbind('click').click(function(){
 console.log(func,"方法调用");
 func.call();
 });
 return setInterval(function(){
 console.log("myInterval定时器调用");
 if($(self.frameElement.parentElement).hasClass("layui-show")){
      //判断所在的页面是否显示
  console.log(func,"方法调用");
  console.log("定时器间隔"+time);
  func.call();
 }
 }, time);
}

以上这篇layui多iframe页面控制定时器运行的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Javascript String对象扩展HTML编码和解码的方法
Jun 02 Javascript
firefo xml 读写实现js代码
Jun 11 Javascript
精选的10款用于构建良好易用性网站的jQuery插件
Jan 23 Javascript
Array, Array Constructor, for in loop, typeof, instanceOf
Sep 13 Javascript
基于jquery的文字向上跑动类似跑马灯的效果
Sep 22 Javascript
AngularJS初始化静态模板详解
Jan 14 Javascript
javascript数组去重小结
Mar 07 Javascript
深入理解jquery中的each用法
Dec 14 Javascript
jQuery+PHP+Mysql实现抽奖程序
Apr 12 jQuery
webpack4打包vue前端多页面项目
Sep 17 Javascript
在vue中使用Echarts利用watch做动态数据渲染操作
Jul 20 Javascript
Vue检测屏幕变化来改变不同的charts样式实例
Oct 26 Javascript
解决layer.msg 不居中 ifram中的问题
Sep 05 #Javascript
JS中比Switch...Case更优雅的多条件判断写法
Sep 05 #Javascript
layer实现弹出层自动调节位置
Sep 05 #Javascript
vue使用i18n实现国际化的方法详解
Sep 05 #Javascript
vue实现手机号码的校验实例代码(防抖函数的应用场景)
Sep 05 #Javascript
一文看懂如何简单实现节流函数和防抖函数
Sep 05 #Javascript
React路由鉴权的实现方法
Sep 05 #Javascript
You might like
PHP清除数组中所有字符串两端空格的方法
2014/10/20 PHP
WordPress中"无法将上传的文件移动至"错误的解决方法
2015/07/01 PHP
PHP浮点数的一个常见问题
2016/03/10 PHP
php设计模式之职责链模式实例分析【星际争霸游戏案例】
2020/03/27 PHP
Java 正则表达式学习总结和一些小例子
2012/09/13 Javascript
JS定时关闭窗口的实例
2013/05/22 Javascript
jQuery中bind,live,delegate与one方法的用法及区别解析
2013/12/30 Javascript
javascript记录文本框内文字个数检测文字个数变化
2014/10/14 Javascript
JavaScript知识点总结(十六)之Javascript闭包(Closure)代码详解
2016/05/31 Javascript
AngularJS 中的事件详解
2016/07/28 Javascript
AngularJS实现星星等级评分功能
2016/09/24 Javascript
jQuery无缝轮播图代码
2016/12/22 Javascript
Javascript中常用类型的格式化方法小结
2016/12/26 Javascript
JavaScript队列函数和异步执行详解
2017/06/19 Javascript
ReactNative踩坑之配置调试端口的解决方法
2017/07/28 Javascript
微信小程序 rich-text的使用方法
2017/08/04 Javascript
讲解vue-router之命名路由和命名视图
2018/05/28 Javascript
详解如何探测小程序返回到webview页面
2019/05/14 Javascript
js实现无缝滚动双图切换效果
2019/07/09 Javascript
JS中的算法与数据结构之队列(Queue)实例详解
2019/08/20 Javascript
mpvue网易云短信接口实现小程序短信登录的示例代码
2020/04/03 Javascript
pycharm安装图文教程
2017/05/02 Python
Pyqt5实现英文学习词典
2019/06/24 Python
pandas DataFrame 行列索引及值的获取的方法
2019/07/02 Python
numpy:np.newaxis 实现将行向量转换成列向量
2019/11/30 Python
Python中类似于jquery的pyquery库用法分析
2019/12/02 Python
Python如何读写字节数据
2020/08/05 Python
深入浅析CSS3中的Flex布局整理
2020/04/27 HTML / CSS
党员学习十八大感想
2014/01/17 职场文书
离婚协议书该怎么写
2014/10/04 职场文书
信息合作协议书
2014/10/09 职场文书
2014年十八届四中全会思想汇报范文
2014/10/17 职场文书
党政领导班子群众路线对照检查材料
2014/10/26 职场文书
2015年小学语文教学工作总结
2015/05/25 职场文书
2016新年年会主持词
2015/07/06 职场文书
win7配置本地ftp服务器的图文教程
2022/08/05 Servers