2013-10-01 123 views
1

我在製作HTML5遊戲。我使用indexedDB來存儲圖像(大約50mb)。它效果很好。但我想將我的遊戲添加到遊戲網站。遊戲網站用於遊戲iframe。這在Chrome中很有用。但Firefox有錯誤HTML5資源存儲

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

因爲window.mozIndexedDB在iframe中爲null。

我發現mozila網頁此信息:

需要注意的是IndexedDB的不適合的內容合作是非常重要的加載 到另一網站的框架(無論是<frame>或這是一個 安全保密措施,可以考慮類似的 阻斷第三方Cookie的。有關詳細信息,請參閱錯誤595307.

任何想法如何解決呢? PS的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(); 
        }; 
       }; 

回答

3

IndexedDB的不存儲圖像的最佳場所。查看將您的遊戲更改爲Web應用程序。您可以在清單中包含圖像和其他資源,瀏覽器將它們下載到本地PC。您的應用可以直接訪問它們,並且無需從數據庫中解壓縮它們。

更多信息here

+0

嗯,我把它看起來很棒。但我用ajax加載我的圖像。我不會將它們追加到dom中。你知道在這種情況下做什麼? – Yury

+0

我檢查北斗,我發現indexedDb以及清單緩存存儲數據在sqlite文件。所以它似乎沒有太大的差異 – Yury