Javascript 将大量模型分配给集合

Javascript 将大量模型分配给集合,javascript,arrays,backbone.js,local-storage,Javascript,Arrays,Backbone.js,Local Storage,我有一个包含约1200个对象的数组,我想将其分配给一个集合,但我总是超时 我试过这个(我承认不是很优雅): 这可以工作,但速度非常慢:-( 编辑 也许我走错了方向。我用的不是某种远程数据库,所以可能是localStorage本身减慢了一切 编辑2 我认为问题在于localStorage.setItem()的性能。现在我将尝试indexedDB:-/ 更新/解决方案 在我将数据添加到index.html之后,出于某种原因,它起了作用。可能是范围问题 <script> BigCol

我有一个包含约1200个对象的数组,我想将其分配给一个集合,但我总是超时

我试过这个(我承认不是很优雅):

这可以工作,但速度非常慢:-(

编辑

也许我走错了方向。我用的不是某种远程数据库,所以可能是
localStorage
本身减慢了一切

编辑2

我认为问题在于
localStorage.setItem()
的性能。现在我将尝试
indexedDB
:-/

更新/解决方案

在我将数据添加到index.html之后,出于某种原因,它起了作用。可能是范围问题

<script> 
  BigCollection.allItems = new BigCollection.AllItems();
  BigCollection.allItems.add( BigCollection.allItemsArray ); // Add all the data
</script>

BigCollection.allItems=新的BigCollection.allItems();
BigCollection.allItems.add(BigCollection.allItemsArray);//添加所有数据

看起来您正在创建1200个请求。您最好自己提出请求,将数据保存到服务器,然后

BigCollection.add(mightyArray,{silent: true});

传递静默将避免所有对服务器的请求。

关于
BigCollection.add(mightyArray);
?是的。是同步
create()
x1200导致了速度减慢吗?您可能希望先创建集合,然后执行批处理
save()
而不是试图将每个模型一个一个地保存。@Nikosh,为什么不干脆
BigCollection.reset(arrayHash)
?@orangewarp等价物如果集合为空,但集合可能已经有模型,所以添加以确保安全。明白了。这很有意义。:-@Nikosh我尝试了
BigCollection.add(mightyArray)
variant但我得到了一个没有模型的集合。出于某种原因,这在控制台中有效,但如果我将其添加到我的JS文件中则不行?对不起,我不理解你的句子。你能给出一些代码来解释吗?当我在Chrome开发者工具控制台中使用
add
时,我可以使用
BigCollection
中的数据。当我在定义集合的JS文件中执行相同操作时,我得到一个长度为0的
BigCollection
BigCollection.add(mightyArray,{silent: true});