Re: [問題] function 裡的 setTimeout 與 變數

看板Ajax作者 (沉默是金)時間15年前 (2008/10/07 15:15), 編輯推噓0(003)
留言3則, 2人參與, 最新討論串5/6 (看更多)
※ 引述《xam (聽說)》之銘言: : ※ 引述《TonyQ (沉默是金)》之銘言: : 我也想請教一下, 跟前一篇的問題類似 : 如果我要用 setTimeout() 作排程, 一次設定多個 event 要怎麼作? : 例如我有以下資料 : var s = [[10, "Hello"], [15, "World"], [3, "Hi"]]; : 想要在 3 秒後顯示 Hi : 10 Hello : 15 World : 下面這樣的作法只能處理最後一筆, 換成 function 也一樣 : for(i in s) : { : setTimeout("alert(s[i][1])", s[i][0]*1000); : } : 目前的是用, 可行,但是有點怪 : for(i in s) : { : callback = "alert('"+s[i][1]+"')"; : setTimeout(callback, s[i][0]*1000); : } 我覺得這樣還算合理啊 , 雖然timeout一多會拖垮效能.:p 或者這樣的寫法? var workqueue=[[10, "Hello"], [15, "World"], [3, "Hi"]]; setInteral( function(){ for(var i=0;i<workqueue.length;++i){ if(workqueue[i]!=null){ --workqueue[i][0]; if(workqueue[i][0]==0) alert(workqueue[i][1]); workqueue[i]=null; } } },1000 ); 當然...這只是順手草擬的 -.-a 真的有興趣要作還可以加入heap tree 來作時間差的排序, 讓他看起來更真實跟更有效能一點... -- 印象中不少人都做過timer 的機制了 , 找找應該就會有現成的. -- What do you want to have ? / What do you have? 從書本中,你可以發現我的各種興趣。 從CD中,你可以瞭解我所喜歡的偶像明星。 或許從文字你很難以瞭解一個人,但從物品可以。 My PPolis , My past. http://ppolis.tw/user/Tony -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.128.219.202

10/07 15:16, , 1F
這只是草擬的 , 沒有實際測過...:p
10/07 15:16, 1F

10/07 15:18, , 2F
其實我的問題是取 i 值的時機 @@
10/07 15:18, 2F

10/07 15:37, , 3F
原來我看錯問題了 慚愧 :p
10/07 15:37, 3F
文章代碼(AID): #18wmokgx (Ajax)
討論串 (同標題文章)
文章代碼(AID): #18wmokgx (Ajax)