- From: Joshua Bell <notifications@github.com>
- Date: Thu, 05 Jan 2017 19:35:56 -0800
- To: w3c/IndexedDB <IndexedDB@noreply.github.com>
- Cc: Subscribed <subscribed@noreply.github.com>
- Message-ID: <w3c/IndexedDB/pull/133/review/15437698@github.com>
inexorabletash commented on this pull request.
> +other tabs, you should use the "versionchange" event to close the connection to
+the database.
+
+<pre class=lang-javascript>
+db.onversionchange = function() {
+ // First, save any unsaved data:
+ saveUnsavedData().then(function() {
+ // Now you need to close the database.
+ // If the document isn't being actively used, it may be appropriate to reload:
+ if (!document.hasFocus()) {
+ location.reload();
+ // Reloading will close the database, and also reload with the new JavaScript
+ // and database definitions.
+ } else {
+ // Alternatively you may close the database and display a message to the
+ // user. You need to ensure this isn't a disruptive user experience.
But another might be:
```js
const open = indexedDB.open(name, version);
open.onerror = e => notify(`Something went wrong: ${e.message}`);
open.onblocked = e => notify('THIS SHOULD NEVER HAPPEN!');
open.onupgradeneeded = e => {
if (e.oldVersion === 0) { ... }
if (e.oldVersion === 1) { ... }
...
};
open.onsuccess = e => {
const db = open.result;
db.onversionchange = e => {
notify('Getting out of the way because another tab wants to upgrade.');
db.close();
};
};
```
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/w3c/IndexedDB/pull/133
Received on Friday, 6 January 2017 03:36:31 UTC