我为刷新网页编写了一个元标记。现在我想只刷新一次页面。 刷新页面的代码只有一次。请帮我解决问题...
先谢谢..
答案 0 :(得分:1)
使用javascript你可以在其中设置一个带有“refreshed
”变量的cookie并检查它是否已设置,如果没有则刷新页面。当然,这涉及到很多用于设置和读取cookie以及重新加载时要调用的函数的代码。
我的方法是url vars,然后又是php而不是meta标签,它会是这样的:
<?php
if($_GET['r'] != 1) header('refresh: 0; url=/index.php?r=1');
?>
其中重新加载页面,在网址中设置变量,在本例中为r
进行刷新,为true。
因此下次加载时不会重新加载。它有效,它只是一行代码,它可以节省一些编码时间并完成工作。
更新:(用户想要它在asp中)
应该可以工作,但我还没有尝试过,我现在也不能尝试(我在机场)
<%
dim refreshOnce
refreshOnce = request.querystring("r")
if refreshOnce <> 1 then Response.AddHeader "Refresh", "0;URL=/index.php?r=1"
%>
答案 1 :(得分:0)
Javascript解决方案,使用表单字段存储状态:
<html>
<head>
<script language="javascript">
function init() {
var form = document.getElementById('theform');
var input = form.refreshed;
function reload() {
location.reload(false);
}
function isRefreshed() {
return !!input.value;
}
function doDisplay() {
var el = document.getElementById(isRefreshed() ? 'two' : 'one');
el.style.display = 'block';
}
function conditionalRefresh() {
if (!isRefreshed()) {
input.value = 'true';
setTimeout(reload, 1000);
}
}
doDisplay();
conditionalRefresh();
}
</script>
</head>
<body onload="init();">
<form id="theform">
<input type="hidden" name="refreshed" />
</form>
<div id="one" style="display: none;">
one
</div>
<div id="two" style="display: none;">
two
</div>
</body>
</html>