我正在使用以下代码作为null引用脚本的一种形式,它可以很好地工作,但它只是将它们直接重定向到目标URL。
如何创建5秒延迟,以便在重定向之前显示一些广告5秒钟?
答案 0 :(得分:59)
您可以发送带有超时刷新的php标头。 http://php.net/manual/en/function.header.php
<?php
header( "refresh:5; url=wherever.php" );
?>
答案 1 :(得分:6)
如何使用sleep()?
function method1(...) {
sleep(5);
... rest of the code
header()
代替。{/ h3>
答案 2 :(得分:4)
_bin_deployableAssemblies
标题完成了这项工作,但我想强调一些潜在的问题:
HTTP标准中未指定。维基百科说:
专有和非标准:由Netscape引入并由大多数Web浏览器支持的标头扩展。
但它已存在近20年了,我不知道任何不支持它的浏览器(虽然找不到参考)
某些浏览器不会在使用refresh
重定向的页面上使用缓存。它已经在Internet Explorer中得到了证明:http://blogs.msdn.com/b/ieinternals/archive/2010/05/13/meta-refresh-causes-additional-http-requests.aspx我可以在Firefox上重现它。 Chrome没有此问题。
您可以在中间页面上添加JavaScript,在X秒后打开一个新页面。在页面底部添加此内容,以便在refresh
秒后重定向到http://www.example.com/target
:
5
作为奖励,如果禁用JS,您可以使用<script type="text/javascript">
window.setTimeout(function() {
window.location.href='http://www.example.com/target';
}, 5000);
</script>
指令refresh
回退到meta
标头,该指令告诉浏览器表现为某个HTTP标头有已经送走了。因为它是HTML源代码的一部分,所以可以将其包装在http-equiv
元素中。除了上面的JavaScript之外,还要将其添加到<noscript>
:
<head>
现在,如果可以获得最佳性能,页面会使用JavaScript重定向,否则会使用<noscript>
<meta http-equiv="refresh" content="5;url=http://www.example.com/target" />
</noscript>
。