2010-12-08 11 views
1

定期的に更新されるJSPページのフォールトトレランスを改善しようとしています。タイムアウトは、ページの送信時期を記録するために使用されます。フェイルオーバーで定期的なページリフレッシュを実装する方法

問題は、通信が定期的に失敗するため、通信が再開して再度実行されたときに更新されない壊れた/見つからないページが残っているということです。

以下のコードは現在の実装です。

function startTimer(buttonid) { 
    var startstring = 'myTimer("' + buttonid + '")'; 
    window.setTimeout(startstring,15000); 
} 

function myTimer(buttonid) { 
    window.document.forms[0].submit(); 
} 

startTimer()はページのonloadイベントで呼び出されます。

<body onload="startTimer('blurp'); 

ベストソリューションは、通信がダウンしたときに優雅に劣化するページです。その場合、エラーメッセージが表示され、設定した期間後に再度リフレッシュしようとします。

私はこの問題を解決する方法として、PrototypeのPeriodicalUpdaterを見ていました。

+0

display:noneに設定されていますか?そうすれば、それは容易に優雅に劣化させることができます。 – Myth

答えて

1

ajaxリクエストの結果を格納するために偽のdivを使用する方法、実際のdivを更新するときに何もしない、またはそのデータをクライアントに知らせることなく、 divが

new Ajax.PeriodicalUpdater($('fakeUpdateDiv'), 
        url, { 
        frequency : 30, 
        method : 'get', 
        parameters : { 
        }, 
       onSuccess : function(transport) { 
        $('realUpdateDiv').update(transport.responseText); 
       }, 
       onFailure : function(transport) { 
           //do something 
       } 
      }); 

PS古いです:JavaScriptを使用して非同期ポスト要求をしていないのはなぜfakeUpdateDiv

+0

これは解決策の胚でした。計画通りに動作させるために、私はreadyState == 4とstatus == 200のチェックを追加しました。 –

+0

あなたの解決策をお願いしますか? –

関連する問題