看看有人要创建一个基于WebGL的大型应用程序。让我们说这是一款3D微型管理游戏,它本身需要大约700兆字节的文件来运行它。
如何处理资产的加载。我原以为它必须异步完成,但我不确定它究竟会起作用。
P.S。我认为RollerCoaster Tycoon就是一个例子,但实际上它是关于从服务器到浏览器加载大型资产。
答案 0 :(得分:2)
首先,您不希望用户下载700兆字节的数据,至少不能一次下载 应尽量保留尽可能多的资源(几何,纹理)程序。
需要下载的所有数据都应使用多个web workers以渐进式/按需方式加载 因为人们可能仍然需要使用javascript来处理数据,当拥有许多资源时,javascript可能会变得很重。
将数据打包到更大的包中也是可取的,以防止请求开销。
当然,一旦用户点击网站,就会抓住所有资源并尝试预加载数据。使用图像纹理和/或文本内容时,将其嵌入到html中(使用<img>
和<script>
标记)可以在某种程度上利用浏览器缓存。
使用WebSQL / IndexedDB / LocalStorage可以完成,但是由于目前配额非常低,而且quota management api的现实非常低/不存在,现在它不是一个可行的解决方案。