這篇文章主要為大家展示了“l(fā)ayui如何實現(xiàn)多iframe頁面控制定時器運行”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“l(fā)ayui如何實現(xiàn)多iframe頁面控制定時器運行”這篇文章吧。

我們web頁面中有幾個頁面是有定時器在刷新的,并且查詢的內(nèi)容還不少,給服務(wù)器造成了不少壓力。這些接口已經(jīng)盡量優(yōu)化,能放到緩存的都放到緩存。然后主管又提了一個需求,就是我們使用的是layui多標簽iframe框架,當不在某個頁面的iframe時不要執(zhí)行定時器。我覺得這是一個挺不錯的提議,而且實現(xiàn)起來也不難。
粗略地考慮有兩個思路,一個是點擊標簽時開啟或關(guān)閉定時器,一個是定時器執(zhí)行時判斷所在的iframe是否隱藏,如果隱藏則不執(zhí)行定時器的方法。第一種維護麻煩,難免有錯漏的情況,而且和別的iframe有聯(lián)系,不好。第二種邏輯判斷簡單,只和定時器所在iframe有關(guān),雖然定時器一直在跑,不過只要里面的邏輯不執(zhí)行就行,重要的是減少給服務(wù)器的壓力。
那么怎么判斷定時器所在頁面是否隱藏呢?

獲取iframe所在元素的父元素,判斷是否有l(wèi)ayui-show類就好了。
function myInterval(func, time){
console.log("啟動定時器",func,time);
//點擊iframe對應(yīng)的標簽則直接執(zhí)行定時器方法。不過注意,這里我默認只執(zhí)行最后一個定時器方法,如果有多個定時器請自行更改。
top.$("li[lay-id='"+$(self.frameElement).attr("src")+"']").unbind('click').click(function(){
console.log(func,"方法調(diào)用");
func.call();
});
return setInterval(function(){
console.log("myInterval定時器調(diào)用");
if($(self.frameElement.parentElement).hasClass("layui-show")){
//判斷所在的頁面是否顯示
console.log(func,"方法調(diào)用");
console.log("定時器間隔"+time);
func.call();
}
}, time);
}以上是“l(fā)ayui如何實現(xiàn)多iframe頁面控制定時器運行”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!
網(wǎng)頁題目:layui如何實現(xiàn)多iframe頁面控制定時器運行-創(chuàng)新互聯(lián)
標題鏈接:http://www.chinadenli.net/article0/docjio.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站改版、定制開發(fā)、Google、做網(wǎng)站、企業(yè)網(wǎng)站制作、自適應(yīng)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容