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 相关文章推荐
滚动经典最新话题[prototype框架]下编写
Oct 03 Javascript
jquery easyui中treegrid用法的简单实例
Feb 18 Javascript
JS在onclientclick里如何控制onclick的执行
May 30 Javascript
vue.js初学入门教程(1)
Nov 03 Javascript
AngularJS全局scope与Isolate scope通信用法示例
Nov 22 Javascript
微信小程序 image组件binderror使用例子与js中的onerror区别
Feb 15 Javascript
Vue.js 中的 $watch使用方法
May 25 Javascript
React利用插件和不用插件实现双向绑定的方法详解
Jul 03 Javascript
手把手教你使用vue-cli脚手架(图文解析)
Nov 08 Javascript
react router4+redux实现路由权限控制的方法
May 03 Javascript
vue内置组件transition简单原理图文详解(小结)
Jul 12 Javascript
Vue快速实现通用表单验证的示例代码
Jan 09 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下利用header()函数设置浏览器缓存的代码
2010/09/01 PHP
解决php使用异步调用获取数据时出现(错误c00ce56e导致此项操作无法完成)
2013/07/03 PHP
php 防止表单重复提交两种实现方法
2016/11/03 PHP
LAMP环境使用Composer安装Laravel的方法
2017/03/25 PHP
Yii2.0使用阿里云OSS的SDK上传图片、下载、删除图片示例
2017/09/20 PHP
phpStudy 2016 使用教程详解(支持PHP7)
2017/10/18 PHP
各种常用浏览器getBoundingClientRect的解析
2009/05/21 Javascript
javascript options属性集合操作代码
2009/12/28 Javascript
JS中Date日期函数中的参数使用介绍
2014/01/02 Javascript
js实现匹配时换色的输入提示特效代码
2015/08/17 Javascript
javascript实现图片延迟加载方法汇总(三种方法)
2015/08/27 Javascript
JS动态创建元素的两种方法
2016/04/20 Javascript
Bootstrap警告框(Alert)插件使用方法
2017/03/21 Javascript
Bootstrap布局之栅格系统学习笔记
2017/05/04 Javascript
JavaScript用document.write()输出换行的示例代码
2020/11/26 Javascript
Jquery+javascript实现支付网页数字键盘
2020/12/21 jQuery
简单的python后台管理程序
2017/04/13 Python
python Pygame的具体使用讲解
2017/11/03 Python
Numpy截取指定范围内的数据方法
2018/11/14 Python
python实现自动获取IP并发送到邮箱
2018/12/26 Python
Python最小二乘法矩阵
2019/01/02 Python
python对常见数据类型的遍历解析
2019/08/27 Python
python 利用turtle库绘制笑脸和哭脸的例子
2019/11/23 Python
keras读取h5文件load_weights、load代码操作
2020/06/12 Python
Django windows使用Apache实现部署流程解析
2020/10/12 Python
百联网上商城:i百联
2017/01/28 全球购物
VELTRA台湾:世界自由行专家
2017/08/15 全球购物
潘多拉意大利官方网上商城:网上选购PANDORA珠宝
2018/10/07 全球购物
Raffaello Network西班牙:意大利拉斐尔时尚购物网
2019/03/12 全球购物
美国滑板店:Tactics
2020/11/08 全球购物
小区门卫值班制度
2014/01/24 职场文书
詹天佑教学反思
2014/04/30 职场文书
药店促销活动策划方案
2014/08/24 职场文书
运动会广播稿150字(9篇)
2014/09/20 职场文书
大学生考试作弊检讨书1000字
2014/10/14 职场文书
2016年优秀团员事迹材料
2016/02/25 职场文书