由于浏览器缓存问题。在服务器上更新了新的图片等资源以后,客户端并不会下载最新的。

关于浏览器缓存机制,可自行百度。

 

Egret中资源更新解决方案有以下:

一 资源名后增加版本号

二 重写Egret引擎加载

 

一 资源名后增加版本号

在default.res.json资源配置文件中,在路径后加上"ver=1.0",下次修改后,将版本号向上增加"ver=1.1"。

这样每次浏览器都会下载跟新后的资源。

优点:

1 可以根据更新需求,控制到只更新某一张图片,或更新所有资源。

缺点:

1 需要知道哪个资源被更新了,然后手动去修改版本号,非常的麻烦。

 

 二 重写Egret引擎加载

 在加载资源之前,重写getVirtualUrl方法。

RES.web.Html5VersionController.prototype.getVirtualUrl = function(url) {
   url += "?v=" + window["version"];
   return url;
}

 

window["version"]在index.html中定义。每次更新后直接修改这个版本号就可以了。

var version = "1.0";

 

这样Egret每次加载时,会自动在url后拼接版本号

"http://192.168.0.101:3001/resource/default.thm.json?v=1.0".
"http://192.168.0.101:3001/resource/config/description.json?v=1.0".

 

优点:

1 每次更新可以非常方便的修改版本号,保证版本更新后,下载的是新的。

缺点:

1 每次修改版本号,所有的资源都会重新下载。无论修改或没修改过的。

 

 

 

 

posted on 2016-11-20 15:38  gamedaybyday  阅读(4744)  评论(5编辑  收藏  举报