据我所知,实现以下目标是不可能的,但只有专家才能证实这一点:
页面加载时,我有第1页请求一些用户和应用程序数据,第2页使用相同的脚本,请求相同的信息是浪费。
我知道浏览器会缓存脚本,我的问题是它是否还缓存了执行(数据)。
页面不共享相同的布局,因此无法通过ajax重新加载第2页。
答案 0 :(得分:2)
浏览器不会自动缓存脚本的结果(这会非常奇怪),但你可以通过设置(和检查)cookies来使用新的local storage stuff在现代浏览器等上。但请注意,它们会在每次请求时发送到服务器,因此会增加请求的大小;如果你可以使用本地存储,请执行。
答案 1 :(得分:1)
如果您使用localStorage
等某种客户端存储空间,则可以“缓存”您的数据(有关详情,请参阅MDN docu)。
浏览器本身也可以在内部缓存您的请求,因为ajax请求与浏览器发出的任何其他请求(html文档,图像等)没有什么不同。因此,根据您的确切请求(包括所有参数),浏览器实际上可能会使用您的请求的缓存版本,以避免不必要的调用。但是,这里适用缓存的常用限制和属性,因此您不可以依赖该行为!
答案 2 :(得分:1)
如果您的“网页”是新网址,浏览器不会自动缓存您的数据。
但是你有可能以多种方式实现它 一种是在支持HTML5的新浏览器中使用本地存储
另一种方法是编写应用程序,使其成为具有多个视图和转换的单个页面 使用AJAX替换部分页面(视图)。
这种技术越来越受欢迎。
我强烈建议阅读Alex MacCaw的“Javascript Web Applications”以了解javascript MVC以及如何使用javascript创建客户端(基于浏览器)控制器以及在浏览器中查看和管理缓存,状态等。还要看一下像backbone.js
这样的框架答案 3 :(得分:1)
我会避免缓存数据,除非出现严重的性能问题(然后,而不是缓存性能问题而不是缓存它)。这是premature optimization。
当缓存数据时,必须考虑所有类型的场景(陈旧数据,删除的数据)(除非数据是静态的,但是,无论如何,它都不相关)。