微信小游戏 50M那部分的缓存机制的使用
一、使用 AssetsManager 灵活定制微信小游戏的缓存策略
官网教程:http://developer.egret.com/cn/github/egret-docs/Engine2D/minigame/usingcache/index.html
这个缓存策略是干啥的?
假如一个游戏30M。微信小游戏4M游戏包,还有26M每次游戏都会去服务器下载,不会缓存。为此,微信提供了50M本地缓存,这26M可以缓存起来,不需要每次加载。
二、实际操作一遍
1. 增加ResSplitPlugin插件
config.wxgame.ts里增加插件

注意要import,不然会报错

2.发布试试
执行 egret publish --target wxgame 发布

原来游戏资源发布到RK_Main_wagame,现在被发布到了RK_Main_wxgame_remote文件夹

RK_Main_wxgame_remote文件夹里有了资源文件,而RK_Main_wxgame的资源都是空的了。

3. 远程加载资源试试
本地缓存必须小游戏支持库要1.1.0以上,在微信开发者工具输入egret.wxgame可以查看版本
你的小游戏项目里有file-util.js、image.js、text.js时,说明已经支持了。

我们将远程资源放到服务器上,并修改加载资源的路径。(我自己的服务器是www.biliking.com)

修改完成,运行一次。哦,服务器需要在后台配置。这里微信开发者工具右上角详情->勾选不校验合法域名


正式发布需要一个https的服务器,在微信公众平台登录后设置。

本地搭建个服务器。安装个iis7。在控制面板-管理工具-iis7

浏览默认页面所在的文件夹

找到了iis7默认的网站目录是C:\inetpub\wwwroot
那么我们将资源文件放到这个文件夹下,并重新修改资源加载路径

四、来看看Egret的本地缓存怎么实现的
本地缓存主要是library下的file-util.js、image.js和text.js

查看file-util.js。这个文件主要利用微信提供的FileSystemManager API接口,对文件进行操作。

查看 image.js。这个主要是图片的加载器。而text.js则是文本的加载器。

五、当服务器有更新时,需要删除本地缓存

可以调用image.js和text.js中的fileutil.fs.remove方法

也可以updateManager删除所有微信小游戏缓存
但是这些方法貌似都是100个文件,更新了1个,那么也会删除100,重新下载100个。并没有对比资源进行热更新。
Egret默认会所有远程资源进行本地缓存(50M以内),超过的需要修改image.js或text.js,判断url,来进行是否缓存的选择。

嘛,一般不会超过50M的...
总结:
一、如何进行本地缓存?
Egret默认对50M以内资源进行了本地缓存。貌似我们不需要操作。
我们只需要发布的时候,将不在4M以内的资源放在远程服务器加载就行了。
二、远程服务器资源有更新时,怎么实现更新?
当小游戏有更新时,可以调用wx.getUpdateManager()检查版本并进行更新。远程服务器的资源修改了,就在后台升一个版本,检查到有更新后,删除本地缓存。
微信小游戏 50M那部分的缓存机制的使用的更多相关文章
- 微信小游戏 RES版本控制+缓存策略 (resplugin和ResSplitPlugin插件使用)
参考: RES版本控制 使用 AssetsManager 灵活定制微信小游戏的缓存策略 一.我们的目标 目标就是让玩家快速进入游戏,然后根据游戏的进度加载相应的资源,并可对资源进行版本控制.本地缓存. ...
- 微信小游戏的本地缓存和清除的使用 (text.js image.js file-util.js)
参考: 微信小游戏,文件系统 UpdateManager-小游戏 一.Egret提供的本地缓存工具类( 备注:新版本进行了修改,并增加了sound.js等) 在微信小游戏项目中,Egret提供了fil ...
- 【微信小游戏】文件系统,远程加载资源打破4M限制
一.前提 微信小游戏,对游戏包体的大小有严格是限制,上传文件大小<4M,但是本地缓存文件有50M空间,也就是说我们可以将一些资源放到网上,然后缓存到本地. 二.官方概念 文件系统 文件系统是小程 ...
- phaser3 微信小游戏入门
phaser与eget, laya, pixi.js本质上没什么区别. 都是渲染引擎. 其它的都是配角. phaser的特点是.代码容易理解 功能比较全面. 个人比较喜欢phaser的地方 twe ...
- 微信小游戏 4M升8M分包加载
一.微信分包加载 微信分包加载教程 嘛,因为原来的4M太小了,满足不了小游戏内容的需求,现在提升到了8M.这8M可以分包加载,而不需要一次性加载8M. 如果是老版本,则分包加载不起作用,会一次加载8M ...
- Egret5.2.2 微信小游戏行的示例排行榜
Egret5.2.2版本发布微信小游戏后,在开放数据域有一个默认排行榜.这个文件夹代码+图大小就22kb. 排行榜的效果就是示范用的,很丑...带翻页. 代码如下,基本就是使用canvas渲染了一个排 ...
- 微信小游戏egret开发包括p2引擎小结
用egret + p2 做一个类似投球的小游戏,坑大致如下: 1.p2引擎与egret坐标不同注意转换,横坐标没什么,纵坐标egret.y = stageHeight - body.position[ ...
- 没玩过这些微信小游戏你就out了
你确定没玩过下面这些微信小游戏?是不是有点out了?赶紧添加微信号kangfuyk,回复H5马上畅玩! 当然了,扫一下二维码关注后回复H5更快捷噢! 微信小游戏列表,持续更新中 辨色大比拼!心理游戏 ...
- 【转】微信小游戏接入Fundebug监控
在SegmentFault上看到Fundebug上线小游戏监控,刚好最近开始玩微信小游戏,于是尝试接入试了一下. 接入方法 创建项目的时候选择左下角的微信小游戏图标. 点击继续进入接入插件页面. 第三 ...
随机推荐
- js 1+'2' == '1'+'2'
前言 非常深入地讲解了包含隐式转换时js计算过程,全篇干货.本文由@keenjaan授权分享. 本文由@仙人掌推荐分享 正文从这里开始 你有没有在面试中遇到特别奇葩的js隐形转换的面试题,第一反应是怎 ...
- js(数组篇02)
原文:http://www.cnblogs.com/zaking/p/8686676.html 上一篇文章简单的介绍了一下js的类型,以及数组的增删方法.这一篇文章,我们一起来看看数组还有哪些用法,以 ...
- 在lua环境中使用protobuf
最近在cocos2dx的项目中,需要在LUA脚本层使用protobuf协议.官方已经推出了很多种语言的版本.但唯独LUA版本不全.于是开始研究protobuf在LUA下的实现,将完整的过程记录了下来, ...
- Blender 移动、旋转、缩放
1.手动调整物体的属性 当我们添加了一个物体后,例如一个Torus物体. 在左侧下角部分能看到“Add Torus”面板,面板包含了Locatin.Rotation.Major Segments.Mi ...
- windows下caffe安装配置、matlab接口
一.CommonSettings.props caffe下载后解压.源代码文件夹caffe-master,到该文件夹下的windows文件夹下,将CommonSettings.props.exampl ...
- Python游戏《外星人入侵》来了~
在游戏<外星人入侵>中,玩家控制着一艘最初出现在屏幕底部中央的飞船.玩家可以使用箭头键左右移动飞船,还可使用空格键进行射击.游戏开始时,一群外星人出现在天空中,他们在屏幕中向下移动.玩家的 ...
- 标准代码页(codepage)列表
https://blog.csdn.net/jianggujin/article/details/80325461 这篇文章有待完善 代码页 简称 全称 37 IBM037 IBM EBCDIC (U ...
- Java查看内部类信息
Java中支持在类的内部定义类,这种类成为内部类.内部类有些像Java中的方法,可以使用访问权限限定符修饰,可以使用static修饰等.编写程序,利用Java的反射机制来查看内部类的信息. 思路分析: ...
- hdu5289 2015多校联合第一场1002 Assignment
题意:给出一个数列.问当中存在多少连续子区间,当中子区间的(最大值-最小值)<k 思路:设dp[i]为从区间1到i满足题意条件的解.终于解即为dp[n]. 此外 如果对于arr[i] 往左遍历 ...
- SpringMVC由浅入深day02_7上传图片
7 上传图片 7.1 需求 在修改商品页面,添加上传商品图片功能. 7.2 springmvc中对多部件类型解析 在页面form中提交enctype="multipart/form-data ...