公司是做教育类游戏开发,以前是用flash制作,现在开始使用CreateJS框架开发Canvas游戏。今天突然收到一个任务:游戏在iPad2下面游戏会打不开,然后自动刷新,再加载不出来,然后再刷新,陷入了死循环……

发现问题:

屏幕左上角提示 “因出现错误 重新加载了网页”

解决问题:

通过度娘得知此问题是由越狱或内存引起的。排除越狱可能(因为没有越狱),剩下就是内存问题。打开Chrome更多工具里面的任务管理器(快捷键Shift+Esc)看到单页内存占用量一路飙升到800,000K左右,当时自己都吓了一跳。(Bug真是一个神奇的物种,想重现场景自己倒害羞不出来了,有机会把图补上)。

我们知道iPad2 的内存大小是512MB,为了确定是内存太小引起的问题,特意用同事的iPhone 5s(1G内存)测试,发现可以正常使用。于是开始着手减少页面内存占用问题。

由于游戏内资源文件太多,所以为保证游戏流畅对音频、图片进行预加载。首先从音频着手,将音频部分的预加载去掉(因为音频数量不多,而且声音短,随用随调产生不了太大影响),发现内存占用量立马下降至132MB左右,看来这一步是走对了;将页面的script标签移至body底部,避免<script>标签下载时阻塞页面解析过程,以减少首屏时间,提高用户体验;将常用的库文件使用CDN发布,当库文件第一次被加载时会被缓存起来,如果没有被清理或修改,浏览器会自动读取该文件而不是重新下载文件,减少了网络消耗。

在线Demo请移步 → http://121.42.8.151:2953/HBA003/index.html

修改后的内存占用量

转载于:https://www.cnblogs.com/cjlll/p/5584436.html

前端小游戏页面性能优化相关推荐

  1. 前端页面性能优化 - 字体加载优化

    相比于英文的字库来说,中文字库的体积非常之大,小则1M,动辄几十 M 的体积非常常见.所以在前端页面性能优化中,字体加载的优化就显得尤为重要.阅读了相关的知识和文章,在研究了市面上字体加载方案之后,我 ...

  2. 前端页面性能优化指标

    前端页面性能优化指标 一.有哪些指标 LCP(Largest Contentful Paint) FID( First Input Delay) CLS(Cumulative Layout Shift ...

  3. 前端页面性能优化(完整归纳版)

    前端页面性能优化 当优化前端页面性能时,可以从多个方面入手.以下是一些常见的优化技巧,使用 Markdown 格式展示: 1. 优化资源加载 压缩和合并文件:减少请求次数,通过压缩和合并 CSS.Ja ...

  4. 前端页面性能优化的几种方式

    前端页面性能优化的几种方式 提升页面性能优化的常见方式: 资源压缩合并,减少http请求 非核心代码异步加载 --> 异步加载的方式 --> 异步加载的区别 利用浏览器缓存 --> ...

  5. web前端开发,如何提高页面性能优化?

    web前端开发,如何提高页面性能优化? 内容方面 减少HTTP请求次数 减少DOM操作 减少DNS查询 使用Ajax 可缓存 css方面 把css样式HTML代码页的上端 从页面中分离css代码,从外 ...

  6. web前端页面性能优化SEO优化

    首先什么叫网站? 网站一般分为前端和后台.我们可以理解成后台是用来实现网站的功能的,比如:实现用户注册,用户能够为文章发表评论等等.而前端应该是属于功能的表现.并且影响用户访问体验的绝大部分来自前端页 ...

  7. 移动端页面性能优化方案

    移动端页面性能优化方案 加载优化 使用首屏加载 按需加载 预加载 压缩图片 减少Cookie 异步加载第三方资源 脚本执行优化 CSS优化 JavaScript执行优化 渲染优化 SEO(搜索引擎优化 ...

  8. 浅谈移动端页面性能优化方案

    众所周知,在互联网行业里,移动端占有的比例越来越高了,尤其实在电商领域,用户购物大部分在移动端.比如淘宝双11,在移动端支付的接近7成.这就要求我们产品质量越来越高,那对于我们前端工程师来说也是一个挑 ...

  9. 雅虎网站页面性能优化的34条黄金守则(转)

    2019独角兽企业重金招聘Python工程师标准>>> 雅虎团队经验:网站页面性能优化的34条黄金守则 1.尽量减少HTTP请求次数       终端用户响应的时间中,有80%用于下 ...

最新文章

  1. linux修正系统错误指令fsck和badblocks
  2. 循环神经网络教程3-BP算法和梯度消失问题, Part 3 – Backpropagation Through Time and Vanishing Gradients
  3. 现代浏览器的工作原理
  4. Linux命令之文件相关
  5. 微信你scope 参数错误 php,微信开发: scope参数错误或没有scope权限解决方法
  6. 英语语音中的调核例子_英语歌曲在英语教学中扮演的重要角色
  7. Linux本地网络软件仓库搭建
  8. 计算机网络知识点1——概述
  9. android源码分析!程序员怎样优雅度过35岁中年危机?送大厂面经一份!
  10. ps图层高级扩展知识
  11. 医疗行业做好百度竞价的五大技巧
  12. PHP输出JSON格式数据
  13. LightOJ 1224 DNA Prefix(字典树)
  14. JS如何终止forEach循环
  15. 【编码实战】2022年还在用jjwt操作jwt?,推荐你使用nimbus-jose-jwt,爽到飞起~
  16. 积跬步,聚小流------ps实用小技巧,改变png图标颜色
  17. Linux集群软件LifeKeeper简介
  18. 《乔布斯传》英文原著重点词汇笔记(九)【 chapter seven】
  19. 上海创蓝253董事长_宝剑锋从磨砺出,创蓝253召开第四季度誓师大会
  20. 【教程】Marvell 88W8686 WiFi模块驱动程序的编写(一)

热门文章

  1. 191119_01 网站集成QQ第三方登录
  2. 《Java Testing with Spock》_4写单元测试
  3. react下绘制word申请表
  4. 让五个数都不相等的程序c语言,C语言程序设计课件第05讲.ppt
  5. 华硕服务器主板z8na维修,华硕服务器主板Z8NA-D6提升企业绩效
  6. Vue 滚动事件穿透解决方案
  7. sap销售发货的流程_外向交货发起的销售流程
  8. 分享一个免费开源的视频剪辑软件(Shotcut)-附带安装教程以及中文设置
  9. java实现 一维装箱问题_装箱问题(Bin packing problem)
  10. 杀linux进程的几种命令详解