次のjavascriptコードに問題があります。 基本的には、Unixサーバー上のプロセスに対してバックグラウンドチェック(check.php)を実行します。 PHPとレスポンスの実行時間は約1.2-1.5秒(Mozillaでテストしました)ですので、以下のスクリプトを作成して、そのプロセスで何が起きているのかを確認し、それに応じてDIVの背景を変更してください。 ちょうどいくつかのリフレッシュの後、それはちょうどハングします、なぜなら私はそれがループに入り、最初の機能が終了するのを待たずにそれが積み重なるからです。 アイデアは何ですか?より簡単な方法はありますか?JavaScriptの更新機能の問題
<script language="javascript" type="text/javascript">
function getVal(param)
{
var strURL = param;
var req = new XMLHttpRequest();
req.open("GET", strURL, false); //third parameter is set to false here
req.send(null);
return req.responseText;
}
function changeDivImage()
{
var pid = getVal("check.php")
var imgPath = new String();
imgPath = document.getElementById("status_body").style.backgroundImage;
if(pid == 2)
{
document.getElementById("status_body").style.backgroundImage = "url(active.png)";
}
else
{
document.getElementById("status_body").style.backgroundImage = "url(down.png)";
}
changetimer();
}
function changetimer()
{
setInterval("changeDivImage()", 5000);
}
</script>
:これを試してみてください。これはほとんどあなたが望むものではなく、特定の条件の下でユーザーのブラウザをほぼ確実にハングアップさせます。 –
さらに、setIntervalは使用しないでください。 setTimeoutを使用し、次回要求が戻ったときに別のsetTimeoutを実行します。そうすれば、たくさんのリクエストを積み重ねることはできません(そして、LIFOタイプの問題を得る)。 – Sean