Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.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
Javascript缓存_Javascript_Ajax - Fatal编程技术网

Javascript缓存

Javascript缓存,javascript,ajax,Javascript,Ajax,我需要通过ajax从服务器获取大量数据。进入浏览器需要一点时间。当用户第二次返回到同一个网页时,我不希望他们再次通过ajax下载数据。Javascript是否可以将json数据可靠地写入浏览器缓存或文件系统 干杯 Rich您看过localStorage规范吗?正如Tim所说,localStorage是一个不错的选择,但并非所有浏览器都支持它。作为备用方案,您可以将JSON文本存储在会话中。我认为如果响应具有正确的标题,浏览器将像其他页面一样缓存它。我发现本教程内容丰富 此时您可以利用RESTfu

我需要通过ajax从服务器获取大量数据。进入浏览器需要一点时间。当用户第二次返回到同一个网页时,我不希望他们再次通过ajax下载数据。Javascript是否可以将json数据可靠地写入浏览器缓存或文件系统

干杯


Rich

您看过localStorage规范吗?

正如Tim所说,localStorage是一个不错的选择,但并非所有浏览器都支持它。作为备用方案,您可以将JSON文本存储在会话中。

我认为如果响应具有正确的标题,浏览器将像其他页面一样缓存它。我发现本教程内容丰富


此时您可以利用RESTful服务

如果您的请求是通过
GET
发出的,并且是幂等的(例如:相同的查询URL将始终产生相同的响应),浏览器将缓存响应


请参阅:

您可以自动将AJAX响应存储到本地存储中,并使用网络回复或缓存版本,如下所述:

谢谢大家的回答。如果明天不是星期天,妻子和孩子们想要我,我会花点时间在上面!嗨,阿什,看看本地存储。它看起来正是我所需要的,但正如你所说,它只适用于现代浏览器。如果我实现了您建议的在用户会话中存储的回退,这是否意味着在cookie中?若有,原因为何;;每个请求都会前后传递给服务器,这难道不会让整个过程变得毫无意义吗?如果您不是在说cookies,我如何在会话中存储会话数据?会话数据存储在服务器上,而不是客户端上,这意味着它不会随每个请求一起传递。至于读/写会话,这取决于您使用的语言。好吧,明白了,我很困惑,因为我的目标是防止多次下载数据,会话不会阻止。我将在架构中有一个memcached服务器,这样我就可以在那里存储queryset或序列化版本,而不是每次都查询DB,我只需要减少数据下载。看起来答案可能是在可用的地方使用localStorage,并告诉用户为了获得最佳性能,请下载最新的浏览器。我阅读了您提供的文档链接。不幸的是,数据集会随着时间的推移而增长,因此从给定GET返回的查询并不完全是幂等的。除非有更好的模式,否则我打算获取数据,存储数据和数据的最后一个ID,然后在下一个get请求中指定最后一个ID,这样我只从该点获取数据。如果我没有本地存储,每次都会得到一个不断增长的数据集。它可以工作,但速度会慢得多。@Rich您可以拥有可通过RESTful服务更新的内容,您只需明智地使用标题即可。但内容是在服务器上的Ajax外部更新的,所以我应该使用哪个标题来检索独立于客户端更改的数据?就我目前所知,它是有效的,它不是幂等的。我理解得对吗?今天,多亏了你对localStorage的建议,我开始使用YUI storage lite。似乎与我的现代浏览器配合得很好。它只有2.6k,所以我可以在JQuery中使用它,而不必加载太多页面大小。