私はsleep/wait関数を追加する必要があるJavaScriptコードを持っています。私が実行しているコードはすでに関数の中にあります。例えば:
function myFunction(time)
{
alert('time starts now');
//code to make the program wait before continuing
alert('time is up')
}
私は可能な解決策が含まれるかもしれないと聞いた
setTimeout
しかし、私はこの場合それを使用する方法がわからない。
私のサーバーはそれをサポートしていないので、私はPHPを使用することはできません、jQueryを使用することは問題ないでしょうが。
JSにはスリープ関数はなく、 setTimeout() または setInterval() 関数があります。
一時停止後に実行する必要があるコードをsetTimeout()
コールバックに移動できる場合は、次のようにすることができます。
//code before the pause
setTimeout(function(){
//do what you need here
}, 2000);
ここに例があります: http://jsfiddle.net/9LZQp/
これによってスクリプトの実行が停止することはありませんが、setTimeout()
が非同期関数である限り、このコードは
console.log("HELLO");
setTimeout(function(){
console.log("THIS IS");
}, 2000);
console.log("DOG");
これをコンソールに表示します。
HELLO
DOG
THIS IS
( _ dog _ は THIS IS の前に表示されることに注意してください。)
次のコードを使用すると、短時間の睡眠をシミュレートできます。
function sleep(milliseconds) {
var start = new Date().getTime();
for (var i = 0; i < 1e7; i++) {
if ((new Date().getTime() - start) > milliseconds){
break;
}
}
}
今、あなたが1秒間眠りたいのならば、単に使用してください:
sleep(1000);
例: http://jsfiddle.net/HrJku/1/ /
このコードはnミリ秒の間スクリプトをビジー状態にします。これはあなたのページのJavascriptの実行を止めるだけでなく、ブラウザの実装によっては、ページを完全に無反応にし、ブラウザ全体を無反応にするかもしれません 言い換えれば、これはほとんど常に間違ったことです。