JSON データ (200Mega) で操作を実行する JavaScript プログラムがあります。このプログラムは、regxp によってデータ内のオカレンスを検索します。
var myDatas = [
{ "id" : "0000000001",
"title" :"Data1",
"info": {
"info1": "data data data",
"info2": "infoinfoiinfoinfo",
"info3": "info333333333",
"miscellaneous": "",
"other": [
{"title": "qwe", "ref": "other"},
{"title": "sdsd", "ref": "other"},
{"title": "ddd", "ref": "123"}
]
},
"text": "xxxx text sldjdjskldj text text" },
. . . ];
実際の実行は遅すぎます。
私は html 5 の Worker を使用しますが、IE9 ではサポートされていません。
私のプログラム:
iterObject : function(obj){
var text = $('#search-input').val() //text to search
var self = this
$.each(obj, function(key, value) {
if((typeof value) == 'object'){
self.iterObject(value)
}
else{
self.Search(text, value)
}
}
}
Search : function(item, text){
var regexThisFragment =
new RegExp("[^a-zA-Z0-9]+.{0,40}[^a-zA-Z]+" +
item +
"[^a-zA-Z]+.{0,40}[^a-zA-Z0-9]+", "i")
while(text.match(regexThisFragment) != null)
{
var fragment = text.match(regexThisFragment).toString()
console.log(fragment );
}
}
},
プログラムを改善するにはどうすればよいですか?