我有一个 Web 表单,它采用 C++ 代码,在服务器上编译它,然后输出输出。有问题的 C++ 代码写入可在网页上查看的 BMP 文件。这是通过 AJAX 接口的。我的主要问题是,每当我重新编译程序以更改图像时,除非我刷新页面,否则相关图像不会更改。因此我认为这是一个缓存问题。以下是步骤:
- 人员输入 C++ 代码
- 人按提交
- C++ 代码被发送到 compile.php
- compile.php 编译程序并显示目录中的所有图像
如果有人在程序中更改了图像的颜色并重新提交了表单,则提交成功但除非刷新页面,否则图像不会更改。我在更改输出文件名并创建具有正确颜色的新图像时验证了这一点,但是如果您使用相同的文件名重新编译程序,除非您刷新页面,否则该特定图像不会更改。
我尝试将无缓存标头放在 PHP 文件的顶部。
<?php
header("Expires: Mon, 26 Jul 1990 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
?>