Rus*_*ell 5 javascript php redirect reveal.js
我在这里阅读了各种来源,并创建了以下10秒后重定向用户的方法.没有同时使用.
PHP的第一次尝试:
header("refresh:10;url=?switch=1")
Run Code Online (Sandbox Code Playgroud)
然后,在JavaScript中进行第二次尝试:
window.setTimeout(function () {
location.href = '?switch=1';
}, 10000);
Run Code Online (Sandbox Code Playgroud)
他们几乎都在工作.它们在使用reveal.js的页面上使用(就像这一个).有时,当URL片段发生变化时,页面根本不再重定向 - 但是,通常情况下,重定向确实有效.
任何人都可以让我知道问题可能是什么,或者是一个阅读有关问题的好资源?
编辑:更改为setIntervalJavaScript版本导致它再次尝试.
Ger*_*een 14
一个测验/记忆游戏,每十秒从一个问题移动到另一个问题?
而是每隔x秒重新加载应用程序,构建一个单页应用程序,从PHP脚本中提取数据,然后每隔x秒显示一次.
一个非常快速的例子(未经测试):
<!doctype html>
<html>
<head>
<title>Example</title>
<script src="https://code.jquery.com/jquery-2.2.4.min.js"></script>
</head>
<body>
Question #<span id="question_number"></span><br />
<p id="question"></p>
<script>
var questionCounter = 0;
function loadQuestion(questionNumber) {
questionCounter++;
$.get( "<your_php_script_url>?question="+questionCounter, function( data ) {
$( "#question_number" ).html( questionCounter );
$( "#question" ).html( data.question );
setTimeout(function() {
loadQuestion(questionCounter);
}, 10000);
});
}
loadQuestion(questionCounter);
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
使用 php 设置标头时,您必须在生成任何输出之前执行此操作,在设置 php 标头之前,您可能会在某些情况下生成某种输出。
“需要注意的是,当第一个字节输出到浏览器时,实际上会发送标头。如果您要替换脚本中的标头,这意味着 echo/print 语句和输出缓冲区的放置实际上可能会影响发送哪些标头”。- 来自http://php.net/manual/en/function.header.php您可能会发现该页面很有用(如果您还没有阅读过它),我发现它在遇到标头相关问题时很有用。
如果您想要更深入的答案,我会为您的问题添加更多上下文(和相关代码)。我们无法知道我们看不到的代码出了什么问题。如果您包含使用您设置的 URL 片段的代码,我们可能会更好地了解您的代码实际在做什么,并且可能能够捕获您错过的错误。这是关于片段的维基百科。只是为了完整性。https://en.wikipedia.org/wiki/Fragment_identifier
最后,对于 JavaScript 示例,我不知所措。它在我的系统上运行良好。(尽管重新加载可能会延迟几微秒)。您可以尝试使用setInterval()?