快速AJAX调用后,rand()返回相同的数字

时间:2014-12-02 19:58:24

标签: php ajax apache codeigniter

我的应用程序中有一个CodeIgniter控制器(application/controllers/random_number.php),它应该生成一个随机数(echo rand();)。

现在,我遇到的问题是,当我向该控制器调用HTTP请求时,似乎它实际上每隔一秒左右实际生成一个新号码,因此如果我调用多个请求,则返回相同的号码在那段时间内。如果我运行一个for循环来回显多个随机数,rand()将返回不同的数字,就像它应该的那样(并返回相同的数字集,直到经过一秒左右)。

为什么要这样做,我该怎么做才能解决它?

我在32位Windows 7 Home Premium上使用CodeIgniter 2.1.3,PHP 5.5.12和Apache / 2.4.9。

编辑:这不是网页缓存问题。我已经添加了一个小段,它将数字保存到数据库中,并证明它是应用程序执行此操作,而不是浏览器。

http://puu.sh/deoWI/30cf5083e9.png

1 个答案:

答案 0 :(得分:2)

这里的问题是rand()依赖于时间作为播种机制,因此不能足够快地生成新的随机数。

改为使用mt_rand