我正在使用JavaScript和PHP编写一个社交媒体引擎,而平面文件是我的主要信息传输工具。当我的程序添加到一整天的文本文件中时,在Ajax程序要求时不会出现它们,直到直接通过URL访问并两次刷新它们为止。有没有办法防止这种情况发生?请不要建议使用数据库。
最有可能的原因是您需要通过URL直接访问Flat Files并两次刷新Flat Files,这是您的浏览器正在缓存它们。刷新使用最新版本更新浏览器的缓存。
当Web服务器服务静态内容时,它告诉Web浏览器将内容缓存一段时间,因为静态内容不太可能在一段时间内更改。
当Web服务器提供动态内容时,几乎总是意味着内容将非常快地更改,并且缓存它可能是个坏主意。
现在,为什么您不应该直接使用AJAX访问平面文件的原因不是因为缓存问题(尽管它确实解决了问题),而是因为 Security 。如果您的文件中有一些秘密信息,会发生什么?当然,您可以告诉浏览器不要获取该部分,但是用户仍然可以(通过URL)对文件进行完整访问。
与您不让浏览器访问数据库的方式相同,您不允许浏览器直接访问您的平面文件。这也意味着它们应存储在文档根部之外,或通过其他方式保护公众访问。