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不是基础的基础
Dec 24 Javascript
JavaScript Array扩展实现代码
Oct 14 Javascript
js 学习笔记(三)
Dec 29 Javascript
jquery $.ajax各个事件执行顺序
Oct 15 Javascript
yepnope.js使用详解及示例分享
Jun 23 Javascript
js拆分字符串并将分割的数据放到数组中的方法
May 06 Javascript
jQuery结合CSS制作动态的下拉菜单
Oct 27 Javascript
实例解析jQuery工具函数
Dec 01 Javascript
Node+OCR实现图像文字识别功能
Nov 26 Javascript
JS+CSS实现随机点名(实例代码)
Nov 04 Javascript
VUE中setTimeout和setInterval自动销毁案例
Sep 07 Javascript
Openlayers绘制地图标注
Sep 28 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相关资料
2006/10/09 PHP
php模拟asp中的XmlHttpRequest实现http请求的代码
2011/03/24 PHP
深入php常用函数的使用汇总
2013/06/08 PHP
laravel 使用auth编写登录的方法
2019/09/30 PHP
根据地区不同显示时间的javascript代码
2007/08/13 Javascript
JavaScript入门教程(2) JS基础知识
2009/01/31 Javascript
js trim函数 去空格函数与正则集锦
2009/11/20 Javascript
用jQuery打造TabPanel效果代码
2010/05/22 Javascript
基于jquery的bankInput银行卡账号格式化
2012/08/22 Javascript
浅析jquery的作用与优势
2013/12/02 Javascript
JavaScript中判断整数的多种方法总结
2014/11/08 Javascript
jQuery结合ajax实现动态加载文本内容
2015/05/19 Javascript
jQuery通过改变input的type属性实现密码显示隐藏切换功能
2017/02/08 Javascript
Easyui ueditor 整合解决不能编辑的问题(推荐)
2017/06/25 Javascript
Electron-vue开发的客户端支付收款工具的实现
2019/05/24 Javascript
微信小程序动画组件使用解析,类似vue,且更强大
2019/08/01 Javascript
微信小程序 组件的外部样式externalClasses使用详解
2019/09/06 Javascript
React-redux实现小案例(todolist)的过程
2019/09/29 Javascript
JS数组方法shift()、unshift()用法实例分析
2020/01/18 Javascript
javascript设计模式 ? 策略模式原理与用法实例分析
2020/04/21 Javascript
vue 子组件和父组件传值的示例
2020/09/11 Javascript
用Python程序抓取网页的HTML信息的一个小实例
2015/05/02 Python
在ironpython中利用装饰器执行SQL操作的例子
2015/05/02 Python
spyder常用快捷键(分享)
2017/07/19 Python
Django中cookie的基本使用方法示例
2018/02/03 Python
python 对txt中每行内容进行批量替换的方法
2018/07/11 Python
Python和Go语言的区别总结
2019/02/20 Python
Python实战之制作天气查询软件
2019/05/14 Python
PyTorch中topk函数的用法详解
2020/01/02 Python
tensorflow生成多个tfrecord文件实例
2020/02/17 Python
Python日志处理模块logging用法解析
2020/05/19 Python
CSS3中使用RGBA设置透明度的示例
2015/08/04 HTML / CSS
银行批评与自我批评
2014/02/10 职场文书
读群众路线心得体会
2014/03/07 职场文书
广告公司文案策划岗位职责
2015/04/14 职场文书
结婚喜宴迎宾词
2015/08/10 职场文书