Giter VIP home page Giter VIP logo

Comments (6)

Quelklef avatar Quelklef commented on June 9, 2024 2

Actually, this doesn't seem to be a bug at all. According to MDN, onclose only fires on unexpected closes.

It sounds like your original use case is for upgrading a db when other connections are open. I believe what you want is onversionchange, which fires "when a database structure change [...] was requested elsewhere"

from fakeindexeddb.

Quelklef avatar Quelklef commented on June 9, 2024

Do you have code? I tried to reproduce and found that, though the close event handler isn't firing, db closing seems to work OK:

require('fake-indexeddb/auto');

indexedDB.deleteDatabase('mydb').onsuccess = event => {
  const openreq = indexedDB.open('mydb', 1);

  let db_connection;
  openreq.onupgradeneeded = event => {
    db_connection = event.target.result;
    db_connection.onclose = () => console.log('closed');
  };

  openreq.onsuccess = event => {
    db_connection.close();
    const reopenreq = indexedDB.open('mydb', 2);
    reopenreq.onupgradeneeded = () => console.log('modifying db');
    reopenreq.onsuccess = () => console.log('db re-opened');
  }
};

// 'closed' does not get logged, but 'modifying db' and then 'db re-opened' do

of course, the close handler should be firing, so that's still a bug. Also fails with addEventListener('close', ...).

from fakeindexeddb.

Eunovo avatar Eunovo commented on June 9, 2024

@Quelklef Thanks for your help, I've resolved my problem. The confusion came from the failure of the onclose event to fire. That's the only bug here. I'm closing this issue. You can create another one for the event bug.

from fakeindexeddb.

Quelklef avatar Quelklef commented on June 9, 2024

Great, will do!

from fakeindexeddb.

Eunovo avatar Eunovo commented on June 9, 2024

Thanks @Quelklef the reason my upgrade requests were blocked was because some of the open db instances didn't have the onversionchange handler. I initially thought the DB connections weren't closing since the onclose didn't fire but once I noticed the aforementioned discrepancy I was able to resolve the issue. That's why I said "I have resolved my problem"

from fakeindexeddb.

Quelklef avatar Quelklef commented on June 9, 2024

got it 👍 👌

from fakeindexeddb.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.