2012-01-02 18 views
0

もう少し洗練されたページを更新するためにjQueryを使用しようとしています。メタリフレッシュでは、ページが一度読み込まれなかった場合、ページは再び読み込まれません。何度もロードしようとするものを作ろうとしています。一度ロードできない場合は、次回に再度試行するので、最後のロードが成功した場合は、そのページの新バージョンが表示されます介入する断層であった。JavaScriptページを更新するにはどうすればいいですか?

現時点での私のコードは次のようになります。これまでのところ、私が言うことができるように、これはNOOPとして機能している

<script language="JavaScript" type="text/javascript" src="/include/jquery.js"> 
</script> 
<script language="JavaScript"> 
    var delay=5*1000; 
    function load(){ 
     setTimeout(load, delay); 
     jQuery("#content").load("calendar_internal.cgi?days=40", function(){ 
      jQuery("#preload").hide("slow"); 
     }); 
     delay = 15*60*1000; 
    } 
    jQuery("#content").load("calendar_internal.cgi?days=40", load); 
</script> 

。それは更新されません。

これを少なくとも基本レベルで動作させてリフレッシュするにはどうすればよいですか?1つの不良リフレッシュは、ページを見たい場合にリロードする必要はありません。

--EDIT--

私が今持っていることは明らかに(光テストの後に)取り組んでいる。そのような

<script language="JavaScript"> 
var placeholder = jQuery('<div></div>'); 
function load(){ 
    setTimeout(load, 15*60*1000); 
    placeholder.load("logistic_ajax.cgi", function(){ 
     if (placeholder.html()) 
      jQuery('#content').html(placeholder.html()); 
    }) 
} 
load(); 
</script> 
+1

なぜロード関数の最初の行にsetTimeoutのload関数を呼び出していますか? – Abbas

+0

安定性のため。まず、次回の実行を設定してからネットワークの負荷を試行し、ネットワークの負荷が失われた場合は、試行された負荷を1回以上失うことはないと考えます。 – JonathanHayward

+0

多分私はここで論理を見ていないが、これは無限の再帰呼び出しではない?ロード関数の最初の行は、ロード関数などを呼び出すsetTimeoutを呼び出します。 – Abbas

答えて

1
var $placeHolder = $('<div />'); 
$placeHolder.load(yourURL,function() { 
    if ($placeHolder.html()) { 
     $("#content").html($placeHolder.html()); 
    } 
}); 

か何か。このようにして、あなたはすべての、あるいは何もタイプのものをやっていません。 HTMLが戻って何かがうまくいけば、if条件をチェックインできます。あなたはそれを自分でハッシュするか、私に詳細を教えてもらう必要があるので、レスポンスの詳細を確かめないでください。

乾杯。

+0

ええ、まだページをロードしていないようです。私はロードエリアの外に骨格のものがある空のページを取得します。 – JonathanHayward

+0

@JonathanHaywardここでライブバージョンを見ることができます - > http://www.kitgui.com/docsソースを参照し、javascriptが宣言されていることを確認してください。/ js/docs/jsにあります。あなたがサーバーエラーなどのことを認識していない何かがあなたにありますか?セレクターエラー?等多くのものが間違って行くことができますなど。 –

関連する問題