2015-07-13 116 views
1

我主要是一名电气硬件工程师,在php,javascript和类似语言方面的知识很少。如何防止浏览器/服务器端的数据缓存?

我正在构建一个系统,可以实时跟踪我的设备,并在Google地图上直观显示当前GPS位置。我的设备能够根据需要经常发送关于其位置(经度和纬度)的数据。 GPS位置数据使用HTTP通信协议(GET请求)发送,并存储在服务器端的.txt文件中,名为gps.txt。

php脚本从该gps.txt文件中提取数据并将其显示在Google地图上。

Here是用php编写的脚本(我使用自己的API密钥正确使用Google地图)。

这个脚本运行在一些免费的虚拟主机平台上。看看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位置?

非常感谢您的时间和精力来帮助我。

真诚,

博扬

回答

0

这将禁用缓存所有的jQuery请求:

$.ajaxSetup ({ 
    // Disable caching of AJAX responses 
    cache: false 
}); 

您可以粘贴到你initialize功能,看看它是否有效!

另一种手工制作的解决方案是在每次获取文本文件时向文件URL添加越来越多的数字,例如gps.txt?1,然后gps.txt?2等等:只要浏览器知道存在不同的URL,那么它们(类型)分开缓存。