gpt4 book ai didi

javascript - PHP无限随机数生成器,无需刷新页面

转载 作者:行者123 更新时间:2023-11-28 00:35:52 27 4
gpt4 key购买 nike

大家好,我正在尝试一次创建无限随机数一,而无需刷新整个页面。例如

5 > 一秒后将 5 替换为其他随机数,如 10 > 1 秒后将 10 替换为随机数,如 8 等等....

我设法让它工作,但号码没有刷新。单击 1 次后它就停止了,我必须重新单击它才能给我另一个随机值这是我的代码

主页.php

<html>
<head>
<script src="ajax.js"></script>
<script>
var HTTP = loadXMLDoc();
var submitEvent = document.getElementById("submit-button").onclick = function(){
hello2(HTTP);
};
</script>
</head>
<body>
<div id="randomNum">0</div>
<?php
echo "<form action='randomnumber.php' method='post' style='display: inline-block'>
<input id='submit-button' type = 'button' value='login' id='submit' />";
echo "</form>";
?>
</body>
</html>

Ajax.js

function loadXMLDoc()
{
var xmlhttp;
if (window.XMLHttpRequest)
{
xmlhttp=new XMLHttpRequest();
}
else
{
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
return xmlhttp;
}

var HTTP = loadXMLDoc();

function hello2(){

var url = "randomnumber.php";


HTTP.onreadystatechange=function()
{
if (HTTP.readyState==4 && HTTP.status==200)
{
document.getElementById("randomNum").innerHTML=HTTP.responseText;
}
};

HTTP.open("POST", url ,true);
HTTP.send();
}

randomnumber.php << 我认为这就是问题所在,但我不太确定

<?php
$i = 1;

while ($i < 2) {
$i += rand(1,5);
echo $i;
}
?>

我认为我的 randomnumber.php 没有创建循环,但唯一的问题是我很擅长循环,所以我遇到了这个问题,任何帮助都会很棒:)

最佳答案

你的远程 php 代码现在正在做的是创建一个 2 到 6 之间的随机数。我不知道为什么它在循环中。由于 i 初始化为 1,并且您至少要向其添加 1,因此在第一次迭代之后它将始终为 2 或更多,从而防止第二次循环。你可以这样做

<?php echo rand(2,6); ?>

您也只对远程 php 文件进行一次 ajax 调用。所以您的页面正在加载,进行一次 ajax 调用,然后就完成了。

尝试添加

setTimeout(hello2,1000);

作为 JavaScript 中 hello2() 函数的最后一行。这将导致该函数每秒重复一次(再次调用 PHP 文件)。

不过,我不确定这是否有利于写入数据库。如果 php 文件每秒都会向数据库写入一个新条目,那么您的数据库管理员将会感到头疼。将其中的几个存储在一个数组中(也许 100 个?),然后调用不同的 PHP 文件将这些数字写入数据库可能更理想。

在这种情况下,您可以完全跳过第一个调用(使您的服务器工作更少。让 JavaScript 创建整数

var randomNum = Math.floor(Math.random()*5)+2

Math.random() 创建 0 到 1 之间的随机 float 。将其乘以 5 使其成为 0 到 5 之间的随机 float 。Math.floor() 将值向下舍入为整数(0 到 4 之间)因此将结果加 2,使其介于 2 到 6 之间。

这会将所有工作放在客户端浏览器上,并且您不会遇到连接速度慢的问题。 JavaScript 可以将结果存储为数组,定期调用 PHP 文件以将结果存储在数据库中,然后重置数组。因此,服务器调用更少,数据库写入更少,性能更好。

关于javascript - PHP无限随机数生成器,无需刷新页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28504409/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com