我将创建一个 JQuery 幻灯片展示,但需要页面每5分钟刷新一次以更改内容。
我知道可以通过一些 JavaScript 实现这一点,但这可以在客户端上进行更改以避免页面刷新。是否有一种方法可以使服务器超时并强制刷新页面?
我将创建一个 JQuery 幻灯片展示,但需要页面每5分钟刷新一次以更改内容。
我知道可以通过一些 JavaScript 实现这一点,但这可以在客户端上进行更改以避免页面刷新。是否有一种方法可以使服务器超时并强制刷新页面?
除了使用JavaScript重新加载页面外,您还可以发送一个刷新头部:
header("Refresh: 300;url='http://thepage.com/example'");
浏览器将在300秒后重定向,不受JavaScript的影响。虽然可以在浏览器的配置中禁用它,但这通常不会被禁用。
Meta refresh 的工作原理非常简单:
<meta http-equiv="refresh" content="300">
300 的意思是每 300 秒或 5 分钟刷新一次。这样,您不使用 JavaScript,因此用户无法关闭它。
您无法从服务器端强制刷新页面。
在JavaScript中实现刷新的方法很简单:
setTimeout(function() {
window.location.reload();
}, 5000);
尽管这可以在客户端被覆盖,但普通用户不会乱动你的脚本。
顺便说一句:你坚持重新加载页面有什么原因吗?
JavaScript 方法
var timer = null;
function auto_reload()
{
window.location = 'http://domain.com/page.php';
}
<body onload="timer = setTimeout('auto_reload()',10000);">
META标签方法
The following refreshes the page every 30 seconds.
<head>
<meta http-equiv="refresh" content="30" />
</head>
我会使用一个可以在任何页面上调用而无需设置URL的PHP函数。
// write the function
function refresh( $time ){
$current_url = $_SERVER[ 'REQUEST_URI' ];
return header( "Refresh: " . $time . "; URL=$current_url" );
}
// call the function in the appropriate place
refresh( 4 );
// this refreshes page after 4 seconds
另一种重新加载的方法是使用window.location
:
setTimeout(function(){
window.location.href = "YOUR_PAGE_URL";
}, 5000);