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 相关文章推荐
js jquery验证银行卡号信息正则学习
Jan 21 Javascript
JScript分割字符串示例代码
Sep 04 Javascript
BootStrap响应式导航条实例介绍
May 06 Javascript
node+experss实现爬取电影天堂爬虫
Nov 20 Javascript
js实现无缝滚动图(可控制当前滚动的方向)
Feb 22 Javascript
javascript内存分配原理实例分析
Apr 10 Javascript
基于Node.js模板引擎教程-jade速学与实战1
Sep 17 Javascript
JS实现按钮颜色切换效果
Sep 05 Javascript
JS运动特效之链式运动分析
Jan 24 Javascript
JavaScript new对象的四个过程实例浅析
Jul 31 Javascript
ES6基础之解构赋值(destructuring assignment)
Feb 21 Javascript
微信小程序实现拍照画布指定区域生成图片
Jul 18 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
Win2003服务器安全加固设置--进一步提高服务器安全性
2007/05/23 PHP
PHP中基本符号及使用方法
2010/03/23 PHP
PHP+Mysql+jQuery实现发布微博程序 php篇
2015/10/15 PHP
php微信公众号开发(4)php实现自定义关键字回复
2016/12/15 PHP
搭建PhpStorm+PhpStudy开发环境的超详细教程
2020/09/17 PHP
文本框的字数限制功能jquery插件
2009/11/24 Javascript
JS+css 图片自动缩放自适应大小
2013/08/08 Javascript
jquery判断元素的子元素是否存在的示例代码
2014/02/04 Javascript
jquery的attr方法禁用表单元素禁用输入内容
2014/06/23 Javascript
js实例属性和原型属性示例详解
2014/11/23 Javascript
BootStrap.css 在手机端滑动时右侧出现空白的原因及解决办法
2016/06/07 Javascript
String字符串截取的四种方式总结
2016/11/28 Javascript
vue+vuex+axios+echarts画一个动态更新的中国地图的方法
2017/12/19 Javascript
使用svg实现动态时钟效果
2018/07/17 Javascript
浅析js中mvvm模式实现的原理
2018/10/06 Javascript
nodejs 使用 js 模块的方法实例详解
2018/12/04 NodeJs
使用Python编写简单网络爬虫抓取视频下载资源
2014/11/04 Python
Python 中Pickle库的使用详解
2018/02/24 Python
数据清洗--DataFrame中的空值处理方法
2018/07/03 Python
Python中几种属性访问的区别与用法详解
2018/10/10 Python
对python中的 os.mkdir和os.mkdirs详解
2018/10/16 Python
使用HTML5 Canvas API控制字体的显示与渲染的方法
2016/03/24 HTML / CSS
美国在线乐器和设备商店:Musician’s Friend
2018/07/06 全球购物
斯福泰克软件测试面试题
2015/02/16 面试题
Python里面如何实现tuple和list的转换
2012/06/13 面试题
出纳的岗位职责
2013/11/09 职场文书
二手房购房意向书范本
2014/04/01 职场文书
完整版商业计划书
2014/09/15 职场文书
教育实习指导教师评语
2014/12/31 职场文书
绵山导游词
2015/02/05 职场文书
党员干部公开承诺书范文
2015/04/27 职场文书
Memcached介绍及php-memcache扩展安装
2021/04/01 PHP
详解Python+OpenCV绘制灰度直方图
2022/03/22 Python
如何Tomcat中使用ipv6地址
2022/05/06 Servers
Python可视化神器pyecharts绘制地理图表
2022/07/07 Python
postgresql如何找到表中重复数据的行并删除
2023/05/08 MySQL