我將首先解釋我正在嘗試做什麼:)睡眠在JavaScript循環?
我的應用程序是使用PHP(Zend框架)和Javascript實現的。我想爲我的申請進行問卷調查,到目前爲止我已完成以下工作:
我的頁面包含一系列元素,其中#表示特定問題的索引。例如我的HTML看起來像這樣:
<div class="question 1 active">
</div>
<div class="question 2">
</div>
<div class="question 3">
</div>
.
.
.
etc.
現在,用戶應該可以看到每個問題的spesific預先選定的時間,直到問題變爲可能的答案,用戶應單擊「是」或「否」取決於他是否認爲答案是正確的。一次只有一個<div class="question #">
-元素處於活動狀態,其他則有display:none;
。問題更改爲下一個問題後,active
-attribute將從當前問題中刪除,並設置爲下一個問題,以便用戶遍歷所有問題。
與每個question/possible answer
-pair我有兩個相關的整數,它們表示用戶有多少時間來看問題以及用戶有多少時間來回答問題。舉個例子:
用戶看到此(或多或少):
QUESTION 1/10
The name of the President of U.S.? -------------- 5 sec
..
The name of the President of U.S.? -------------- 4 sec
..
The name of the President of U.S.? -------------- 3 sec
..
etc. THE TIME ENDS and the question changes to answer mode(buttons YES/NO appear also in this part):
Bruce Wayne? ------------------------------7 sec
[YES] [NO]
...
Bruce Wayne? ------------------------------6 sec
[YES] [NO]
...
Bruce Wayne? ------------------------------5 sec
[YES] [NO]
...
etc.
當任一時間用完在ANSWER相或用戶點擊任一按鈕YES/NO的jQuery從當前問題中刪除ACTIVE
並將其設置爲下一個。用戶點擊的值也存儲在隱藏元素中。這個過程應該通過調查問卷一直重複。
現在關於問題和答案階段的定時器。他們不是固定的,而是針對每個問題進行分類。例如question1
可能有問題/回答時間(秒)5/10
等等。
現在我的問題是...如何在JavaScript方面實現這一點?當我通過包含所有關於問題的信息(PHP中設置的服務器)的數組來循環javascript時,我的問題就出現了......我應該能夠遍歷客戶端中的所有question/answer
對,然後在每次迭代中停止迭代轉到下一個問題(下一個問題),直到用戶點擊答案或時間已用完。但問題是,據我所知,我不能睡在for循環或每個jQuery中......你看到我的問題? :)
上執行任何建議表示讚賞:)
不要做它!!!!!你想要做的* LAST *事情是在你的Javascript中「睡眠」或「忙等待」!這將會讓一個非常惱火的用戶面對沒有響應的用戶界面和/或超載的系統。 *正確*做的事情是設置一個「鬧鐘」,當「超時」時激活。例如:http://javascript.info/tutorial/events-and-timing-depth – paulsm4