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 相关文章推荐
JScript中的"this"关键字使用方式补充材料
Mar 08 Javascript
javascript Prototype 对象扩展
May 15 Javascript
flash 得到自身url参数的代码
Nov 15 Javascript
JavaScript回调(callback)函数概念自我理解及示例
Jul 04 Javascript
Jquery选择器中使用变量实现动态选择例子
Jul 25 Javascript
有关Promises异步问题详解
Nov 13 Javascript
微信小程序 input表单与redio及下拉列表的使用实例
Sep 20 Javascript
AngularJS 控制器 controller的详解
Oct 17 Javascript
vue中axios的封装问题(简易版拦截,get,post)
Jun 15 Javascript
react-native android状态栏的实现
Jun 15 Javascript
js实现无缝滚动双图切换效果
Jul 09 Javascript
VUE使用 wx-open-launch-app 组件开发微信打开APP功能
Aug 11 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来自动调用不同服务器上的flash
2006/10/09 PHP
php 引用(&)详解
2009/11/20 PHP
关于PHP堆栈与列队的学习
2013/06/21 PHP
YII分模块加载路由的实现方法
2018/10/01 PHP
浏览器脚本兼容 文本框中,回车键触发事件的兼容
2010/06/21 Javascript
重构Javascript代码示例(重构前后对比)
2013/01/23 Javascript
解决JS浮点数运算出现Bug的方法
2013/03/12 Javascript
jquery scrollTop方法根据滚动像素显示隐藏顶部导航条
2013/05/27 Javascript
解决jquery插件冲突的问题
2014/01/23 Javascript
javascript操纵OGNL标签示例代码
2014/06/16 Javascript
微信小程序开发之从相册获取图片 使用相机拍照 本地图片上传
2017/04/18 Javascript
详解angularjs的数组传参方式的简单实现
2017/07/28 Javascript
JavaScript贪吃蛇小组件实例代码
2017/08/20 Javascript
细说webpack源码之compile流程-rules参数处理技巧(2)
2017/12/26 Javascript
Vue多种方法实现表头和首列固定的示例代码
2018/02/02 Javascript
Vue中使用vue-i18插件实现多语言切换功能
2018/04/25 Javascript
select2 ajax 设置默认值,初始值的方法
2018/08/09 Javascript
傻瓜式vuex语法糖kiss-vuex整理
2018/12/21 Javascript
封装微信小程序http拦截器过程解析
2019/08/13 Javascript
浅谈Vue3.0新版API之composition-api入坑指南
2020/04/30 Javascript
vue 修改 data 数据问题并实时显示操作
2020/09/07 Javascript
python如何实现反向迭代
2018/03/20 Python
详解python中的Turtle函数库
2018/11/19 Python
什么是python的id函数
2020/06/11 Python
浅谈Keras的Sequential与PyTorch的Sequential的区别
2020/06/17 Python
python实现图像外边界跟踪操作
2020/07/13 Python
python 实现朴素贝叶斯算法的示例
2020/09/30 Python
HTML5-WebSocket实现聊天室示例
2016/12/15 HTML / CSS
英国领先的高街书籍专家:Waterstones
2018/02/01 全球购物
沃尔玛加拿大:Walmart.ca
2020/03/02 全球购物
加拿大著名的奢侈品购物网站:SSENSE(支持中文)
2020/06/25 全球购物
解释一下抽象方法和抽象类
2016/08/27 面试题
应征英语教师求职信
2013/11/27 职场文书
商场活动策划方案
2014/01/24 职场文书
2014年九一八事变演讲稿
2014/09/14 职场文书
校友回访母校寄语
2015/02/26 职场文书