HTML5 资源存储

HTML5 resource storage

本文关键字:存储 资源 HTML5      更新时间:2023-09-26

我正在制作HTML5游戏。我使用索引数据库来存储图像(大约50mb)。效果很好。但我想将我的游戏添加到游戏网站。游戏网站用于游戏 iframe。这在Chrome中效果很好。但是火狐有一个错误

TypeError: indexedDB is undefined
var request = indexedDB.open(dbName,BDversion);  

因为window.mozIndexedDB在iframe中为空。

我在mozila页面上找到了此信息:

请务必注意,IndexedDB 不适用于加载的内容 从另一个站点(<frame><iframe>)到框架中。这是一个 安全和隐私措施,可以认为类似于 阻止第三方饼干。 有关更多详细信息,请参阅 bug 595307。

知道如何解决吗?附言Web SQL数据库 - 似乎很快就会不受支持

我的代码:

 function RequestIm() {
                $.ajax({
                    type: "POST",
                    url: BattleNs.addUrl +"/Battle/GetPicture",
                    data: "{ '"id'": '"111'",'"PictureID'":" + "'"" + ID + "'"" + "}",
                    contentType: "application/json; charset=utf-8",
                    async: false,
                    success: function (Picture) {
                        returnpic = Picture;
                        // alert(UnitsInfoMass);
                        return returnpic;
                    }
                });
                Data = returnpic;
                var tempdata = { UniID: ID, Data: Data, DataVersion: DataVersion };
                var request = objectStore.put(tempdata);
                request.onsuccess = function (event) {
                    CountOfDBIterrations[Numer].ID = ID;
                    CountOfDBIterrations[Numer].Image.src = returnpic;
                    CountOfDBIterrations[Numer].Image.onload = function (e) {
                        CountOfDBIterrations[Numer].Loaded = true;
                         BattleNs.loadingCount++;
                          BattleNs.loadingCountChange();
                    };
                };

IndexedDB 不是存储图像的最佳位置。查看将游戏更改为 Web 应用。您可以在清单中包含图像和其他资产,浏览器会将它们下载到本地电脑。你的应用可以直接访问它们,无需从数据库中解压缩它们。

更多信息在这里