移动端资源预加载,可以做到需要加载的时候,从本地磁盘加载到内存,当纹理不需要的时候,都是强制清理内存里的纹理占用:

     cc.TextureCache.getInstance().removeAllTextures();
cc.TextureCache.getInstance().dumpCachedTextureInfo();//test 打印仍然在使用的纹理
cc.TextureCache.purgeSharedTextureCache();
cc.SpriteFrameCache.getInstance().removeSpriteFrames();
cc.SpriteFrameCache.purgeSharedSpriteFrameCache();
cc.ShaderCache.purgeSharedShaderCache();
ccs.ArmatureDataManager.purge();

之后在本来就不充裕的移动设备内存中腾出空间来加载下一个界面要用到的纹理,于是基本上一个视图,就会在resource.js或者rescource.cpp中有一个数组与这个视图对应,数组里存放此视图所需的图片路径,需要显示此视图时,先预加载数组里的纹理;

但是到了html5 pc web端,纹理是存储在服务器的,加载一个纹理可不像移动端那样从磁盘读到内存中那么简单,如果要做到和移动端一样的内存精简,用不到的就都清理,那么预加载时就需要再次从服务端加载图片了,要再次做一遍cc.LoaderScene在第一次游戏运行时做过的事情,或者再从本地缓存中拿图?不知道目前cocos有没有做到把加载好的图片存储到pc本次磁盘中,一般的网页图片和swf应该都是可以的,以后等真遇到了类似项目再研究了...

我想如果是小型的html5游戏直接在最开始吧所有的全部加载完就行了,不要做removeAllTextures()之类的事情,如果用html5来开发类似于flash大型页游,那么就必须要有预加载网络文件的或者从本次缓存中拿图的功能了。

关于cocos2d-x 与 cocos2d-html5 资源预加载的思考的更多相关文章

  1. HTML5的页面资源预加载技术(Link prefetch)加速页面加载

    不管是浏览器的开发者还是普通web应用的开发者,他们都在做一个共同的努力:让Web浏览有更快的速度感觉.有很多已知的技术都可以让你的网站速度变得更快:使用CSS sprites,使用图片优化工具,使用 ...

  2. 使用HTML5的页面资源预加载(Link prefetch)功能加速你的页面加载速度

    不管是浏览器的开发者还是普通web应用的开发者,他们都在做一个共同的努力:让Web浏览有更快的速度感觉.有很多已知的技术都可以让你的网站速度变得更快:使用CSS sprites,使用图片优化工具,使用 ...

  3. 页面资源预加载(Link prefetch)功能加速你的页面加载速度

    有了浏览器缓存,为何还需要预加载? 用户可能是第一次访问网站,此时还无缓存 用户可能清空了缓存 缓存可能已经过期,资源将重新加载 用户访问的缓存文件可能不是最新的,需要重新加载 页面资源预加载/预读取 ...

  4. 资源预加载 Preload

    当提到前端性能优化时,我们首先会联想到文件的合并.压缩,文件缓存和开启服务器端的 gzip 压缩等,这使得页面加载更快,用户可以尽快使用我们的 Web 应用来达到他们的目标. 资源预加载 是另一个性能 ...

  5. web资源预加载-生产环境实践

    此文记录资源预加载在我们项目的实践,技术难度不算高,重在介绍一套技术方案的诞生与实施,其中都进行了哪些思考,依据什么来做决策,如何进行效果评估,等等.为读者在制定技术方案时提供一定启示. 背景 资源预 ...

  6. 资源预加载preload和资源预读取prefetch简明学习

    前面的话 基于VUE的前端小站改造成SSR服务器端渲染后,HTML文档会自动使用preload和prefetch来预加载所需资源,本文将详细介绍preload和prefetch的使用 资源优先级 在介 ...

  7. DNS、链接网页、资源预加载处理

    从网页性能的角度来看,DNS的解析时间是比较耗时的.因此如果能预先下载网页中用到的其它域的资源.可提前进行DNS解析: <link rel="dns-prefetch" hr ...

  8. preloadjs实现网页资源预加载

    <!doctype html> <html lang="zh"> <head> <title>PreloadJS的基础使用</ ...

  9. 图片,音频资源预加载和文档dom加载

    在项目中遇到一个问题,ajax请求音频资源,然后动态的插入到文档中,其中.原生的音频外观实在太丑了,而且每个浏览器的样式都不一样,采取了一个audio插件. 就遇到一个问题,请求后的直接调用插件的话, ...

随机推荐

  1. BZOJ3942 [Usaco2015 Feb]Censoring

    维护一个栈...如果栈顶出现了要被删除的字符串就全删掉就好了,判断的话...kmp就行了 /****************************************************** ...

  2. HDU 5773 The All-purpose Zero 求LIS

    求最长上升子序列长度: 单纯的dp时间复杂度是O(n*n)的 dp[i] = max(dp[j]+1); (0=<j<=i-1 && a[i]>a[j]) 用二分可以 ...

  3. 斐波那契博弈(Fibonacci Nim)

    问题: 有一堆个数为n(n>=2)的石子,游戏双方轮流取石子,规则如下: 1)先手不能在第一次把所有的石子取完,至少取1颗: 2)之后每次可以取的石子数至少为1,至多为对手刚取的石子数的2倍. ...

  4. 使用Matrix控制图像或组件变换的步骤

    1.获取Matrix对象,该Matrix对象既可新创建,也可直接获取其他对象内封装的Matrix(例如Transformation对象内部) 2.调用Matrix的方法进行平移.旋转.缩放.倾斜等. ...

  5. HTTPS是如何保证连接安全,你知道吗?

    HTTPS协议的工作原理是什么?”这是我在数天前工作项目中需要解决的问题. 作为一名Web开发者,我当然知道 HTTPS 协议是保障用户敏感数据的好办法,但并不知道这种协议的内在工作机制. 它怎么保护 ...

  6. Android窃取用户信息新思路

    0×01 我们能得到哪些android手机上的app敏感信息手机上的app敏感信息◦通讯录,通讯记录,短信◦各种app的帐号密码,输入信息资料等◦各种影音资料,照片资料◦等等0×02  我们有哪些方法 ...

  7. iOS App创建桌面快捷方式

    http://www.cocoachina.com/ios/20150827/13243.html 先mark,暂时用不到

  8. Hibernate中的多对多映射

    1.需求 项目与开发员工 一个项目,有多个开发人员 一个开发人员,参与多个项目 [多对多] 2.实体bean设计 Project: public class Project { private int ...

  9. auto_ptr的使用原则

    auto_ptr是c++标准库中的一种严格所有权型的智能指针,实现在backward/auto_ptr.h文件中 pro: 1.做临时变量时,不需要手动去释放资源 void f() { ClassA ...

  10. 开始接触BT5-自动登录X界面

    第一种,直接登录root用户的图形界面,不用输入密码 1,安装rungetty 1 # apt-get install rungetty 2,编辑/etc/init/tty1.conf root@bt ...