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