2012-03-03 8 views
0

私はajaxを使用して更新している私のウェブページに関する小さな問題があります。私がしばらく(1時間程度)私のページに留まると、読み込みが中止され、私のページはブラウザに表示されません。私は私のページに、この(簡体字)のjavascriptを追加しましたので、私はこの問題を持つ開始しました:Ajaxコールの接続が多すぎますか?

var interval; 

interval = setInterval('UpdateComs()',5000); 


function FuncGo() { 

    $.post('data.php', { profile: pid }, function(data) { 

    $('.holder').html(data); 

    }); 

} 

私のサーバーがダウンしていないと、これは、私はこれがあるかもしれないことを考えていた問題にすることはできませんので、あまりにも多くの接続によって引き起こされる?上記は複数の接続を開くことができますか?
もしそうなら、私は何とかそれらを閉じるべきですか?
すべての質問に申し訳ありませんが、私はあまりにも接続の仕組みに精通していません..任意の助けやアイデアのおかげで

答えて

0

私はランダムなエラーが発生すると思われますsetInterval setTimeoutまたはsetIntervalには常にannonomus関数(文字列ではない)を渡し、前の関数の完了後に次の関数を呼び出します。

function UpdateComs() { 
$.ajax({ 
    type: "POST", 
    url: 'data.php' 
    data: {profile:pid}, 
    async: true, 
    cache: false, 
    timeout: 10000, 
    success: function(data){ 
    $('.holder').html(data); 
    setTimeout(function(){UpdateComs(); },5000); 
    }, 
    error: function(XMLHttpRequest, textStatus, errorThrown){ 
    //do what you want with the error 
    setTimeout(function(){UpdateComs(); },5000); 
    } 
}); 
} 
+0

ありがとう私はそれを将来実現するつもりです:)私は自分のウェブホストに尋ねました。私のIPアドレスが24時間で2000回以上サーバーにアクセスした可能性が高いと言いました。ページのIP禁止。これは、2000の異なる接続があったこと、または2000年に1回の接続でデータにアクセスしたことを意味し、それは心配するものですか?私は支払わWebhostingを取得する場合、私はこの制限を避けることができます..返信ありがとう:) – user1199434

+0

次の要求を送信する、 'complete()'コールバックを使用し、 'setTimeout()'コールを繰り返さないことに注意してください'success'と' error'コールバックで使用します。 –

関連する問題