2013-10-01 2 views
1

Я делаю игру HTML5. Я использую indexedDB для хранения изображений (около 50 Мб). Он отлично работает. Но я хочу добавить свою игру на игровой сайт. Игровой сайт использует для игр iframe. Это отлично работает в Chrome. Но светлячок есть ошибкаХранение ресурсов HTML5

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

Поскольку window.mozIndexedDB является недействительным в в IFRAME.

Я нашел эту информацию на Mozila страницах:.

Важно отметить, что IndexedDB не работает для содержания загруженного в кадр с другого сайта (либо <frame> или Это безопасности и приватность мера и можно считать аналогом блокирование третьих лиц печеньем. для получения более подробной информации см ошибка 595307.

Любая идея, как решить эту проблему? PS Web SQL Database - кажется, не будет поддерживаться в ближайшее время

МОЕГО код:

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 это не самое лучшее место для хранения изображений. Посмотрите, как изменить игру на веб-приложение. Вы можете включить изображения и другие активы в манифест, и браузер загрузит их на локальный ПК. Ваше приложение может получить к ним доступ напрямую, и нет необходимости распаковывать их из БД.

Подробнее here

+0

Хм, я это выглядит здорово. Но я загружаю свои изображения с помощью ajax. И я не добавляю их в дом. Знаете ли вы, что делать в этом случае? – Yury

+0

Я проверил dipper, я обнаружил, что indexedDb, а также данные хранилища-хранилища в sqlite-файлах. Так что кажется, что это не большая разница – Yury

Смежные вопросы