判斷objectStore物件倉庫是否存在
通過createObjectStore()方法可以建立物件倉庫,在同一個資料庫下,倉庫名稱必須是唯一的。
如果建立同名物件倉庫,則會報錯,下面通過一段簡單程式碼例項進行演示:
[HTML] 純文字檢視 複製程式碼執行程式碼<!doctype html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <script> let request = window.indexedDB.open("antzone", 1); request.onupgradeneeded = (ev) => { let db = ev.target.result; let objectStore = db.createObjectStore("students",{ keyPath: 'id' }); objectStore.createIndex('studentName', "name", { unique: false }); } </script> </head> <body> </body> </html>
通過上面程式碼可以建立一個名為antzone的資料庫,然後在其中新增名為students物件倉庫。
為了查詢方便,最後通過objectStore.createIndex方法建立索引。
程式碼執行效果截圖如下:
此時要修改一下資料庫結構,那麼必須要將資料庫版本提升,以此觸發upgradeneeded事件。
如果再次建立同名資料庫倉庫就會報錯,程式碼修改如下:
[HTML] 純文字檢視 複製程式碼執行程式碼<!doctype html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <script> let request = window.indexedDB.open("antzone", 2); request.onupgradeneeded = (ev) => { let db = ev.target.result; let objectStore = db.createObjectStore("students",{ keyPath: 'id' }); objectStore.createIndex('studentName', "name", { unique: false }); } </script> </head> <body> </body> </html>
將資料庫的版本修改為2,那麼會觸發upgradeneeded,再次建立同名物件倉庫。
谷歌開發者工具控制檯報錯如下:
所以需要判斷一下是否已經存在同名物件倉庫,程式碼修改如下:
[HTML] 純文字檢視 複製程式碼執行程式碼<!doctype html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <script> let request = window.indexedDB.open("antzone", 2); request.onupgradeneeded = (ev) => { let db = ev.target.result; if (!db.objectStoreNames.contains('students')) { let objectStore = db.createObjectStore("students",{ keyPath: 'id' }); objectStore.createIndex('studentName', "name", { unique: false }); } } </script> </head> <body> </body> </html>
上面程式碼完成了判斷功能,資料庫物件的objectStoreNames屬性可以返回所有的物件倉庫名稱。
返回值型別是DOMStringList 物件(字串的集合),contains方法可以檢測物件倉庫名稱是否已經存在。
相關閱讀:
(1).建立物件倉庫參閱createObjectStore()方法一章節。
(2).建立資料庫參閱indexedDB.open()方法一章節。
(3).建立索引參閱createIndex()方法一章節。
相關文章
- 如何判斷Javascript物件是否存在JavaScript物件
- 如何判斷一個jquery物件是否存在jQuery物件
- js如何判斷一個物件是否存在JS物件
- java判斷mysql中資料庫是否存在JavaMySql資料庫
- 41:判斷元素是否存在
- 如何判斷一個js物件是否存在迴圈引用JS物件
- JavaScript 判斷函式是否存在JavaScript函式
- postgresql如何判斷表是否存在SQL
- golang判斷檔案是否存在Golang
- vc判斷檔案是否存在
- jQuery如何判斷元素是否存在jQuery
- iOS判斷是否存在網路iOS
- MySQL判斷表名是否存在MySql
- Selenium2(WebDriver)_如何判斷WebElement元素物件是否存在Web物件
- 判斷一個物件是否為空物件,判斷一個物件中是否有空值物件
- Javascript 判斷物件是否相等JavaScript物件
- Sql Server中判斷表或者資料庫是否存在SQLServer資料庫
- js判斷dom節點是否存在JS
- 怎麼判斷mysql表是否存在MySql
- jQuery 判斷使用者是否存在jQuery
- Laravel 5 判斷條件是否存在Laravel
- python 判斷檔案是否存在Python
- jQuery 判斷頁面元素是否存在jQuery
- js判斷物件是否為空JS物件
- 判斷物件值是否為空物件
- java判斷物件是否為空Java物件
- jQuery如何判斷一個元素是否存在jQuery
- 如何利用jQuery判斷指定元素是否存在jQuery
- javascript判斷一個變數是否存在JavaScript變數
- JavaScript中判斷是否存在某屬性JavaScript
- QTP中如何判斷Excel程式是否存在?QTExcel
- sh指令碼判斷路徑是否存在指令碼
- 判斷物件是否為空物件的方式物件
- mysql如何判斷是否存在某個欄位MySql
- jquery怎麼樣判斷檔案是否存在jQuery
- Linux判斷URL是否存在,並返回IPLinux
- 如何判斷頁面是否存在某個元素
- js如何判斷指定的檔案是否存在JS