繁体   English   中英

如何使用ajax,php或jquery缓存信息?

[英]how do you cache information using ajax, php, or jquery?

我正在尝试理解缓存数据的使用。 我对此有所了解。 它可以帮助数据加载更快,因为它将信息存储在浏览器中?

如果有人能帮助我更好地理解这一点,我将不胜感激。 此外,是否可以从输入字段缓存值并检索或存储它以供以后使用? 如果是这样,有人可以向我展示如何在PHP,ajax或jquery中实现它的示例或指导我参加教程吗?

谢谢!

本季的时尚是使用localStorage在客户机器上存储数据。 例如见: http//php-html.net/tutorials/html5-local-storage-guide/

缓存是位于数据源(数据库,硬盘驱动器,Web资源等)和需要访问该数据源的东西之间的东西。 than accessing the data directly off the data source. 我们的想法是,从缓存中访问数据应该比直接从数据源访问数据

text field values for use later, (without knowing more about the specifics of your setup), I think you're looking for a cookie. 如果您想文本字段值以供日后使用,(我们不了解您的设置细节),我认为您正在寻找一个cookie。

当用户在文本框中键入文本时,使用javascript 设置cookie

用户下次访问该页面时,您可以使用javascript检查他们在文本框中输入的内容,以查看该Cookie是否存在,如果存在,则包含哪些内容。

请注意,此方法将缓存用户计算机上的数据 - 而不是Web服务器上的数据。 如果要将这些值存储在Web服务器上,则需要在用户提交表单时将它们写入文件或数据库,或者使用AJAX将输入表单的值异步发送到PHP后端,这样它可以存储价值。

you want to cache/store and you think you should be doing it, then we can give you a better quality answer with some code examples. 如果你能成为一个更具体一点,以你想要缓存/存储以及你认为你应该做的,那么我们可以给你提供一些代码示例质量更好的答案。

请准确描述您的问题是什么,以及您希望解决方案做什么。

编辑:从您之前的问题看来,您似乎想要某种自动完成功能。 有两种类型:

1)自动完成用户之前输入的内容:

当用户提交表单时,您可以执行以下三项操作之一:

a)将文本输入存储在数据库中。 当用户下次访问该页面时,使用PHP将以前的搜索嵌入到javascript中(可能是一个数组)。 当用户在文本框中键入时,使用javascript显示自动完成框。 (对于用户来说更快,如果您希望每个用户存储大量的先前输入,则不太实用)

b)将文本输入存储在数据库中。 当用户访问该页面时,使用AJAX在他们键入时检索最可能的匹配。 (对于用户来说较慢,但如果您期望每个用户保存大量搜索,则会更好)

c)将文本输入存储在cookie中。 当用户提交表单时,将输入保存在cookie中。 您可以在多个cookie中存储多个搜索,也可以在1个分隔的cookie中搜索1个。 请注意,cookie的最大大小(包括它的名称和其他详细信息是4K,因此您应该将其保持在4000字节以下)。

auto-complete what the user has previously typed. 注意:如果以这种方式配置,浏览器应完成用户先前键入的内容。 您希望自己实现此类自动完成的唯一原因是您需要某种跨浏览器或跨系统功能。

2)预测自动完成,例如在进行Google搜索时。

该方法基本上与1b相同。 您将在数据库中存储以前或建议的搜索词列表。 当用户在输入字段中键入文本时,您的AJAX请求将获取用户正在搜索的内容的最可能的候选者。

这取决于。 您几乎每次都可以缓存图像,css,js,因为它始终是相同的。 您不需要做任何事情,他们应该自动缓存。

您也可以缓存GET和POST响应,但这有点负责任。 您必须知道冲洗它的时间,时间和频率。

要通过jQuery单独打开GET请求缓存,请使用

$.ajax({
    'cache':true, 
    'url'  :'ajax.php',
    //and more parameters

});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM