缓存javascript文件的执行

缓存javascript文件的执行,javascript,ajax,caching,Javascript,Ajax,Caching,据我所知,不可能实现以下目标,但只有专家才能证实这一点: 我有一个第1页,页面加载后请求一些用户和应用程序数据,第2页使用相同的脚本,请求相同的信息将是浪费 我知道浏览器缓存脚本,我的问题是它是否也缓存执行(数据) 页面不共享相同的布局,因此不可能通过ajax重新加载第2页。浏览器不会自动缓存脚本的结果(这将非常奇怪),但是您可以通过设置(并检查),使用现代浏览器上的新浏览器等进行设置,它们在每次请求时都被发送到服务器,因此导致请求的大小增加;如果您可以使用本地存储,请执行。浏览器不会自动缓存脚

据我所知,不可能实现以下目标,但只有专家才能证实这一点:

我有一个第1页,页面加载后请求一些用户和应用程序数据,第2页使用相同的脚本,请求相同的信息将是浪费

我知道浏览器缓存脚本,我的问题是它是否也缓存执行(数据)


页面不共享相同的布局,因此不可能通过ajax重新加载第2页。

浏览器不会自动缓存脚本的结果(这将非常奇怪),但是您可以通过设置(并检查),使用现代浏览器上的新浏览器等进行设置,它们在每次请求时都被发送到服务器,因此导致请求的大小增加;如果您可以使用本地存储,请执行。

浏览器不会自动缓存脚本的结果(这将非常奇怪),但是您可以通过设置(并检查),使用新的现代浏览器等方式来执行。不过,请注意,cookie会在每次请求时发送到服务器,因此导致请求的大小增加;如果您可以使用本地存储,请执行。

如果您使用某种客户端存储,如
localStorage
(有关更多详细信息,请参阅)

浏览器本身也可能在内部缓存您的请求,因为ajax请求与浏览器发出的任何其他请求(html文档、图像等)没有区别。因此,根据您的具体请求(包括所有参数),浏览器可能会实际使用您请求的缓存版本,以避免不必要的调用。然而,这里应用了缓存的常规限制和属性,因此您不能依赖于这种行为

如果使用某种客户端存储,如
localStorage
(有关更多详细信息,请参阅)


浏览器本身也可能在内部缓存您的请求,因为ajax请求与浏览器发出的任何其他请求(html文档、图像等)没有区别。因此,根据您的具体请求(包括所有参数),浏览器可能会实际使用您请求的缓存版本,以避免不必要的调用。然而,这里应用了缓存的常规限制和属性,因此您不能依赖于这种行为

如果您的“页面”是新URL,浏览器将不会自动缓存您的数据

但您当然可以通过几种方式实现它 一种是在支持HTML5的新浏览器中使用本地存储

另一种方法是编写应用程序,使其成为具有多个视图和转换的单个页面 使用AJAX替换部分页面(视图)

这种技术正变得越来越流行

我强烈建议阅读Alex MacCaw的“Javascript Web应用程序”,了解Javascript MVC以及如何使用Javascript创建客户端(基于浏览器)控制器,并在浏览器中查看和管理缓存、状态等。还可以看看像backbone.js这样的框架


如果您的“页面”是新的URL,浏览器将不会自动缓存您的数据

但您当然可以通过几种方式实现它 一种是在支持HTML5的新浏览器中使用本地存储

另一种方法是编写应用程序,使其成为具有多个视图和转换的单个页面 使用AJAX替换部分页面(视图)

这种技术正变得越来越流行

我强烈建议阅读Alex MacCaw的“Javascript Web应用程序”,了解Javascript MVC以及如何使用Javascript创建客户端(基于浏览器)控制器,并在浏览器中查看和管理缓存、状态等。还可以看看像backbone.js这样的框架


我会避免缓存数据,除非存在严重的性能问题(然后,与其缓存数据,不如消除性能问题)。是的


缓存数据时,必须考虑所有类型的场景(过时数据、已删除数据)(除非数据是静态的,但无论如何都不相关)。

我会避免缓存数据,除非存在严重的性能问题(然后,与其缓存数据,不如消除性能问题)。是的


缓存数据时,必须考虑所有类型的场景(过时数据、删除数据)(数据是静态的除外,但无论如何都不相关)。

浏览器不会(也确实不能)缓存结果;一般来说,这没有多大意义。但是,您可以将某些计算结果放入cookie或浏览器的本地存储中;一般来说,这没有多大意义。但是,您可以将一些计算结果放入cookie或浏览器的本地存储中。我不推荐使用cookie,因为它们会在将来的每个请求中传输。根据要存储的数据的形状,这可能会导致一些不必要的流量。@Sirko:我想说,我们没有足够的信息来知道它们是否是一个合适的选择——但这是一个很好的观点,需要对OP进行强化。我不推荐在这里使用cookie,因为它们会在将来的每个请求中传输。根据要存储的数据的形状,这可能会导致一些不必要的流量。@Sirko:我想说,我们没有足够的信息来知道它们是否是一个合适的选择——但这是一个很好的观点,需要为OP加强。