setTimeout代替setInterval的寫法以及setInterval的弊端以及越來越快的解決辦法
平常經常遇到的一個問題,很多人想間隔時間執行一些事件的時候,第一時間就會想到用setInterval,但是setInterval村子啊不少弊端哦。
弊端1:setInterval會無視錯誤程式碼,即使程式碼報錯,還是會一直執行下去。
弊端2:setInterval會無視網路延遲,很多人會有需求需要1秒更新一次資料,然後就有可能會定時傳送請求給伺服器請求,假如伺服器請求資料發生延遲等等情況的時候,setInterval不會等到請求資料完之後才去去執行下一次請求,他會在當你發生第一次請求的時候就已經開始計時,並且無論有沒有請求完成,只有時間一到下一秒的時候,就會再次傳送請求。很容造成請求堵塞,或者渲染堵塞,嚴重的會之間卡死。
弊端3:很多時候越跑越快的問題。
解決方案:使用setTimeout和遞迴(自我呼叫)
例如:
使用 setInterval 方案(不推薦使用)
setInterval(function(){ console.log('做點什麼吧') },1000)
使用 setTimeout 方案 (推薦使用,完美代替setInterval)
var demo = function(){ console.log('做點什麼吧') setTimeout(demo, 1000) }
相關推薦
VMware 安裝CentOS 6.5圖文步驟 以及安裝後無法聯網的解決辦法
es2017 網絡連接 角色 好用 成功 ddr sysconf 命名 its 一、VMwareWorkstation10 中安裝Centos6.5(64位)步驟: 首先下載vmware 和centos6.5 1. 打開VMware-workstation點擊&
MySql升級5.7方法以及Navicat連線資料庫報2049解決辦法
今天需要升級mysql到5.8,就按照下面的方法來升級的,親測可行: 1:停止原來的MySQL服務,開啟工作管理員,找到mysqld的程序名,右鍵結束任務。 2:備份原來資料庫的檔案,在C:\ProgramData\MySQL 相應的版本目錄下面,有data目錄,將此目
linux安裝redis以及遇到的各種問題和解決辦法
去官網下載redis ,官網下載地址: redis下載地址, 下載後的檔案上傳至linux 。 使用 tar命令解壓該檔案: tar -zxvf redis-3.0.0.tar.gz 解壓後如下所示: 進入解壓後的目錄使用make命令,進行編譯安裝,卻遇
vs2015不支援ArcGIS Engine以及丟失控制元件和模板解決辦法
轉載請註明原文連結:http://blog.csdn.net/u012692537/article/details/52053771VS中丟失ArcGIS 控制元件和模板的解決方法(看了網上一些方法,根據實際操作結果寫的,版本不一樣可能略有差別)。本人在vs2015環境下安裝
SQL Server 2008 R2安裝說明以及無法通過IP訪問的解決辦法
專案中要用sql,安裝過程中遇到點小問題,把過程寫出來,也許對其他朋友有用 一路Next的步驟我就不配圖了 安裝環節 1、如果只是使用SQL Server服務以及管理器,只需要選擇以下勾選項即可 2、點選按鈕“對所有SQL Server服務使用相同的賬戶” 3、
GitHub上傳程式碼的方法以及出現的一些錯誤的解決辦法
最近想把之前寫的網頁掛到網上去,搜尋後發現GitHub的homepage可以實現。 昨天花了半天的時間在從GitHub建倉庫開始,最終把我的網頁成功掛到網上。中間出現了一些問題,後來通過百度解決了。所以就想把昨天找到的一些教程和問題解決辦法總結起來,方便自己也方便大家。同時
eclipse匯出JAVA DOC文件以及匯出java doc編碼錯誤解決辦法
使用eclipse生成文件(javadoc)主要有三種方法: 1,在專案列表中按右鍵,選擇Export(匯出),然後在Export(匯出)對話方塊中選擇java下的javadoc,提交到下一步。 在Javadoc Generation對話方塊中有兩個地方要注意的: java
bootstrapValidator關於js賦值以及選擇日期不觸發驗證解決辦法
剛開始寫部落格,都說不寫部落格不能成為大神,這個習慣倒是不錯,以前遇到問題一直在百度上問,是時候給別人做做貢獻了,剛使用bootstrap框架,這個前端框架確實很厲害,不過因為一直是自己一個人研究,網上的給的答案有些基本不是太清楚,所以遇到不少坑,不過還好都一一已經解決,我
Android SDK更新以及ADT更新出現問題的解決辦法
使用SDK Manager更新時出現問題 Failed to fetch URL https://dl-ssl.google.com/android/repository/repository-6.xml, reason: Connection to https://dl
hive 部署需要注意的幾點以及Version information not found 錯誤解決辦法
安裝HIVE 過程中要注意 1,mysql 是否正常執行 2. 建立好mysql 使用者並分配好相應的訪問許可權以及資料庫埠號等 3. mysql-connector-java-5.1.26-bin.jar 是否放到hive/lib 目錄下 建議修改許可權為777
讓Vue-cli生成vue+webpack的專案為vue1.0版本以及端口占用問題解決辦法
Vue-cli生成1.0版本的vue+webpack的專案模板 還記得我們上篇用vue-cli構建vue專案嗎,當我們開啟elema專案中package.json的時候,發現: 也就是說,運用此種方式構建的預設是Vue2.x, npm install
Oracle11g建立表空間語句以及ORA-01109:資料庫未開啟(解決辦法)
ORA-01033:ORACLE initialization or shutdown解決問題第二步:命令模式如下: SQL> startup mount ORACLE 例程已經啟動。 Total System Global Area 3290345472 bytes Fixed Size
Web API,從簡單型別到複雜型別的引數傳遞用例,以及傳遞簡單string型別的解決辦法
http://www.cnblogs.com/kvspas/p/3384448.html 一,簡單型別的傳值 比如 public Users Get(int id) ,它可以使用兩種方式獲取: api/default/5$.get("/api/default",{id
setTimeout代替setInterval的寫法以及setInterval的弊端以及越來越快的解決辦法
平常經常遇到的一個問題,很多人想間隔時間執行一些事件的時候,第一時間就會想到用setInterval,但是setInterval村子啊不少弊端哦。 弊端1:setInterval會無視錯誤程式碼,即使程式碼報錯,還是會一直執行下去。 弊端2:setInterval會無視網路延遲,很多人會有需求需要1秒更新
setInterval和setTimeout的區別以及setInterval越來越快問題的解決方法
setInterval()和setTimeout()方法都是js原生的定時方法,當然它們兩個的作用也是不同的,並且最近在做上下滾動公告欄的時候,發現了setInterval()非常令人抓狂的問題,那就是用setInterval()做的定時滾動會隨著瀏覽器頁面切換變得無法控制!為什麼會說無法控制呢,因為在切換頁
JavaScript函數setInterval()和setTimeout()正確的寫法
ava 改進 .cn tint 程序 寫法 set archive 編寫 一、常規寫法 1.1 不傳參數 function a (x, y) { var i = 0; var b = function(){ console.log(
JS中setInterval()和clearInterval()的使用以及注意事項 (實用,贊)
原文出處:https://blog.csdn.net/YDesire/article/details/81124331 延伸閱讀:clearInterval(timer)和timer = null的區別 setInterval(): 間隔指定的毫秒數不停地執行指定的程式碼,定時器 clear
setTimeout和setInterval解析,妙用setTimeout代替setInterval進行間歇呼叫
"在開發環境下,很少使用間歇呼叫(setInterval),原因是後一個間歇呼叫很可能在前一個間歇呼叫結束前啟動" 妙用setTimeout代替setInterval進行間歇呼叫如下 function func(){ /****執行程式碼****/
js中clearInterval無效,以及setInterval中斷後重新執行
4、document.getElementById("run").style.visibility="hidden";//run不可見5、clearInterval()方法。 完整的程式碼如下所示:<!doctype html> <html lang="en"> <head&g
產品設計中輪播圖的弊端以及6種替代方式
輪播圖在UI設計中是個邪惡的存在,其實很多設計師和前端都這麼認為。 那為什麼我們還能到處看見輪播圖? 一部分原因就在於我們很多人經常看到輪播圖,所以把輪播圖的存在習慣性地標準化了,可能會隨口跟設計師們提建議。 但存在並非合理,單單“流行”這一個原因並不能支撐一個事物的合理性。身