2012-05-01 30 views
1

私はwindow.onload関数を持っています。これはAJAXコンテンツを読み込みます。訪問者が別のページを見て、それをリロードしようとしたときにも発火します(途中でAJAXとも呼ばれます)。 window.onload関数が再度実行されます。window.onload関数を1回だけ実行させる方法はありますか?

window.onload関数を(キャッシュなどに格納して)1回だけ実行させる方法はありますか?

+0

クッキーまたはセッションを使用しますか? – j08691

答えて

3

AJAXが完了したらクッキーを設定し、ページを読み込むときにこのクッキーをチェックすることができます。いくつかの擬似コード:

$(function() { 
    if (!$.cookie("page-viewed")) { 
     // call ajax & display 

     $.cookie("page-viewed", true); 
    } 
}); 

はここjQuery cookie plugin


へのリンクのUpdate

コメント内のコードに基づいて、あなたは、このようなクッキーのプラグインを使用します

$(window).load(function() { 
    if (!$.cookie("page-viewed")) { 
     $('#pages_holder').hide(0).delay(2500).fadeIn(1200, 'swing', {queue:false}); 
     $('#za').rotate3Di('+=360', 1000, {queue:false}, 'easeInOutCubic'); 
     $('.za').show().switchClass("za", "nas",500, 'easeOutQuad').switchClass("nas", "zavur6en", 1250, 'easeInOutCubic').delay(2000).hide(0) 
     $.ajax({ 
      url : 'pages/zanas.php', 
      success : function(response) { 
       $("#pages").html(response); 
      } 
     }); 
     $.cookie("page-viewed", true); 
    } 
}); 
+0

私はクッキーマンを一度も使用していません。それが私のコードなら、何をする必要がありますか: ' $(ウィンドウ).load(function(){ $('#pages_holder ')。hide(0).delay(2500).fadeIn(1200、 'スイング'、{キュー:偽}); \t $( '#1 ZA')rotate3Di( '+ = 360'、1000 {キュー:偽}、 'easeInOutCubic'); \t \t $(」。 switchClass( "nas"、 "zavur6en"、1250、 'easeInOutCubic')。delay(2000).hide(0)。 ) \t $アヤックス({ URL: 'ページ/ zanas.php'、 成功:機能(応答){ $( "#ページ")HTML(レスポンス);} 。}); \t }); ' –

+0

私は混乱にごめんなさい! –

+0

あなたの回答を更新しました。 –

0
<script type="text/javascript"> 
    $(function() { 
     // Have your onload ajax here 
    }); 
</script> 

これは、ページごとに1回以上ランすることはありませんでした。

+0

これはまだすべてのページの読み込み時に実行されますか? –

+0

ページの読み込みを定義しますか? –

+0

ページが読み込まれるたびに....? –

関連する問題