是使 window.onload 函数只执行一次的任意方法



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

有没有办法让window.onload函数只执行一次(通过存储在缓存或其他东西中)?

您可以在 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);
    }
});
<script type="text/javascript">
    $(function() {
        // Have your onload ajax here
    });
</script>

我从未见过每次页面加载运行超过一次。

最新更新