赞 | 9 |
VIP | 0 |
好人卡 | 0 |
积分 | 42 |
经验 | 0 |
最后登录 | 2024-11-29 |
在线时间 | 509 小时 |
Lv3.寻梦者
- 梦石
- 0
- 星屑
- 4224
- 在线时间
- 509 小时
- 注册时间
- 2011-3-26
- 帖子
- 110
|
浏览器有304缓存的。访问一次后再次请求,服务器会让浏览器直接从玩家缓存文件中读取;如果服务器再对绝对不会修改的资源加上expires或者Cache-Control字段,浏览器后续连向服务器请求也不会做,直接读缓存,但是这样会导致这部分资源更新不及时。总之流量不会成为太大的问题。
读取非当前地图的信息,并且要求能读取“动态信息”,实际上这个信息并不真的动态,否则就要保存到存档里了。这样理解的话问题依然还在“如何降低大量访问地图有关数据的带宽压力”的范畴,压力不在服务器。如果只是meta的话,读取文件然后自己解析确实是比较浪费性能的方法(流量/带宽方面有缓存影响不大),但是想要获取到所有地图的这类消息,读取所有文件又是不得不做的,可以基于读取的结果自己构建缓存,这样只有第一次卡,后面就不卡了,其实也还好。觉得依然有点“亏”的话,还是得自己构建一个$dataMapsInfo这样的子表。基于前端工程化技术,使用模版工程的开发者其实不需要再去填写新的数据库,因为模版开发者可以使用webpack、vite等打包工具自己定义一个test/build的流程,其中包含将所有地图数据的该类信息提取整合为一个类似$dataMapsInfo文件的行为。而后游戏开始把该文件也作为数据库的一部分读取即可。注意为了保持单一的数据源,这么做以后$gameMap初始化时的meta数据也要从这里取。 |
|