Javascript json读取性能
我正在用jquery+html5开发一个客户端应用程序 我将数据存储在一个70 MB的文件中 data.json:Javascript json读取性能,javascript,jquery,json,html,Javascript,Jquery,Json,Html,我正在用jquery+html5开发一个客户端应用程序 我将数据存储在一个70 MB的文件中 data.json: var myData = [ { "id":"000000001", "title":"title1", "contents": [ {"title":"title11", "description": "description", "text":"textextxxxxxxxx"}
var myData = [
{
"id":"000000001",
"title":"title1",
"contents": [
{"title":"title11", "description": "description", "text":"textextxxxxxxxx"}
{"title":"title12", "description": "description", "text":"textextxxxxxxxx"}
{"title":"title13", "description": "description", "text":"textextxxxxxxxx"}
]
}
,.........
,.........
70Mb
]
//Application read this file and show "values" on console :
var data = myData
jQuery.each(data, function(){
iterObject(this)
})
iterObject : function(obj){
var self = this
$.each(obj, function(key, value) {
if((typeof value) == 'object'){
self.iterObject(value)
}
else {
console.log(value)
}
})
}
问题是它工作得很慢
快速阅读大型物体的最佳方法是什么
谢谢
快速阅读大型物体的最佳方法是什么
最好的办法是分开。现在需要将整个文件加载到内存中,这非常消耗资源
相反,我看到您的对象实际上是一个列表,可以拆分成块,例如每行一个JSON,并根据需要逐个读取
换句话说:拆分负载,不要一次加载所有内容
编辑:我刚刚注意到您正在将其加载到客户端。请考虑缓存-不要加载你已经拥有的东西,如果这还没有改变的话。这是你问的同样的问题吗?你需要同时读取所有的数据吗?70Meg?下载到客户端?每页加载?哎哟,你到底为什么要这么做?服务器的用途是什么?仅仅因为你学会了JSON这个词并不意味着你就开始用它来解决每一个问题。客户端是否一次就需要全部70mb的JSON?将其分解为更小的数据子集。@Valeri:我不能给你明确的解决方案,因为你的问题似乎包含无效数据。你显示的实际内容不是有效JSON文件的内容。至少可以通过每行存储一个JSON来实现,但仍然可以下载整个文件。相反,您可以另外将这些块分割成多个适合您的文件,然后逐个读取文件,然后反序列化JSON-by-JSON。听Tadeck说,在客户端执行此操作的最佳方法是正确缓存您的信息。