使用HTML5 IndexDB存儲圖像和文件
當前位置:點晴教程→知識管理交流
→『 技術文檔交流 』
使用IndexedDB存儲圖像和文件有一天,我們寫了關于如何在localStorage中保存圖像和文件的文章,它是關于我們今天可用的實用主義。 然而,localStorage有一些性能影響 - 我們將在稍后的博客中討論這個問題 - 并且未來期望的方法是使用IndexedDB。 在這里,我將向您介紹如何在IndexedDB中存儲圖像和文件,然后通過ObjectURL呈現它們。 本文是翻譯過來的,原文在這里Storing images and files in IndexedDB 關于作者: Robert Nyman [Editor emeritus] Technical Evangelist & Editor of Mozilla Hacks. Gives talks & blogs about HTML5, JavaScript & the Open Web. Robert is a strong believer in HTML5 and the Open Web and has been working since 1999 with Front End development for the web - in Sweden and in New York City. He regularly also blogs at robertnyman.com and loves to travel and meet people. 使用IndexedDB存儲圖像和文件的常規步驟首先,我們來談談我們將創建一個IndexedDB數據庫,將文件保存到其中然后將其讀出并顯示在頁面中的步驟: 1、創建或打開數據庫 2、創建一個objectStore 3、將圖像文件檢索為blob 4、初始化一個數據庫事物 5、保存圖像blob到數據庫中去 6、讀出保存的文件并從中創建ObjectURL并將其設置為頁面中圖像元素的src 1、創建或打開數據庫。
使用它的預期方法是在創建數據庫時觸發onupgradeneeded事件或獲取更高版本號。 目前僅在Firefox中支持此功能,但很快將在其他Web瀏覽器中支持。 如果Web瀏覽器不支持此事件,則可以使用已棄用的setVersion方法并連接到其onsuccess事件。 2、創建一個objectStore(如果它尚不存在)
在這里,您創建一個ObjectStore,您將存儲數據 - 或者在我們的例子中,文件 - 并且一旦創建,您不需要重新創建它,只需更新其內容即可。 3、將圖像文件檢索為blob
此代碼直接將文件的內容作為blob獲取。目前只支持Firefox。 收到整個文件后,將blob發送到函數以將其存儲在數據庫中。 4、初始化一個數據庫事物
要開始向數據庫寫入內容,您需要使用objectStore名稱和要執行的操作類型(在本例中為read和write)啟動事務。 5、保存圖像blob到數據庫中去
一旦事務到位,您將獲得對所需objectStore的引用,然后將您的blob放入其中并為其提供密鑰。 6、讀出保存的文件并從中創建ObjectURL并將其設置為頁面中圖像元素的src
使用相同的事務來獲取剛剛存儲的圖像文件,然后創建一個objectURL并將其設置為頁面中圖像的src。 例如,這也可以是一個附加到腳本元素的JavaScript文件,然后它將解析JavaScript。 最后完整代碼
瀏覽器支持
![]()
![]() Github源碼
該文章在 2024/10/9 11:03:36 編輯過 |
關鍵字查詢
相關文章
正在查詢... |