2015-01-24 5 views
0

Привет, в настоящее время я использую LocalStorage в своем Sencha Touch + Phonegap в своем приложении и загружен более 4000+ записей из WCF Rest. В режиме разработки у меня нет проблем с запуском в Google Chrome, но когда я упаковал его и установил в устройство iOS8, мое приложение аварийно завершает работу.База данных для приложения Sencha Touch + Phonegap

Ниже общая LocalStorage длина в консоли:

>JSON.stringify(localStorage).length 
> 2917665 

Модель:

Ext.define("QualityAudit.model.DefectMatrix", { 
    extend: "Ext.data.Model", 
    config: { 
     identifier: { type: 'uuid', isUnique: true }, 
     fields: [ 
       { name: "DefectMatrixID", type: "integer" }, 
       { name: "CustomerID", type: "integer" }, 
       { name: "CustomerName", type: "string" }, 
       { name: "DefectType", type: "integer" }, 
       { name: "DefectTypeName", type: "string" }, 
       { name: "Reference", type: "string" }, 
       { name: "Section", type: "string" }, 
       { name: "DefectDescription", type: "string" }, 
       { name: "SeverityID", type: "integer" }, 
       { name: "SeverityName", type: "string" }, 
       { name: "IsActive", type: "bool" }, 
       { name: "CreatedBy", type: "string" }, 
       { name: "CreatedDate", type: 'date', dateFormat: 'MS' } 
     ] 
    } 
}); 

Магазин:

defectSync: function (counter, totRecords, callback) { 
    var me = this; 
    if (counter == undefined) 
     counter = 0; 


    //load defect matrix local local storage 

    var defectsLocalStore = Ext.getStore('DefectMatrix'); 
    defectsLocalStore.load(); 

     var defectssurl = window.REST_DMGetListAllPaging + counter; 
     QualityAudit.util.Proxy.doAjaxCall(defectssurl, '', 
     function (response) { 

      var data = Ext.JSON.decode(response.responseText); //encode Json List 


      defectsLocalStore.load({ 
       callback: function (records, operation, success) { 
        Ext.Array.each(data, function (record) { 
         counter++; 
         record.dirty = true; 
         defectsLocalStore.add(record); 
         defectsLocalStore.sync(); 
        }); 

        console.log('DECFECT DATA AFTER SYNC: ' + defectsLocalStore.getData().length); 

        //Check if all records loaded on local storage is equail to total defect rows then complete 
        if (defectsLocalStore.getData().length >= totRecords) { 
         console.log('defect loading successfull'); 
         callback(); 
        } else { 
         //Trigger again until condition is met 
         me.defectSync(counter, totRecords, callback); 
        } 

       }, 
       scope: this 
      }); 


     }, 
     function (response) { 
      defectsLocalStore.load(); 
      callback(0); 
     }); 

} 

ли кто-нибудь пробовал использовать WebSQL или SQLlite в ваш проекты? Я не могу найти хороший образец этого.

Любая помощь и предложения действительно оценены.

ответ

1

Я использую SQLite почти в каждом из моих проектов. ИМХО лучший плагин Cordova/PhoneGap SQLitePlugin.

Вы найдете несколько примеров на странице, как использовать плагин и как использовать SQLite в кордове.

+0

Hi @Joerg Вы все еще используете sencha store, если вы уже используете sqlite? – BizApps

+0

Нет, извините. Я не использую магазин sencha. – Joerg

+0

Можете ли вы дать какой-либо пример кода при заполнении списка сенсорного списка Sencha? Спасибо – BizApps

0

Вы можете использовать магазин с прокси: 'sql', он создаст локальную базу данных с помощью WebSQL. sql proxy Doc

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