【发布时间】:2017-11-21 06:58:34
【问题描述】:
嗯,这不是一个适当的问题或任何东西.. 我只是有点好奇,尝试搜索但找不到我的问题的准确答案,所以我决定尝试在这里提出另一个问题。
我有一个有趣的小项目,您应该在其中继续单击一个按钮,直到您在其他玩家中获得最高的点击次数,我有一个页面 ManageClick.php,其中包含下面的代码 -
<?
sleep(rand(1,3));
$storage = fopen("TOTAL.txt", "r+");
if (flock($storage, LOCK_EX)) {
$a = fread($storage,filesize("TOTAL.txt"));
$a++;
fseek($storage, 0);
fwrite($storage, $a);
flock($storage, LOCK_UN);
} else {
}
fclose($storage);
?>
上面添加了 1-3 秒之间的随机延迟,然后打开一个文件 TOTAL.txt 读取它,并将文件中的值加 +1。
我有一个主页 Testpage.html,它有一个简单的按钮和一个 JQuery 函数,当单击按钮时调用页面 ManageClick.php。然而,现在问题出现了。每当用户快速单击主页中的按钮时,它都会在控制台窗口中显示以下错误-
GET http://domain.tk/ManageClick.php 508 (Loop Detected)
GET http://domain.tk/TOTAL.txt 508 (Loop Detected)
WHERE 域是我网站的名称。
知道什么可能导致以下问题吗?快速单击按钮是其中之一,我猜它会向页面发送多个请求并导致 508 错误。另外,我可以通过什么方法尝试修复此错误,使其不显示在控制台中?
另外,请注意我不是英国人...对不起。
请参阅- 添加我的 Testpage.html 的代码以获得更好的帮助质量。
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script>
$(function(){
$("img").click(function() {
var test = $("#Clicks").load("TOTAL.txt");
$.post('ManageClick.php');
});
});
</script>
</head>
<body >
<center>
<img src='ABCD.png'>
<div id='Clicks' style=""></div>
</body>
</html>
【问题讨论】:
-
请出示Ajax代码。
-
根据您共享的代码,
GET http://domain.tk/TOTAL.txt不应该出现在控制台窗口中。这里发生了其他事情。 -
这也可能是糟糕的 ModRewrite 规则。
-
这个项目开始的TOTAL.txt文件里有什么?
-
@webjuju 目前TOTAL.txt的值为1。
标签: javascript php jquery html