setInterval在任務佇列排隊順序測試

2021-09-02 16:24:40 字數 776 閱讀 6432

function formatdate(date)

var timer, interval;

function test(),8000);

timer = settimeout(function(),20000);

var startdate = new date();

var now = new date();

for(var i =0; i<5; i++)

startdate = new date(); }

}test();

在這篇(測試中,我們提出了猜測(紅色部分):

還有一種情況,是不是可以說s1丟棄,s2丟棄,s3保留呢?我不曉得

到底是s1保留,s2,s3丟棄,還是s1,s2被丟棄s3保留呢,我們使用settimeout驗證一下

如上示例(不曉得用settimeout來驗證setinterval,原理上是否正確)

猜想:a.s1保留,s2丟棄,s3丟棄

b.s1丟棄,s2丟棄,s3保留

如果a猜想成立,那麼s1進入任務佇列(訊息佇列),s2被拋棄,定時器timer進入佇列,s3被拋棄,那麼應該是先輸出interval,然後輸出timeout

如果b猜想成立,那麼s1進入佇列,s2進入佇列(s1被拋棄),定時器timer進入佇列,s3進入佇列(s2被拋棄),顯然,定時器timer在s3之前,那麼先輸出timeout,後輸出interval

如上示例描述,主邏輯在25秒結束,定時器settimout在第20秒時刻觸發

在chrome下測試,a猜想成立

wxPython實現視窗在工作列中閃爍

為提醒使用者注意,通常採用視窗閃爍的效果來達到這一目的,就像即時聊天工具qq,jabber等,當收到好友發來的訊息時通常會閃爍托盤中的圖示,如果聊天視窗是開啟的,那麼就會閃爍開啟的聊天視窗在工作列中的按鈕,甚至有時連視窗的標題欄都會閃爍。其實實現這樣的閃爍功能是很簡單的,如果對windows api...

wxPython實現視窗在工作列中閃爍

為提醒使用者注意,通常採用視窗閃爍的效果來達到這一目的,就像即時聊天工具qq,jabber等,當收到好友發來的訊息時通常會閃爍托盤中的圖示,如果聊天視窗是開啟的,那麼就會閃爍開啟的聊天視窗在工作列中的按鈕,甚至有時連視窗的標題欄都會閃爍。其實實現這樣的閃爍功能是很簡單的,如果對windows api...

隱藏在工作列中的程式 VB

public declare function getwindowlong lib user32 alias getwindowlonga byval hwnd as long,byval nindex as long as long public declare function setwindo...