簡體   English   中英

IndexedDBShim polyfill版本不匹配

[英]IndexedDBShim polyfill version mismatch

我在這里使用polyfill indexedDBShim,但出現錯誤,也不知道如何調試或解決問題。

我的錯誤:

unable to open database, version mismatch, '1' does not match the currentVersion of '1.0'

在與indexedDB兼容的瀏覽器上運行良好,但是例如當我在Safari上嘗試時,出現此錯誤。

我只是這樣做:

var request = indexedDB.open( 'products', 1 );
request.onupgradeneeded = function( e ) {
    console.log('Upgrading...');
    var thisDB = e.target.result;

    if ( !thisDB.objectStoreNames.contains( "devices" ) ) {
        thisDB.createObjectStore( "devices", { keyPath: "title" } );
        thisDB.createIndex( "title", "title", { unique: true } );
    }
};

request.onsuccess = function( e ) {
    console.log('Success!');
    that.db = e.target.result;
    //that.saveProducts( data );
};

request.onerror = function( e ) {
    console.log('Error!');
    console.dir( e );
};

有人可以幫我嗎?

此墊片最終會導致一些不好的事情,讓我告訴您! (我們對此有很多疑問。)

首先,版本不應為字符串或浮點數。 每個規格它們應為大於零的整數。 所以這是不對的。

從我的破折號 文檔上:

Version號是大於零的正整數。 程序員可以通過打開現有數據庫名稱(其版本號大於數據庫包含的版本號)來手動或隱式設置數據庫的版本。 雖然數據庫名稱永遠不會更改,但數據庫版本始終會更改。

指定一個比當前版本大的版本,我們可以輸入一個“版本更改”事務來啟用數據庫模式更改。 如果未指定任何版本,則數據庫將使用最新的數據庫版本打開。

數據庫版本號在IDB的基礎C編程語言實現中存儲為8字節“ int long long” ,並且可以在118446744073709551615之間的任何位置進行18446744073709551615

這是我使用常規IDB進行調試/解決的方法:打開沒有版本的數據庫。 這應該使用最新版本打開連接,並且響應對象將為您提供當前版本。 比較兩者以查找您的應用程序錯誤。

值得注意的是,數據庫打開請求應提供幾個屬性,以幫助您在進行版本versionchange時保持干凈且一致的應用程序狀態: event.newVersionevent.oldVersion

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM