日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

settimeout會(huì)執(zhí)行幾次 js timer停止

【settimeout會(huì)執(zhí)行幾次 js timer停止】javaScript是單線程語言,但它允許通過設(shè)置超時(shí)值和間歇時(shí)間值來調(diào)度代碼在特定的時(shí)刻執(zhí)行 。超時(shí)值是在指定時(shí)間過后執(zhí)行代碼,而間歇值是每隔指定的時(shí)間就執(zhí)行一次代碼 。其實(shí)就是我們常用的setTimeout()和setInterval() 。setTi
javaScript是單線程語言,但它允許通過設(shè)置超時(shí)值和間歇時(shí)間值來調(diào)度代碼在特定的時(shí)刻執(zhí)行 。超時(shí)值是在指定時(shí)間過后執(zhí)行代碼,而間歇值是每隔指定的時(shí)間就執(zhí)行一次代碼 。其實(shí)就是我們常用的setTimeout()和setInterval() 。
setTimeout()和setInterval()方法很相似,相信很多初學(xué)者都知道這個(gè)方法吧 。因?yàn)楹芏鄤?dòng)畫,輪播都會(huì)用到這個(gè)方法,但是相信很多人和我一樣,對(duì)于這個(gè)方法的一些細(xì)節(jié)并不是很了解 。

settimeout會(huì)執(zhí)行幾次 js timer停止


javascript
簡(jiǎn)單的來說下,這兩個(gè)方法都是接收兩個(gè)參數(shù),第一個(gè)參數(shù)就是指定時(shí)間能要執(zhí)行的函數(shù) 。它可以是一段字符串,也可以是一個(gè)函數(shù),雖說這兩種都是可行的,但是由于傳遞字符串可能導(dǎo)致性能損失,因此不建議以字符串作為第一個(gè)參數(shù) 。而第二個(gè)參數(shù)接收的是一個(gè)時(shí)間值,通常是以毫秒為單位 。
而在使用這兩個(gè)方法的時(shí)候,我們常常也會(huì)伴隨著使用另外一個(gè)方法,clearTimeout()和clearInterval() 。一般情況下,clearTimeout不常使用,因?yàn)閟etTimeout就只是執(zhí)行一次就結(jié)束,所以不用考慮取消調(diào)用函數(shù),而setInterval就不一樣了,一般情況下,我們都會(huì)設(shè)置某個(gè)條件下去取消它的重復(fù)執(zhí)行 。而今天的想要說的就是clearInterval()接收的參數(shù) 。
調(diào)用setTimeout方法和setInterval方法之后,該方法會(huì)返回一個(gè)數(shù)值ID,而這個(gè)ID是計(jì)劃執(zhí)行代碼的唯一標(biāo)識(shí)符,上面說的clearInterval接受的參數(shù)就是這個(gè)ID值 。所以我們通常會(huì)定義一個(gè)變量來保存這個(gè)值,而之前我一直以為,定義的這個(gè)變量是這個(gè)方法的指針 。
在使用超時(shí)調(diào)用時(shí),沒有必要跟蹤超時(shí)調(diào)用的ID 。一般認(rèn)為,使用超時(shí)調(diào)用來模擬間歇調(diào)用的是一種最佳模式 。在開發(fā)環(huán)境下,很少使用真正的間歇調(diào)用,原因是后一個(gè)間歇調(diào)用可能會(huì)在前一個(gè)間歇調(diào)用結(jié)束之前啟動(dòng) 。所以最好不要使用間歇調(diào)用 。下面看一個(gè)超時(shí)調(diào)用模擬間歇調(diào)用的例子:間隙模式:
var num = 0;var max =10;var intervalId=null;function incrementNumber(){num++;if(num==max){clearInterval(intervalId);alert("Done");}}intervalID=setInterval(incrementNumber,500);
超時(shí)模式:
var num = 0;var max =10;function incrementNumber(){num++;if(num<max){setTimeout(incrementNumber,500);} else{alert("Done") }}setTimeout(incrementNumber,500);

    推薦閱讀