Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何使用缓存来加快加载时间?(使用GET方法)_Php_Html_Caching - Fatal编程技术网

Php 如何使用缓存来加快加载时间?(使用GET方法)

Php 如何使用缓存来加快加载时间?(使用GET方法),php,html,caching,Php,Html,Caching,我有一个网页,可以在向用户显示有用内容之前下载大量的初步文件。有时,标准连接可能需要5到10秒的时间,这可能会让用户非常沮丧地等待。这是一个需要90%时间加载的文件,所以我想做点什么 我读了一些关于缓存的书。。。是否可以缓存此文件的数据,以便下次可以立即加载 它从中获取信息的URL如下所示:getData.php?id=A5324DFJK4 这些数据是通过AJAX调用获得的,AJAX调用返回XML数据(然后由应用程序解析)。我使用GET的原因是为了缓存特定的ID(我希望我这样做是对的,内容因ID

我有一个网页,可以在向用户显示有用内容之前下载大量的初步文件。有时,标准连接可能需要5到10秒的时间,这可能会让用户非常沮丧地等待。这是一个需要90%时间加载的文件,所以我想做点什么

我读了一些关于缓存的书。。。是否可以缓存此文件的数据,以便下次可以立即加载

它从中获取信息的URL如下所示:getData.php?id=A5324DFJK4

这些数据是通过AJAX调用获得的,AJAX调用返回XML数据(然后由应用程序解析)。我使用GET的原因是为了缓存特定的ID(我希望我这样做是对的,内容因ID而异,所以我认为缓存每个ID是有意义的)

缓存代码的实际平台是手机,我正在使用PhoneGap在完成后构建应用程序。如果有人能告诉我如何使用缓存来改善我的情况,我将非常感激


谢谢

您能在服务器上进一步处理数据并将其缓存在那里吗?你的问题描述真的没什么可谈的

缓存使用PHP创建的内容的示例

浏览器将为每个ID缓存页面,这是正确的。您可以告诉浏览器希望将这些数据缓存多长时间。正如您所说的,它是XML,可以包含在您现在在getData.php脚本中打印的XML的标题中

例如:


谢谢你的回答。这看起来确实是一个很好的做事方式。。。有没有简单的方法让它在第一次下载时缓存内容,然后每次检查内容是否发生了变化(如果发生了变化,下载并缓存新数据,如果它不只是使用缓存的文件)?你不能既吃又吃,但首先要问自己为什么要它。php?id=A5324DFJK4意味着它是一个非常特定的资源,id为A5324DFJK4,为什么它在什么时候会被检索到?如果它是相关的-为什么要首先缓存它?我能想到的唯一其他方法是将当前时间与getData.php文件的filemtime()进行比较,如果它在为缓存设置的时间的X范围内,则发送标头(“Expires:Sat,1997年7月26日05:00:00 GMT”)//过去的。但是,这将使所有请求在该时间段内不可缓存。谢谢您的评论。你说得对,这是一种特殊的资源。假设有很多人在使用这个应用程序,根据您的身份不同,ID也会有所不同,但大多数情况下人们会使用相同的ID。
header('Expires: ' . gmdate('D, d M Y H:i:s', strtotime('+2 days')) . ' GMT');
header("Content-type: text/xml");
header("Pragma: cache");