1

我在同一页面上多次包含相同的文件。我注意到当我这样做时,似乎 PHP 正在缓存文件。当我使用 rand 函数生成一个随机数时,两个包含中的随机数是相同的。任何人都知道我可以如何阻止 PHP 这样做?我尝试了一些不同的标头函数,但它们不起作用:

header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // Date in the past
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); // always modified
header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header("Pragma: no-cache"); // HTTP/1.0

编辑:好的,我很笨,我忘了我是从我认为缓存文件的 jquery 脚本中调用包含。我回去查看有人要求的代码并注意到了它。谢谢大家。

4

2 回答 2

1

我建议多次包含同一个文件并不是特别好的做法。

更好的解决方案是将它包含一次,然后多次调用它包含的函数。

显然,这将意味着改变代码的工作方式——我猜它目前是作为一个代码块编写的,一旦包含它就会运行。您需要对其进行更改,以便将其包含在一个函数(或多个函数,根据需要)中,以便可以随意调用它。

然后只需在程序开始时将其包含一次。

我知道这并不能直接回答问题,但这样做是更好的编码实践,并且会使您的代码更易于管理和维护。

希望有帮助。

于 2012-06-25T19:18:52.763 回答
0

您很有可能在该文件中使用相同的值播种 pRNG。标题影响浏览器,而不是脚本。

我确定包含的文件没有被缓存:我制作了一个控制台程序,其中每个“功能”都是通过包含一个文件来实现的。在不重新启动程序的情况下更改文件仍然允许它加载更新的文件。

所以,你的问题要么是随机种子,要么是其他地方。尝试echo microtime()看看它是否两次给出相同的结果。

于 2012-06-25T19:14:31.057 回答