亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

代碼我讀了好幾遍,覺得沒問題啊,但是讀秒總是出錯,真不知道哪錯了?。?!哭了!


<!DOCTYPE?html>
<html>
?<head>
??<title>瀏覽器對象</title>??
??<meta?http-equiv="Content-Type"?content="text/html;?charset=gkb"/>???
?</head>
?<body>
??<!--先編寫好網頁布局-->
?<h3>操作成功</h3>
<b?id="s">5</b>秒后回到主頁<a?href=""?onclick="goback()">返回</a>
<script?type="text/javascript">
var?sec=5;
setTimeout(clock,1000);
function?clock()
{
????document.getElementById("s").innerHTML=sec;
????if?(sec==1)
????window.location.href?=??"http://www.xianlaiwan.cn/";
????sec=sec-1;
????setInterval(clock,1000);
}
function?goback()
{
????window.history.back();
}
???
?</script>?
</body>
</html>


正在回答

3 回答

先不要哭,代碼看完,你寫的里邊if(sec == 1){}后邊加上{}這個。其次你每次回調clock的時候就會生成一次定時器。當前5-4-3 調用2次的時候,你代碼其實有兩個定時器,每個定時器都會把sec-1,這樣的話你sec每一秒會被減兩次 所以你的sec會跳著走,5-4-3-1-負2,以下是正確代碼,望采納。

https://img1.sycdn.imooc.com//5d3832eb00012d2d07260377.jpg


0 回復 有任何疑惑可以回復我~
#1

AMingxy 提問者

我這個的讀秒顯示是542-2,我懂你的意思,說有兩個定時器,但是我覺得,它每次一經過document.getElementById("s").innerHTML=sec; 這個語句,它的顯示就要變啊,就會減一的;雖然說它是迭代調用,但是它讀函數肯定要一步步進行,碰到那個語句,顯示就會變
2019-07-24 回復 有任何疑惑可以回復我~
#2

AMingxy 提問者

你說的確實對,我把這個語句setInterval(clock,1000);提到函數上面來就會,顯示正確。但是我不能理解這個讀秒的差異是怎么來的,你能給我解釋一下嗎?
2019-07-24 回復 有任何疑惑可以回復我~

https://img1.sycdn.imooc.com//5d383c94000190bb05620233.jpg

在這個例子你可以觀察下瀏覽器,根本看不到節點變成了 你好前端 。他是直接變成了? 你好后端

0 回復 有任何疑惑可以回復我~
#1

AMingxy 提問者

我想知道這是用的啥軟件啊
2019-07-25 回復 有任何疑惑可以回復我~
#2

吳量 回復 AMingxy 提問者

vscode編輯器
2019-07-25 回復 有任何疑惑可以回復我~

兩個定時器 減的sec的值,document.getElementById("s").innerHTML=sec這句話執行二次,瀏覽器肯定會存在一個先后調用的過程,但是如果先后兩個操作值做一件事(類似操作節點。),且時間間隔非常小,瀏覽器就只執行最后那一個要做的那個事

0 回復 有任何疑惑可以回復我~
#1

AMingxy 提問者

明白啦,謝謝啦
2019-07-24 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

代碼我讀了好幾遍,覺得沒問題啊,但是讀秒總是出錯,真不知道哪錯了?。?!哭了!

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號