Googleマップを使用して一連の画像をオーバーレイとして表示しています。これらの画像の表示は無限ループになるはずですが、ほとんどのブラウザはこれを検出し、警告を表示します。
JavaScriptで無限ループを作成して、ブラウザーによって停止または警告されないようにする方法はありますか?
Googleマップを使用して一連の画像をオーバーレイとして表示しています。これらの画像の表示は無限ループになるはずですが、ほとんどのブラウザはこれを検出し、警告を表示します。
JavaScriptで無限ループを作成して、ブラウザーによって停止または警告されないようにする方法はありますか?
setIntervalまたはsetTimeoutを試してください。
次に例を示します。
(show = (o) => setTimeout(() => {
console.log(o)
show(++o)
}, 1000))(1);
.as-console-wrapper { max-height: 100% !important; top: 0; }
無限ループではなく、タイマーを使用して継続的に新しい画像を表示する必要があります。機能を確認してくださいsetTimeout()
。警告は、再び待機するために、それ自体を呼び出す関数で呼び出す必要があることです。w3schoolsからの例:
var c = 0
var t;
function timedCount() {
document.getElementById('txt').value = c;
c = c + 1;
t = setTimeout("timedCount()", 1000);
}
<form>
<input type="button" value="Start count!" onClick="timedCount()">
<input type="text" id="txt">
</form>
次のコードは、間隔を設定し、毎秒画像ソースの配列から次の画像に画像を設定します。
function setImage(){
var Static = arguments.callee;
Static.currentImage = (Static.currentImage || 0);
var elm = document.getElementById("imageContainer");
elm.src = imageArray[Static.currentImage++];
}
imageInterval = setInterval(setImage, 1000);
無限ループを使用する代わりに、n 秒ごとに起動し続けるタイマーを作成します。ブラウザーがハングすることなく、「永久に実行」の側面が得られます。
ケースに合う場合は、このWebサイトのように(下にスクロールするだけで)、ユーザーの操作に応答するために新しい画像をロードし続けることができます。
おそらく、刻むたびに次の画像を取得するタイマーを使用してみてください。残念ながら、私は JavaScript をまったく知らないので、コード サンプルを提供できません。
function foo() {
alert('hi');
setTimeout(foo, 5000);
}
次に、「onload」などのアクションを使用して「foo」を開始します
ただの正式な答え:
var i = 0;
while (i < 1) {
do something...
if (i < 1) i = 0;
else i = fooling_function(i); // must return 0
}
そのようなことを検出するブラウザはないと思います。