我正在创建一个在画布上绘制大量小部件和图块的应用程序。核心UI将由一长串字符定义,并通过javascript在页面加载时绘制。既然核心UI很大,大于250K,并且永远不会改变,那么缓存它的好方法是什么?
我知道我可以把它放在文件顶部的变量中,但是有更有效的方法吗?喜欢如果写道:
var img = new Image(); img.src ='moose.png'
我认为浏览器会下载并缓存此图像,因此在后续请求中,它不必再次访问我的服务器。但是如何用一大块文本来做呢?
编辑:基本上我正在寻找替代方案: var myUI =“AAAABBBCBVBVNCNDGAGAGABVBVB ....等约20页”;答案 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)改进。