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