0

次のテストコードがあります。

<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Ajax - one variable test</title>
 <style>
   body{ font-size: 12px; font-family: Arial;}
 </style>

<script src="http://code.jquery.com/jquery-1.10.2.js"></script>
</head>
<body>

<ol id="variable1"><var1></ol>

<script>
setInterval(function()
 {
  $("#variable1").load("ajax_v00.html")
 },3000);
</script>


</body>
</html>

ステータスを var1 に報告する組み込み Web サーバーを使用しています。

例: OK またはヘッドアップ

上記は、私がテストしたブラウザをクラッシュさせています。私が何か間違ったことをしているかどうかを誰かが見ることができますか?

ありがとうございました。

4

1 に答える 1

2

リクエストの実行に 3 秒以上かかる場合があるため、ブラウザがすべてを処理できずにクラッシュするまでリクエストがスタックされます。間隔を使用する代わりに、最後のリクエストが終了してから 3 秒後にリクエストを実行するタイムアウトを使用する必要があります。ここ:

<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Ajax - one variable test</title>
 <style>
   body{ font-size: 12px; font-family: Arial;}
 </style>

<script src="http://code.jquery.com/jquery-1.10.2.js"></script>
</head>
<body>

<ol id="variable1"><var1></ol>

<script>
function doRefresh()
 {
  $.ajax({
     url:"ajax_v00.html",
     success:function(data){
         $("#variable1").html(data);
         setTimeout(doRefresh,3000);
     }
  });
}
setTimeout(doRefresh,3000);
</script>


</body>
</html>
于 2013-08-30T15:51:58.557 に答える