我有一个 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 plugin 的链接
<小时/>更新
根据您评论中的代码,您将使用如下所示的 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);
}
});
关于jquery - 有什么方法可以让 window.onload 函数只执行一次吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10400281/