我正在使用cordova开发移动应用程序。该应用程序包括将AJAX请求发送到远程服务器上的php脚本,然后php从数据库中提取所需数据并以JSON格式响应这些数据,以便应用程序可以解析这些数据并在应用程序上显示它们。这里的问题是,每次打开应用程序或在应用程序的不同页面之间浏览时,我都必须再次发送AJAX调用。
这是请求数据的函数:
$.ajax({
crossDomain: true,
type: "GET",
async: false,
url: "www.website.com/get-data.php?offset=8&&categorie=all ,
dataType: "json",
cache: true,
success: function (data) {
//function to call if success callback
}
});
是否有任何解决方案来缓存数据或保存一些如何防止不必要地使用互联网连接以及浪费时间等待服务器的响应?
感谢您的回答。
答案 0 :(得分:0)
你并没有完全描述你想保存的数据类型(只是字符串吗?它是一个数组吗?一个对象?)或显示任何代码,所以我只能point指向你。快速了解本教程,您可以了解有关sessionStorage和localStorage的一些信息,这些信息可能对您的程序有所帮助。如果这些建议符合您的需求,您可以进行更深入的研究。
(对不起,我不在评论中写这个,我只是没有足够的声誉)
答案 1 :(得分:0)
对我来说,我遇到了同样的问题,将数据缓存为字符串的最佳方法是localstorage。然后,您还可以存储上次将数据更新到本地存储的时间,并仅在日期已更新为新数据时检查服务器中的数据。
答案 2 :(得分:0)
您没有提供有关在Android活动中使用AJAX响应以及所需缓存时间的大量信息。
以下是针对您的三条建议:
服务器应该为每个请求生成校验和。当您发送请求时,服务器将为您提供JSON响应+当前JSON数据校验和。您应该在设备上保存(缓存)JSON响应+校验和(作为设置或XML文件或JSON文件,...)。
在每次需要发送请求之后,您将最后一个你得到的校验和,作为请求中的HTTP参数。因此,服务器检查校验和(以及数据)是否未更改,服务器将仅返回USE_CACHE,并且应用程序使用上次缓存的JSON响应,否则您将获得新的JSON响应+新的校验和。
此解决方案将处理单个请求原始。但是你可以完成它并添加多个原始支持(如果你不能做的话,我可以帮助你。)