- From: Victor Costan <notifications@github.com>
- Date: Tue, 16 Oct 2018 17:55:51 -0700
- To: w3c/IndexedDB <IndexedDB@noreply.github.com>
- Cc: Subscribed <subscribed@noreply.github.com>
Received on Wednesday, 17 October 2018 00:56:14 UTC
The sample code in [Scenario 1: Populating a database](https://andreas-butler.github.io/idb-transaction-commit/EXPLAINER#scenario-1-populating-a-database) issues a transaction for each "chunk". The problem is that all the transactions are fired simultaneously.
I suspect you want something along the lines of
```js
for (const data_chunk of data_chunks) {
await new Promise(resolve, reject) {
...
txn.onsuccess = (event) => resolve();
txn.onerror = (event) => reject(event.target.error);
...
}
}
```
This fires transactions in sequence. While both variants are technically correct, the former is a bad pattern that causes memory bloat while the requests are queued up, waiting for the transactions to commit one by one.
nits:
* `indexedDB.open('myDatabase')`
* `db.transaction(['myStore'], ....)`
/cc @andreas-butler
--
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/issues/245
Received on Wednesday, 17 October 2018 00:56:14 UTC