如何防止 browser/server 端的数据缓存?
How can I prevent data caching on the browser/server side?
我主要是一名电气硬件工程师,对 php、javascript 和类似语言知之甚少。
我正在构建一个系统,可以实时跟踪我的设备并在 Google 地图上直观地显示它的当前 GPS 位置。我的设备能够按照我的意愿正确发送有关其位置(纬度和经度)的数据。 GPS 位置数据使用 HTTP 通信协议(GET 请求)发送,并存储在服务器端名为 gps.txt 的 .txt 文件中。
php 脚本从 gps.txt 文件中提取数据并将它们显示在 Google 地图上。
Here 是用 php 编写的脚本(为了正确使用 Google 地图,我应用了自己的 API 密钥)。
此脚本 运行 在一些免费的网络托管平台上。看看here.
现在,当我从网络浏览器调用脚本时,问题就来了。也就是说,虽然 gps.txt 数据已用新数据正确刷新,但这些新位置标记并未显示在地图上。似乎我的网络浏览器或我的网络服务器正在兑现一些数据,并且不允许脚本 运行 覆盖新的 gps.txt 文件。
我想,对于你们中的许多网络软件开发人员来说,这是一个微不足道的问题。
我还试图通过添加
来阻止浏览器上的数据兑现
header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // Date in the past
在我的脚本中但没有成功。
关于如何克服这种情况并始终在我的地图上显示最新的 GPS 位置,请给我一些建议好吗?
非常感谢您花时间和精力帮助我。
此致,
博扬
这将禁用所有 jQuery 请求的缓存:
$.ajaxSetup ({
// Disable caching of AJAX responses
cache: false
});
您可以将其粘贴到您的 initialize
函数中,看看它是否有效!
另一个手工制作的解决方案是在每次获取文本文件时向文件 URL 添加递增的数字,例如 gps.txt?1
,然后是 gps.txt?2
,依此类推:如就浏览器而言,存在不同的 URL 所以它们(有点)被单独缓存。
我主要是一名电气硬件工程师,对 php、javascript 和类似语言知之甚少。
我正在构建一个系统,可以实时跟踪我的设备并在 Google 地图上直观地显示它的当前 GPS 位置。我的设备能够按照我的意愿正确发送有关其位置(纬度和经度)的数据。 GPS 位置数据使用 HTTP 通信协议(GET 请求)发送,并存储在服务器端名为 gps.txt 的 .txt 文件中。
php 脚本从 gps.txt 文件中提取数据并将它们显示在 Google 地图上。
Here 是用 php 编写的脚本(为了正确使用 Google 地图,我应用了自己的 API 密钥)。
此脚本 运行 在一些免费的网络托管平台上。看看here.
现在,当我从网络浏览器调用脚本时,问题就来了。也就是说,虽然 gps.txt 数据已用新数据正确刷新,但这些新位置标记并未显示在地图上。似乎我的网络浏览器或我的网络服务器正在兑现一些数据,并且不允许脚本 运行 覆盖新的 gps.txt 文件。
我想,对于你们中的许多网络软件开发人员来说,这是一个微不足道的问题。
我还试图通过添加
来阻止浏览器上的数据兑现header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // Date in the past
在我的脚本中但没有成功。
关于如何克服这种情况并始终在我的地图上显示最新的 GPS 位置,请给我一些建议好吗?
非常感谢您花时间和精力帮助我。
此致,
博扬
这将禁用所有 jQuery 请求的缓存:
$.ajaxSetup ({
// Disable caching of AJAX responses
cache: false
});
您可以将其粘贴到您的 initialize
函数中,看看它是否有效!
另一个手工制作的解决方案是在每次获取文本文件时向文件 URL 添加递增的数字,例如 gps.txt?1
,然后是 gps.txt?2
,依此类推:如就浏览器而言,存在不同的 URL 所以它们(有点)被单独缓存。