我创建了一个页面,它将使用数据库中的新信息每10秒重新加载一次。现在的问题是,如果我打开开发人员工具,它不会重新加载,它只是暂停。有没有办法防止这种情况?
<html>
<head>
</head>
<?php
session_start();
if(isset($_SESSION["start"]))
{
++$_SESSION["count"];
if($_SESSION["count"]==21)
header("Location:finish.php");
if($_SESSION["count"]==20)
header("Refresh:10,url=finish.php");
$qID=$_SESSION["count"];
retrieveQstn($qID);
if($_SESSION["count"]<20)
header("Refresh:10");
if($_SESSION["count"]>21)
{ $_SESSION = array();
session_destroy();
}
}
else
{
$_SESSION["start"]=1;
$_SESSION["count"]=1;
header("Refresh:3");
$qID=$_SESSION["count"];
retrieveQstn(1);
}
if(isset($_POST["ans"]))
{
$val = $_POST["ans"];
$preQstNo = $_SESSION["prevQstnNo"];
$Qno = $_SESSION["count"] - 1;
$my_sqlcon = new mysqli("localhost:3306", "root", "","zs14");
$query = "INSERT INTO quizdata(Q1,A1)VALUES('$preQstNo', '$val')";
}
function retrieveQstn($qID){
$qstnNo = mt_rand(((($qID-1)*30)+1),$qID*30);
$_SESSION["qstnNo"] = $qstnNo;
$_SESSION["prevQstnNo"] = $qstnNo;
$my_sqlcon = new mysqli("localhost:3306", "root", "","zs14");
$query = "SELECT question FROM quiz WHERE Q_ID=$qstnNo";
if(!($retrieve = $my_sqlcon->query($query)))
echo "Error - Question Retrieval";
$row = $retrieve->fetch_row();
$qstn = $row[0];
echo "<h2>".$qID.".".$qstn."</h2>";
}
function showOptions($no)
{
$qstnNo = $_SESSION["qstnNo"];
$my_sqlcon = new mysqli("localhost:3306", "root", "","zs14");
$query = "SELECT Op$no FROM quiz WHERE Q_ID=$qstnNo";
if(!($retrieve = $my_sqlcon->query($query)))
echo "Error - Question Retrieval";
$row = $retrieve->fetch_row();
$option = $row[0];
echo $option;
}
echo '<script>function start(){ id=50;setInterval(function(){id--;document.getElementById("timerp").innerHTML="<h2>" + id + "</h2>";},1000);}</script>'
?>
<body onload="start()" oncontextmenu="return false;">
<span id="timerp"></span>
<form style="position:absolute; top:280px; left:50px;"action= "<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>" id="quiz" method="post">
<input name="ans" type="radio" value="a">
<?php showOptions(1);?></br>
<input name="ans" type="radio" value="b">
<?php showOptions(2);?></br>
<input name="ans" type="radio" value="c">
<?php showOptions(3);?></br>
<input name="ans" type="radio" value="d">
<?php showOptions(4);?></br>
<input name="ans" type="radio" value="e">blank
</form>
</body>
<script>
window.onload = function(){
form = document.getElementsByTagName("form")[0];
input = document.getElementsByTagName("input");
for(i=0;i<5;i++)
{input[i].onclick = function(){form.submit();}}
}
</script>
</html>
此处的代码每10秒刷新一次页面20次。刷新后第20次移动到下一页finish.php。 retrieveQstn(),对于每个页面刷新从数据库中随机获取一个新问题并显示。 showOptions()显示所显示问题的相应选项。 PHP中的JavaScript显示一个10秒的计时器(它不刷新页面)。一旦用户单击单选按钮,HTML标记内的JavaScript就会提交表单(刷新页面)。 后者Javascript仅在用户单击单选按钮时刷新页面。无论用户是否选择了某个选项,PHP每10秒刷新一次页面。
现在,如果我在任何一个Javascript上放置一个断点,它会在10秒内暂停并且不会刷新。