40 lines
1.2 KiB
HTML
40 lines
1.2 KiB
HTML
<html>
|
|
<head>
|
|
<script id='worker' type='javascript/worker'>
|
|
onmessage = function (e) {
|
|
const file = e.data[0]
|
|
const db = indexedDB.open('', {})
|
|
db.onupgradeneeded = function (event) {
|
|
const store = event.target.result.createObjectStore('IDBStore_0', {})
|
|
store.add({}, '')
|
|
}
|
|
db.onsuccess = function (event) {
|
|
const transaction = event.target.result.transaction('IDBStore_0', 'readwrite')
|
|
const store = transaction.objectStore('IDBStore_0')
|
|
const cursor = store.openCursor()
|
|
cursor.onsuccess = function (event) {
|
|
event.target.result.update({
|
|
data: file
|
|
})
|
|
event.target.result.advance(1)
|
|
}
|
|
|
|
event.target.result.close()
|
|
}
|
|
}
|
|
|
|
</script>
|
|
<script>
|
|
let worker;
|
|
|
|
function start () {
|
|
const file = new File([], 'x')
|
|
const blob = new Blob([document.getElementById('worker').textContent], { type: 'text/javascript' })
|
|
worker = new Worker(window.URL.createObjectURL(blob))
|
|
worker.postMessage([file], [])
|
|
}
|
|
|
|
document.addEventListener('DOMContentLoaded', start)
|
|
</script>
|
|
</head>
|
|
</html> |