【发布时间】:2021-12-03 08:41:38
【问题描述】:
我遇到了一个奇怪的情况,我希望有人可能曾经经历过这种情况并知道可能的情况会导致这种情况发生。
我有一个从 SQL 数据库访问数据的 PHP 网站。用户填写表格以添加或编辑已发布的数据并将数据写入数据库。如果用户正在编辑现有数据,则 php 会加载表单所需的数据,一旦页面加载完毕,我会使用 JavaScript 将数据填充到适当的字段中。
所有这些都适用于我测试过的所有机器和大多数用户。
但是...一些用户报告说他们在表单中没有看到正确的数据,而是看到了过时的信息。因此,当这些用户“编辑”表单时,他们看到的不是数据库中当前包含的信息,而是旧信息。
我的理解是(通常)php 文件不会被缓存,因为它们是在服务器上执行的,然后将最终产品交给用户。是否有任何情况可能导致某个用户在从服务器接收到这些“组装”文件后以某种方式缓存这些文件,然后在下次页面加载时重新加载?
例子:
今天,一位客户试图使用表单编辑信息。他们打电话给我是因为某个字段显示不正确。
我登录了我的网站并加载了相同的表单。我的表单显示了正确的数据(包含在 SQL 数据库中),而他们的表单显示了不同的数据。
两个不同的用户使用相同的浏览器(chrome)查看相同的 php 网页和相同的表单,应该显示相同的数据,但事实并非如此。
我不知道如何追踪这个问题并解决它。
更新:
玩了一会儿后,我怀疑这可能是客户端的浏览器或互联网比大多数慢一点的问题,这可能导致 Javascript 在页面完全加载之前执行。
我将其更改为使用 jQuery 执行 javascript onload,这可能会解决问题,直到我可以重新编写更优雅的解决方案,但尚未收到此特定客户端的回复,所以不知道这是否为他们解决了问题然而……但它肯定不会受到伤害。
【问题讨论】:
标签: javascript php sql caching