Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/418.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_Browser Cache - Fatal编程技术网

Javascript 在客户端缓存中查找解决方案

Javascript 在客户端缓存中查找解决方案,javascript,browser-cache,Javascript,Browser Cache,我们在网页中提供地图(就像谷歌地图一样),当用户放大/缩小、移动地图时,我们需要向服务器发出请求以获取一些信息,因此请求事件会非常频繁,这会减慢用户的动作速度,例如,当用户移动地图时,他/她会注意到它不平滑,因此,我想知道是否有一些现成的客户端缓存解决方案?可能是您正在寻找的。可能是您正在寻找的。我想这取决于您的映射是如何实现的。这是您要缓存的图像吗?如果它们是http请求的结果,那么如果您的内容可以缓存并且具有适当的过期时间,浏览器缓存将防止对相同内容的重复请求 或者,您也可以利用HTML5本

我们在网页中提供地图(就像谷歌地图一样),当用户放大/缩小、移动地图时,我们需要向服务器发出请求以获取一些信息,因此请求事件会非常频繁,这会减慢用户的动作速度,例如,当用户移动地图时,他/她会注意到它不平滑,因此,我想知道是否有一些现成的客户端缓存解决方案?

可能是您正在寻找的。

可能是您正在寻找的。

我想这取决于您的映射是如何实现的。这是您要缓存的图像吗?如果它们是http请求的结果,那么如果您的内容可以缓存并且具有适当的过期时间,浏览器缓存将防止对相同内容的重复请求


或者,您也可以利用HTML5本地存储,但如果您缓存的是图像数据,则必须将其转换为base64 ascii,因为本地存储只允许文本数据作为值输入。

我想这取决于地图的实现方式。这是您要缓存的图像吗?如果它们是http请求的结果,那么如果您的内容可以缓存并且具有适当的过期时间,浏览器缓存将防止对相同内容的重复请求


或者,您也可以利用HTML5本地存储,但如果您缓存的是图像数据,则必须将其转换为base64 ascii,因为本地存储只允许文本数据作为值输入。

您需要结合多种技术为用户创造更流畅的体验

一些想法:

  • 使用javascript()预取图像
  • 使用图像映射或CSS精灵来减少对服务器的请求数量
  • 调整图像的标题以优化浏览器将其保留在缓存中的方式
  • 将图像存储在不同的域中,以使用并行域加快下载时间()
  • 使用更好的压缩算法减小图像的大小

在用户的机器上存储图像不是一个好主意。

您需要结合多种技术为用户创造更流畅的体验

一些想法:

  • 使用javascript()预取图像
  • 使用图像映射或CSS精灵来减少对服务器的请求数量
  • 调整图像的标题以优化浏览器将其保留在缓存中的方式
  • 将图像存储在不同的域中,以使用并行域加快下载时间()
  • 使用更好的压缩算法减小图像的大小

在用户的机器上存储图像不是一个好主意。

绝对不是图像,图像将由浏览器本身缓存,不是吗?我们请求一些附加信息,这些信息将以xml/json格式返回。@hguser如果http头说可以,它们将被缓存。您可能希望使用探查器检查此问题,并查看-例如,如果浏览器正在检查更新,您可能会收到许多不必要的未修改请求。如果客户端可以安全地将图像缓存更长时间,请在图像上设置相当长的过期时间,这样浏览器就不会发出任何请求。如果只是文本数据,可以在DOM的生命周期内缓存在JavaScript数据结构中,也可以使用浏览器功能存储为@orip状态,也许可以通过PersistJS这样的框架(会停留更长时间),谢谢,我将尝试使用presistjs。但是这个框架似乎不是很活跃,我想知道是否还有其他可能的框架?+1,有正确的HTTP响应头也会让浏览器缓存XML/JSON响应,日期URL只需要是唯一的XML/JSON不是静态的,它们是根据地图的当前位置和级别在服务器端生成的。对于exmaple:你可以尝试谷歌地图,打开firebut,尝试移动地图或放大/缩小,你会发现谷歌每次都会请求一些东西,因为我们没有像谷歌那样强大的服务器,所以我们每次都可以发出请求,然后我们考虑客户端缓存。\n绝对不是图像,图像将由浏览器本身缓存,不是吗?我们请求一些附加信息,这些信息将以xml/json格式返回。@hguser如果http头说可以,它们将被缓存。您可能希望使用探查器检查此问题,并查看-例如,如果浏览器正在检查更新,您可能会收到许多不必要的未修改请求。如果客户端可以安全地将图像缓存更长时间,请在图像上设置相当长的过期时间,这样浏览器就不会发出任何请求。如果只是文本数据,可以在DOM的生命周期内缓存在JavaScript数据结构中,也可以使用浏览器功能存储为@orip状态,也许可以通过PersistJS这样的框架(会停留更长时间),谢谢,我将尝试使用presistjs。但是这个框架似乎不是很活跃,我想知道是否还有其他可能的框架?+1,有正确的HTTP响应头也会让浏览器缓存XML/JSON响应,日期URL只需要是唯一的XML/JSON不是静态的,它们是根据地图的当前位置和级别在服务器端生成的。对于exmaple:你可以尝试谷歌地图,打开firebut,尝试移动地图或放大/缩小,你会发现谷歌每次都会请求一些东西,因为我们没有像谷歌那样强大的服务器,所以我们每次都可以发出请求,然后我们考虑客户端中的缓存\