关于html5和cocos2d-html5缓存问题及解决办法
2014-09-24 15:29
405 查看
先说html5对应的缓存:
从html发展至今, 缓存各种各样, 要统一清除十分困难
1.网页缓存, 指访问对应的网页本身内的代码, 不清除, 网页内代码更新后, 网页始终不会被访问后的客户端更新
<META HTTP-EQUIV="pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Cache-Control" CONTENT="no-store, must-revalidate">
<META HTTP-EQUIV="expires" CONTENT="Wed, 26 Feb 1997 08:21:57 GMT">
<META HTTP-EQUIV="expires" CONTENT="0">
2.图片缓存, 一般指的是<img>内的图片, 也有可能来自其他位置, 或者css的图片, 在这里只提及img的处理方法, 给img一个id, 然后通过js来刷新它, 这也是比较方便的做法, 或者在这里使用documents.write来写入img标签
<img src="images/test.jpg" id="img_test" style="display:block;">
一般我使用这个versionImg用于在图片更新后才进行修改版本号, 当然你也可以使用随时变化的Math.random(), 这样的话, 图片就完全不被缓存了, 但是这样对服务器负担比较大, 不建议采用
3.js缓存和css缓存, 导入的js和css都会被当成静态不变的文档处理, 来加快再次访问网页的速度, 但是, js作为灵活的脚本, 更新在所难免, 所以这时候需要对js进行很好的缓存控制
4.当然了, cocos2d.js的方法和上面一样
5.cocos2d-html5的js缓存, 这个很好修改, 只要在打包好的package.js后加缓存就好了, 别告诉你不知道如何打包, 使用ant很方便,
6.cocos2d-html5的res资源缓存问题, 这个我没用版本更替的方法, 我想应该是可以的
我在这里直接对应res资源做版本管理
var sf_res = "res/res_v"+versionRes+".plist"
如果这里不做任何处理, plist可能会随着更新, 但是图片不会, 会导致严重贴图错误
从html发展至今, 缓存各种各样, 要统一清除十分困难
1.网页缓存, 指访问对应的网页本身内的代码, 不清除, 网页内代码更新后, 网页始终不会被访问后的客户端更新
<META HTTP-EQUIV="pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Cache-Control" CONTENT="no-store, must-revalidate">
<META HTTP-EQUIV="expires" CONTENT="Wed, 26 Feb 1997 08:21:57 GMT">
<META HTTP-EQUIV="expires" CONTENT="0">
2.图片缓存, 一般指的是<img>内的图片, 也有可能来自其他位置, 或者css的图片, 在这里只提及img的处理方法, 给img一个id, 然后通过js来刷新它, 这也是比较方便的做法, 或者在这里使用documents.write来写入img标签
<img src="images/test.jpg" id="img_test" style="display:block;">
jQuery(function() { $("#img_test").attr("src","images/test.jpg?version="+versionImg); });
一般我使用这个versionImg用于在图片更新后才进行修改版本号, 当然你也可以使用随时变化的Math.random(), 这样的话, 图片就完全不被缓存了, 但是这样对服务器负担比较大, 不建议采用
3.js缓存和css缓存, 导入的js和css都会被当成静态不变的文档处理, 来加快再次访问网页的速度, 但是, js作为灵活的脚本, 更新在所难免, 所以这时候需要对js进行很好的缓存控制
document.write('<scri'+'pt src="js/jquery-1.8.2.js?version='+versionJs+'" type="text/javascript"></s'+'cript>');使用这个写法, 能将变量值写到js访问网址内, 直接写的话, 是不被允许的, 虽然可以直接写死版本号, 但是如果你的页面版本文件过多, 控制起来相当麻烦, 还是统一进行管理干涉比较好
4.当然了, cocos2d.js的方法和上面一样
document.write('<scri'+'pt src="js/cocos2d.js?version='+versionJs+'" type="text/javascript"></s'+'cript>');
5.cocos2d-html5的js缓存, 这个很好修改, 只要在打包好的package.js后加缓存就好了, 别告诉你不知道如何打包, 使用ant很方便,
SingleEngineFile:'js/game.js?version='+versionJs,因为是在js内部修改, 所以加版本号就变得容易多了
6.cocos2d-html5的res资源缓存问题, 这个我没用版本更替的方法, 我想应该是可以的
我在这里直接对应res资源做版本管理
var sf_res = "res/res_v"+versionRes+".plist"
如果这里不做任何处理, plist可能会随着更新, 但是图片不会, 会导致严重贴图错误
相关文章推荐
- 关于cocos2d-html5纹理模糊的问题解决办法
- cocos2d-x 关于opengl version too old 问题解决办法
- cocos2d-x 关于opengl version too old 问题解决办法
- 关于cocos2d实现H5声音播放存在问题的解决办法
- 在ie中关于ajax请求获得数据缓存问题的解决办法
- 关于VS2010中配置cocos2d-x ,出现OpenGL version too old 问题的解决办法
- 关于HTML5 Placeholder新标签低版本浏览器下不兼容的问题分析及解决办法
- 关于c# 删除文件夹时SESSION丢失问题解决办法
- PB中关于动态工资项目问题的解决办法
- 关于VISTA遇到“Windows需要您的许可才能继续”的问题解决办法
- [转载]关于移动百宝箱应用打包问题的解决办法
- 关于控件注册和使用许可问题的解决办法
- 关于Norton升级造成系统崩溃问题的解决办法
- 关于FileUpload上传大文件的问题解决办法
- 关于网上邻居访问问题的解决办法
- 关于上次说的强类型dataset中事务问题的解决办法,也实用于一般的事务解决方案
- 关于使用Intel集成显示芯片桌面右键迟钝问题的解决办法
- VC中关于路径中含有空格问题的解决办法
- iTextSharp应用中关于“Cannot access a closed Stream”问题的解决办法(附带提供如何在页面中显示PDF的流)
- 关于网友说的gridview不能格式化字符串的问题的解决办法