IndexedDB: Difference between revisions

Content deleted Content added
Add a list for previous editors from v2.0, add Web SQL Database for related standards
Removing notice of move discussion
 
(24 intermediate revisions by 21 users not shown)
Line 1:
{{Short description|JavaScript application programming interface}}
{{Infobox technology standard
| title = IndexedDB
Line 12 ⟶ 13:
| version_date = 11 March 2021<ref name="standard">{{Cite web|url=https://www.w3.org/TR/IndexedDB/|title=Indexed Database API 3.0|editor-first=Ali|editor-last=Alabbas|editor-first2=Joshua|editor-last2=Bell|author=Web Applications Working Group|publisher=Web Applications Working Group|website=W3C|version=W3C First Public Working Draft|date=2021-03-11|access-date=2021-05-15}}</ref>
| preview = Editor's Draft
| preview_date = 11 March 2021<ref name="standard-draft">{{Cite web|url=https://w3c.github.io/IndexedDB/|title=Indexed Database API 3.0|editor-first=Ali|editor-last=Alabbas|editor-first2=Joshua|editor-last2=Bell|author=Web Applications Working Group|publisher=Web Applications Working Group|website=W3C|version=Editor’sEditor's Draft|date=2021-03-11|access-date=2021-05-15}}</ref>
| organization = {{Plainlist|
* {{abbr|[[World Wide Web Consortium|W3C]]|World Wide Web Consortium}}
Line 18 ⟶ 19:
* [[Microsoft]]
* [[Mozilla]]<ref name="standard-v2" />
* [[Oracle Corporation|Oracle]]<ref name="standard-2015">{{Cite web|url=https://www.w3.org/TR/2015/REC-IndexedDB-20150108/#h-acknowledgements|title=Indexed Database API|date=2015-01-08|access-date=2022-04-21}}</ref>
}}
| committee = Web Applications Working Group
Line 32 ⟶ 34:
}}
| authors =
| base_standards = [[JSON]]{{Plainlist|
* [[Document Object Model|HTML DOM]]
| related_standards = [[Web SQL Database]]
* [[HTML5 File API|File API]]
* Infra Standard
* [[JSON]]
* Storage Standard
}}
| related_standards = [[Web SQL Database]]{{Plainlist|
* [[HTTP cookie]]
* [[Web SQL Database]]
}}
| abbreviation = IndexedDB
| ___domain = [[NoSQL]] [[database]]s
Line 40 ⟶ 51:
}}
 
The '''Indexed Database API''' (commonly referred to as '''IndexedDB''') is a [[JavaScript]] [[application programming interface]] (API) provided by [[web browser]]s for managing a [[NoSQL]] [[database]] of [[JSON]] objects. It is a standard maintained by the [[World Wide Web Consortium]] (W3C).<ref name="standard" />
 
As an alternative to the [[Web storage]] standard, IndexedDB can provide more storage capacity. Web storage has [[Web_storageWeb storage#Storage_sizeStorage size|fixed limits]] per [[website]], but IndexedDB limits are "usually quite large, if they exist at all".<ref>{{cite web |title=Working with IndexedDB |url=https://developers.google.com/web/ilt/pwa/working-with-indexeddb |publisher=Google Inc. |access-date=19 January 2019}}</ref>
 
[[Use case]]s for IndexedDB include caching [[web application]] data for [[offline]] availability.<ref>{{cite web |title=Using IndexedDB |url=https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API/Using_IndexedDB |website=MDN |publisher=Mozilla |access-date=19 January 2019}}</ref> Some browser modules, such as [[Web development tools|devtools]] or [[browser extension|extensions]], may also use it for storage.
 
==History==
Support for IndexedDB was added to [[Firefox]] version 4,<ref>{{cite web |url=https://developer.mozilla.org/en/IndexedDB |title=IndexedDB - MDC Doc Center |publisher=Developer.mozilla.org |access-date=2011-02-18 |archive-date=2012-05-26 |archive-url=https://web.archive.org/web/20120526230025/https://developer.mozilla.org/en/IndexedDB |url-status=dead }}</ref> [[Google Chrome]] version 11,<ref>{{cite web|url=https://chromestatus.com/feature/6507459568992256|title=IndexedDB - Chrome Platform Status|website=IndexedDB - Chrome Platform Status|publisher=The Chromium Projects |date=2012-05-21 |access-date=2021-05-15}}</ref> [[Internet Explorer]] version 10,<ref>{{citation |url=http://msdn.microsoft.com/en-us/library/ie/hh673548(v=vs.85).aspx |title=IndexedDB |publisher=MSDN |date=2012-03-14 |access-date=2012-05-24}}</ref> [[Safari (web browser)|Safari]] version 8,<ref>{{cite web|url=https://developer.apple.com/library/content/releasenotes/MacOSX/WhatsNewInOSX/Articles/MacOSX10_10.html#//apple_ref/doc/uid/TP40014484-SW1|title=OS X Yosemite v10.10 {{section-sign}}§ App Features|publisher=Apple|website=Apple Developers|date=2017-07-09|access-date=2021-05-15}}</ref> and [[Microsoft Edge]] version 12.<ref name="caniuse-indexeddb">{{Cite web|url=https://caniuse.com/indexeddb|title=IndexedDB|website=Can I use...|date=n.d.|access-date=2021-05-16}}</ref>
 
[[Web SQL Database]] was a prior API developed by [[Apple Inc.|Apple]].<ref>{{cite web|last=Shankland|first=Stephen|url=https://www.cnet.com/news/consensus-emerges-for-key-web-app-standard/|title=Consensus emerges for key Web app standard &#124; Deep Tech - CNET News |publisher=News.cnet.com |date=2010-03-12 |access-date=2011-02-18}}</ref> But Firefox refused to add support for it and argued against it becoming a standard because it would codify the quirks of [[SQLite]].<ref>{{cite web|url=https://robert.ocallahan.org/2010/06/not-implementing-features-is-hard_03.html|archive-url=https://web.archive.org/web/20201109032423/http://robert.ocallahan.org/2010/06/not-implementing-features-is-hard_03.html|title=Well, I'm Back: Not Implementing Features Is Hard|author-first=Robert|author-last=O'Callahan|publisher=Weblogs.mozillazine.org|date=2010-06-04|access-date=2011-02-18|archive-date=20212020-0111-2609}}</ref><ref>{{Cite web|url=https://hacks.mozilla.org/2010/06/beyond-html5-database-apis-and-the-road-to-indexeddb|title=Beyond HTML5: Database APIs and the Road to IndexedDB – Mozilla Hacks - the Web developer blog|website=Mozilla Hacks – the Web developer blog|author-first=Arun|author-last=Ranganathan|date=2010-06-01|access-date=2021-05-21}}</ref> It was thus [[deprecation|deprecated]] in favor of IndexedDB.<ref>{{Cite web|url=https://softwareengineering.stackexchange.com/questions/220254/why-is-web-sql-database-deprecated|title=html5 - Why is Web SQL database deprecated?|website=Software Engineering Stack Exchange}}</ref>
 
''IndexedDB 1.0'' became a [[World Wide Web Consortium#W3C recommendation (REC)|W3C Recommendation]] on January 8th8, 2015.<ref name="standard-v1">{{Cite web|url=https://www.w3.org/TR/2015/REC-IndexedDB-20150108/|title=Indexed Database API|date=2015-01-08|access-date=2021-05-16|publisher=Web Applications Working Group|author=Web Applications Working Group|website=W3C|version=W3C Recommendation
=== IndexedDB 1.0 ===
''IndexedDB 1.0'' became a [[World Wide Web Consortium#W3C recommendation (REC)|W3C Recommendation]] on January 8th, 2015.<ref name="standard-v1">{{Cite web|url=https://www.w3.org/TR/2015/REC-IndexedDB-20150108/|title=Indexed Database API|date=2015-01-08|access-date=2021-05-16|publisher=Web Applications Working Group|author=Web Applications Working Group|website=W3C|version=W3C Recommendation
|editor-first1=Nikunj|editor-last1=Mehta
|editor-first2=Jonas|editor-last2=Sicking
Line 59 ⟶ 69:
|editor-first5=Jeremy|editor-last5=Orlow
|editor-first6=Joshua|editor-last6=Bell
}}</ref> ''IndexedDB 2.0'' became a W3C Recommendation on January 30th30, 2018.<ref name="w3c-blog-indexeddb-2.0">{{Cite web|url=https://www.w3.org/blog/news/archives/6795|title=Indexed Database API 2.0 is now a W3C Recommendation {{!}} W3C News|website=W3C News|author=W3C|date=2018-01-30|access-date=2021-05-16}}</ref><ref name="standard-v2">{{Cite web|url=https://www.w3.org/TR/IndexedDB-2/|title=Indexed Database API 2.0|date=2018-01-30|access-date=2021-05-16|publisher=Web Applications Working Group|author=Web Applications Working Group|website=W3C|version=W3C Recommendation
}}</ref>
 
=== IndexedDB 2.0 ===
''IndexedDB 2.0'' became a W3C Recommendation on January 30th, 2018.<ref name="w3c-blog-indexeddb-2.0">{{Cite web|url=https://www.w3.org/blog/news/archives/6795|title=Indexed Database API 2.0 is now a W3C Recommendation {{!}} W3C News|website=W3C News|author=W3C|date=2018-01-30|access-date=2021-05-16}}</ref><ref name="standard-v2">{{Cite web|url=https://www.w3.org/TR/IndexedDB-2/|title=Indexed Database API 2.0|date=2018-01-30|access-date=2021-05-16|publisher=Web Applications Working Group|author=Web Applications Working Group|website=W3C|version=W3C Recommendation
|editor-first=Ali|editor-last=Alabbas
|editor-first2=Joshua|editor-last2=Bell
}}</ref> ''IndexedDB 3.0'' was released as a [[World Wide Web Consortium#Working draft (WD)|First Public Working Draft]] on 11 March 2021 and remains as a Working Draft {{As of|2024|12|3|lc=y}}.<ref>{{Cite web |date=2024-11-07 |title=Indexed Database API 3.0 publication history |url=https://www.w3.org/standards/history/IndexedDB-3/ |archive-url=https://web.archive.org/web/20241203185526/https://www.w3.org/standards/history/IndexedDB-3/ |archive-date=2024-12-03 |access-date=2024-12-03 |website=W3C |language=en}}</ref>
}}</ref>
 
==Performance==
 
Because IndexedDB is running inside of the security sandbox of a browser, all operations have to go through various security layers which decreases the performance of IndexedDB. With IndexedDB 2.0<ref name="w3c-blog-indexeddb-2.0">{{Cite web|url=https://www.w3.org/blog/news/archives/6795|title=Indexed Database API 2.0 is now a W3C Recommendation {{!}} W3C News|website=W3C News|author=W3C|date=2018-01-30|access-date=2021-05-16}}</ref> the getAll() method was added which allows to improve performance on bulk read operations.
=== IndexedDB 3.0 ===
''IndexedDB 3.0'' is currently a [[World Wide Web Consortium#Working draft (WD)|First Public Working Draft]].<ref name="standard" />
 
==References==
Line 75 ⟶ 83:
==External links==
* [https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API IndexedDB API] on [[MDN Web Docs]]
* [https://nolanlawson.github.io/database-comparison/ Browser database comparison]
 
{{Web browsers|fsp}}
Line 80 ⟶ 89:
{{W3C standards}}
 
{{DEFAULTSORT:Indexed Database Api}}
[[Category:World Wide Web Consortium standards]]
[[Category:Database APIs]]
[[Category:Web technology]]