Javascript缓存问题

时间:2009-12-02 20:54:53

标签: javascript caching

我正在创建一个在画布上绘制大量小部件和图块的应用程序。核心UI将由一长串字符定义,并通过javascript在页面加载时绘制。既然核心UI很大,大于250K,并且永远不会改变,那么缓存它的好方法是什么?

我知道我可以把它放在文件顶部的变量中,但是有更有效的方法吗?喜欢如果写道:

var img = new Image(); img.src ='moose.png'

我认为浏览器会下载并缓存此图像,因此在后续请求中,它不必再次访问我的服务器。但是如何用一大块文本来做呢?

编辑:基本上我正在寻找替代方案:

 var myUI =“AAAABBBCBVBVNCNDGAGAGABVBVB ....等约20页”;

5 个答案:

答案 0 :(得分:2)

您可以创建包含文本字符串的JavaScript文件。

var text='.....';

然后你可以包括脚本:

<script src="/ui.initialization.js" type="text/javascript"></script>

跟随您用于呈现UI的任何其他JavaScript。浏览器将缓存js文件。

修改

我假设您反对使用长串文本内联。通过将其移动到单独的文件,您允许浏览器对其进行缓存(如果它是真正的静态您的服务器配置了适当的静态资源缓存控制)。

这里有一些information for tweaking caching on Apache(我假设你在Apache上运行PHP)。

答案 1 :(得分:0)

大多数静态资源都可以通过浏览器进行缓存。只需将您的数据放入.txt,.dat,.xml或其他任何内容(甚至是.js)中,然后使用您的javascript通过AJAX加载它。

答案 2 :(得分:0)

在超过1Mbps吞吐量的任何地方下载250K的时间是&lt; 1秒..这对你来说是个问题吗?

你正在下载的包含带有250K行李的javascript的文件可能会自行缓存。

答案 3 :(得分:0)

您可以使用FF 3.5和其他人支持的谷歌设备或新的 HTML 5数据存储功能。

答案 4 :(得分:0)

使用 Google网页速度 YSlow 来确定您可以执行的其他(HTTP)改进。