1

window.onloadAJAXコンテンツをロードする関数があります。また、訪問者が別のページを表示していて、それをリロードしようとしたときにも発生します (ちなみに、これは AJAX でも呼び出されます)。window.onload関数が再度実行されます。

関数を1回だけ実行させる方法はありますかwindow.onload(キャッシュなどに保存することにより)?

4

2 に答える 2

3

AJAX が完了したときに Cookie を設定し、ページをロードするときにこの Cookie を確認することができます。擬似コード:

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

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

jQuery cookie プラグインへのリンクは次のとおりです。


アップデート

コメントのコードに基づいて、次のように Cookie プラグインを使用します。

$(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);
    }
});
于 2012-05-01T15:52:06.233 に答える
0
<script type="text/javascript">
    $(function() {
        // Have your onload ajax here
    });
</script>

これがページの読み込みごとに複数回実行されるのを見たことはありません。

于 2012-05-01T15:55:54.667 に答える