我有一个window.onload
函数,它加载 AJAX 内容。当访问者正在查看另一个页面并尝试重新加载它时,它也会触发(顺便说一下,这也被 AJAX 调用)。window.onload
函数再次执行。
有什么方法可以使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);
}
});
更新
根据您评论中的代码,您可以像这样使用 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>
我从来没有见过这个运行超过每页加载一次。