簡體   English   中英

加載數據時暫停setInterval的最簡單/最有效的方法是什么? JavaScript / jQuery

[英]What's the easiest / most efficient way to pause setInterval while data is loading? JavaScript/Jquery

所以我有一個JS間隔在腳本上執行加載命令..並在div上顯示加載的數據。

一切都很完美,直到我將項目放到網上並看到一個問題(在后台)。

由於需要將setInterval設置為1秒間隔,並且很多時候數據加載所需的時間超過1秒,因此我看到后台正在發生加載堆棧...因為setInterval繼續觸發$ .load()每秒調用一次,而不管是否加載了任何數據。

我當時正在考慮設置一個全局變量“ is_loading”,以便在該間隔中添加到我的函數中,如果“ is_loading”為true,則跳過例程的其余部分,..一旦最近的加載調用完成,它將設置is_loading = false。

這樣間隔就保持觸發/第二個沒有負載的調用在后台堆疊...

但是,由於我在整個頁面上有幾個時間間隔在做負載(請不要問為什么哈哈),我發現每個時間間隔都這樣做很麻煩。.因此,我想知道有什么事情可以像事件一樣“全局”地進行當前頁面上當前未完成的加載/獲取/發布的某種偵聽器?

建議會很棒

就像其他人說的那樣,只要請求完成,我都會使用setTimeout發出新請求。

為了處理計時器上的多個請求,我建議制作某種主計時器/計划程序,以減少遍歷運行的setTimeouts的數量。 當我做類似的事情時,谷歌的這篇文章對我很有幫助:

http://googlecode.blogspot.com/2009/07/gmail-for-mobile-html5-series-using.html

這里有一些很棒的建議(和提醒),但是我要做的是創建自己的setInterval函數,該函數可以執行我想做的事情。

myInterval(function,time,hold_variable,attempts)其中,hold_variable = window.variable在執行實際功能之前已發出並檢查。 這是相同的變量名,我的函數在完成時將設置回0,並允許再次調用自身

trys =可選變量,由於hold_variable,間隔嘗試調用該函數失敗的次數。

在setInterval方面,這是一個非常簡單的解決方案。.唯一的不便之處是我的函數需要“設置”它們的每個hold_variables(每個函數的微小修改)...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM