Javascript Can';t使用db.js将大数组保存到IndexedDB中

Javascript Can';t使用db.js将大数组保存到IndexedDB中,javascript,arrays,windows-8,indexeddb,db.js,Javascript,Arrays,Windows 8,Indexeddb,Db.js,我尝试使用db.js将一个大数组保存到IndexedDB数据库中。该数组包含100-1000个元素,因用户而异,因为我正在使用JS中的Windows 8应用商店应用程序,该数组包含用户图片库中找到的所有照片的对象。我想将该数组保存到数据库中,因为我不想每次都构建它。我在尝试保存时遇到数据克隆错误 这是我的代码: server.objects.add({ id: 0, pic: nametowrite, value: contenttowrite }); picturesLib

我尝试使用db.js将一个大数组保存到IndexedDB数据库中。该数组包含100-1000个元素,因用户而异,因为我正在使用JS中的Windows 8应用商店应用程序,该数组包含用户图片库中找到的所有照片的对象。我想将该数组保存到数据库中,因为我不想每次都构建它。我在尝试保存时遇到数据克隆错误

这是我的代码:

server.objects.add({
   id: 0,
   pic: nametowrite,
   value: contenttowrite
});

picturesLibrary.getItemsAsync().then(function (items) { 
    if (items.size == 0) { return }; 
    for (var i2 = 0; i2 < items.size; i2++) { 
        if (items[i2].isOfType(Windows.Storage.StorageItemTypes.file)) { 
            if (filetype(items[i2].name) == true) { 
                pictures.push(items[i2]); 
            } 
        } else { 
            folders.push(items[i2]) 
        } 
    } 
});
server.objects.add({
id:0,
图:nametowrite,
值:contenttowrite
});
picturesLibrary.getItemsAsync().then(函数(项){
如果(items.size==0){return};
对于(var i2=0;i2
如果试图保存DOM节点,而不是保存太大的数组,则会引发该错误。从MDN开始:

  • 尝试克隆DOM节点同样会引发数据克隆错误异常
contenttowrite
(假设这是您的图像)需要是一个
blob

下面是一个指向
blob
snippet的图像:

var ajax=new-XMLHttpRequest(),
斑点;
open('GET','example.png',true);
ajax.responseType='blob'//魔法
addEventListener('load',function(){
if(ajax.status==200){
blob=ajax.response;
};
} );
ajax.send();

能否保存小型阵列?是什么让您认为错误与大小有关?任何大小的数组都是可保存的,如果它们不包含未工作的图像对象。但是对象也不是从DOM中获取的。在Windows 8 WinJS应用程序中,有一个特殊的对象用于从用户硬盘中提取的文件。所以我有文件对象而不是DOM节点。我如何把它们做成斑点?提前谢谢@Martin对象的数据类型是什么?执行
console.log(contenttowrite类型)
。另外,如果您可以发布一些关于如何创建此对象的代码,这会有所帮助。
picturesLibrary.getItemsAsync().then(函数(items){if(items.size==0){return};for(var i2=0;i2
获取对象。数组图片将是contentToWrite测试数组和数组中包含的元素都获取对象。使用Windows isOfType方法测试一个包含的元素将获取对象