dexie / Dexie.js

A Minimalistic Wrapper for IndexedDB
https://dexie.org
Apache License 2.0
11.68k stars 641 forks source link

After iOS 13.4 Update: no Promise returned from Table.each() after page reload. #1009

Open AlXKalm opened 4 years ago

AlXKalm commented 4 years ago

Hello!

This code work well on Windows, Android and iOS (13.3 and below):

return db.transaction('r', db.storeTable, () => {
    db.storeTable.each((item) => {
        console.log(item.name);
    });
});

But after iOS 13.4 update the line db.storeTable.each(...) don't read any data from storeTable and still running (don't return any Promise) if the site was reloaded of redirected.

Please help!

jakedolan commented 4 years ago

This might be related to changes that Webkit delivered in iOS 13.4 and Safari 13.1 (on macOS) related to storage. Note the section on IndexedDB and a "7-Day Cap on All Script-Writeable Storage". https://webkit.org/blog/10218/full-third-party-cookie-blocking-and-more/