1

我有一个window.onload函数,它加载 AJAX 内容。当访问者正在查看另一个页面并尝试重新加载它时,它也会触发(顺便说一下,这也被 AJAX 调用)。window.onload函数再次执行。

有什么方法可以使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 回答