Cocos Creator—优化首页打开速度

Cocos Creator是一个优秀的游戏引擎开发工具,很多地方都针对H5游戏做了专门的优化,这是我比较喜欢Cocos Creator的一点原因。

其中一个优化点是首页的加载速度,开发组为了加快首页的渲染速度,减少白屏时间,把逻辑代码和首页加载代码做了彻底分离。首次页面加载的只是一个相当于加载器的初始化文件,文件体积特别小,不像某些引擎,一开始就需要加载主逻辑js文件,一开始就给我来个上百kb的文件加载,然后才能显示loading条,白屏时间当然会延长不少。

说到这里,不得不吐槽一下Cocos的开发文档,居然没有专门针对首页loading条做任何说明,害我研究了半天都不知道怎么定制自己的首页loading界面。这里如果有遇到不知道怎么定制首页loading界面的同学,可以看我另一篇的文章:《Cocos Creator—定制H5游戏首页loading界面》

话说回来,开发者虽然专门针对首页加载时间做了优化,但对于前端页面优化来说,还是不够彻底的,我们还有不少优化时间。首先,我们看一下用Cocos Creator构建发布后的mobile-web页面请求图:

[email protected]

在页面首次出现之前,需要发起4个请求,并且这4个请求都是小文件,其实是没有必要的,特别是在服务器端还有gzip压缩的情况,更理想的情况是一个请求就能完成所有的工作。

另外这4个文件都没有经过代码压缩,例如html文件:

cocos-creator-source.png

这里也有不少优化空间。

综上所述,我们有了压缩合并的方案,这里可以通过gulp实现。

有些同学会问:webpack更酷更流行为什么不用webpack?答:因为webpack本质上是模块化打包方案,我们这里只是简单对代码做一些构建处理,用gulp更轻量更合适。

gulp安装请访问:https://gulpjs.com/

nodejs安装请访问:http://nodejs.org/

另外需要安装gulp相关插件:gulp-file-inline gulp-htmlmin

思路如下:

  1. 通过gulp-file-inline把style-mobile.css,settings.js,main.js inline到html文件,减少请求
  2. 通过gulp-htmlmin把html文件压缩,减少空格,压缩代码量,减少文件体积

gulpfile文件代码:

var gulp = require(‘gulp‘);
var fileInline = require(‘gulp-file-inline‘);
var htmlmin = require(‘gulp-htmlmin‘);

gulp.task(‘htmlmin‘, function(cb) {
  gulp.src(‘./build/web-mobile/*.html‘)
  .pipe(fileInline())
  .pipe(htmlmin({
      collapseWhitespace:true,
      removeComments: true
  }))
  .pipe(gulp.dest(‘./build/web-mobile/‘)
  .on(‘end‘, cb));
});

在命令行里面执行gulp,大功告成!压缩后的请求如下图:

cocos-creator-min.png

大家可以看到,原来的4个请求只剩下build一个请求了,而且经过服务器的gizp压缩,还能缩小到2-3kb的大小,如果配合cdn策略,基本上能让你的H5游戏首页秒开。

完整代码可以访问:https://github.com/babyzone2004/cocosMd5,这个示例包含了Cocos Creator图片压缩优化,减少首次文件请求,html压缩,动态更新定制loading图等功能哦。

ps:

我们团队正在招聘优秀的H5游戏开发工程师,如果你符合以下条件:

  1. 白鹭引擎/Cocos2d-js/Layabox等H5相关的开发经验
  2. 希望快速成长,不甘平庸

请联系我吧:[email protected]

更多信息请戳:https://www.lagou.com/jobs/3083562.html?source=pl&i=pl-5

时间: 2024-08-06 13:07:51

Cocos Creator—优化首页打开速度的相关文章

Cocos Creator—定制H5游戏首页loading界面

Cocos Creator从1.0版本发布到现在也有一年多了,按理说一些常见的问题网上都有解决方案,例如"如何自定义首页加载进度条界面"这种普遍需求,应该所有人都会遇到的,因此也有完善的解决方案才对.我在网上搜了一些文章,虽然也有讨论的帖子,但是方案都不尽人意.因此只能再次自己动手丰衣足食了,在此我总结一下我的思路和策略,分享给大家,希望后来的人少走弯路,另外这里的方案只针对H5游戏发布,其他平台可以借鉴思路自己实现. 首页加载的loading界面,官网的文档并没有提及,我是通过构建发

进一步优化SPA的首屏打开速度(模块化与懒载入) by 嗡

前言 单页应用的优点在于一次载入全部页面资源,利用本地计算能力渲染页面.提高页面切换速度与用户体验.但缺点在于全部页面资源将被一次性下载完,此时封装出来的静态资源包体积较大,使得第一次打开SPA页面时候须要的载入时间较长. 在上一篇文章Angular2 单页应用一些优化总结 中提到的利用压缩.混淆.开启gzip传输后,我们成功将3.5兆的资源包压缩到350k.可是假设SPA应用的页面数进一步添加,100个甚至1000个页面的时候,还是无法避免巨大的首页资源包载入的问题. 所以350k的资源包是否

进一步优化SPA的首屏打开速度(模块化与懒加载) by 嗡

前言 单页应用的好处在于一次载入所有页面资源,利用本地计算能力渲染页面,提高页面切换速度与用户体验.但缺点在于所有页面资源将被一次性下载完,此时封装出来的静态资源包体积较大,使得第一次打开SPA页面时候需要的载入时间较长. 在上一篇文章Angular2 单页应用一些优化总结 中提到的利用压缩.混淆.开启gzip传输后,我们成功将3.5兆的资源包压缩到350k.但是如果SPA应用的页面数进一步增加,100个甚至1000个页面的时候,还是无法避免巨大的首页资源包加载的问题.所以350k的资源包是否还

Citrix XenDesktop Studio 7.x & StoreFront控制台打开速度慢终极优化

部署过CitrixXenDesktop的同学们都知道,Studio控制台与StoreFront控制台某些时候打开慢的那叫一个纠结啊,尤其是等待排除某些问题的时候,等待是很煎熬的,好了废话少说,下面我来给大家说一下Studio的优化,不是很快吧,起码比不优化能节省上很长时间. 这些优化设置建议在部署Citrix环境的时候做到模板中,这样就避免了出来后一台一台修改 优化步骤 1. IE设置 Citrix XenDesktop现在也开始走我大微软的路子,默认内部的很多通讯采用Powershell,WS

网站打开速度慢的原因,排查方法及优化方法

如果你的网站打开速度过慢,而你又不知道该如何解决,那么这篇文章是非看不可了.手把手的教你如何排查网站打开慢的原因,以及优化方法. 排查网站打开速度慢的原因: 1 网站服务器速度或租用空间所在服务器速度服务器空间速度是网站打开速度快的硬件基础,也是先决条件.否则即使你网站页面设计的非常"苗条",网站打开速度也会打折扣.解决办法:要找你的空间商解决或换空间商. 如何检测服务器速度快慢呢? 方法一: ping命令看连接到服务器的时间和丢包情况. 1>单击"开始"键并

优化Laravel网站打开速度

Laravel是一个功能强大的框架,组件很多,代码也很庞大,它的易用方便是牺牲了性能的,即便如此它仍然是一个优秀的框架,但在正式环境下要做好优化提升网站的打开速度. 1.关闭debug 打开.env文件,把debug设置为false. PHP APP_ENV=local APP_DEBUG=false APP_KEY=base64:sT/aTFeaE13eyao1Raee6jC9Ff+Yle1SE+wtyk0H6B4= 2.缓存路由和配置 php artisan route:cache php

优化webstorm打开项目速度

优化webstorm打开项目速度 wenstorm打开项目的时候非常蛋疼,开多个项目有时还会卡死,采用一下方法优化了一下,效果显著 以mac为例 1.在应用程序里找到webstorm,双击打开包内容 2.找到bin目录下的webstorm.vmoptions,使用记事本或者编译器打开 3.将内容替换如下: -Xms2048m -Xmx3000m -XX:ReservedCodeCacheSize=2048m -XX:+UseConcMarkSweepGC -XX:SoftRefLRUPolicy

提高网站打开速度的7大秘籍---依据Yslow工具的优化【转】

很多站长使用虚拟主机来做网站,网页内容一旦很多,网站打开速度就会特别慢,如果说服务器.带宽.CDN这类硬指标我们没有经济实力去做,不妨通过网页代码优化的方式来提高速度,卢松松总结了一些可行性的方法. 1: 缩小Javascript和CSS文件       如果你的网站大约有50-60%的用户是第一次访客,那么这些人会下载Javascript和CSS,如果这些文件很大浏览器会下载很长时间. 使用压缩工具可以减少Javascript和CSS尽一半的文件大小,如果你有信心使用“命令行”我强烈推荐使用雅

Cocos Creator—如何给资源打MD5版本号

Cocos Creator 是Cocos最新一代的游戏开发者工具,基于 Cocos2d-x,组件化,脚本化,数据驱动,跨平台发布.Cocos Creator的开发思路已经逐步跟Unity 3D靠拢,写起来也更方便快捷,开发效率更高. 但既然是新东西,免不了各种坑.其中在发布Web Mobile平台上,就有各种小问题,例如给资源加上md5版本号,Cocos Creator就不支持.从16年底开发组就说要支持MD5 Cache,等了大半年,新的1.6内测版本终于增加了MD5 Cache的功能,但效果