ページでjQueryAjaxを使用してクエリを実行するために、JSONデータをテキストファイルに保存しています。現在、私のテキストファイルには約10ファセットのデータが含まれています(さらに30ファセットのデータが含まれる可能性があります)。JSONデータには、質問とそれらの質問に対する回答が含まれています。
私のJavaScriptファイルでは、特定のデータを取得するためにさまざまな関数を設定しています。
例えば:
function GetAnswer(questionName) {
var correctAnswer = null;
jQuery.ajax({
type: "GET",
url: "../content/questions.txt",
contentType: "application/json; charset=utf-8",
dataType: "json",
data: "",
async: false,
success: function (result) {
$.each(result, function (i, q) {
if (q.questionID == questionName) {
correctAnswer = q.correctAnswer;
return false;
}
});
},
error: function () { },
complete: function () { }
});
return correctAnswer ;
}
コードスニペットからわかるように、必要なデータを取得するためにJSONをループしています。質問の種類や質問の名前などを取得するために、同様の方法でコーディングされた他の関数があります。
私が見つけたのは、必要なデータを取得するためにこれらの関数を次々に呼び出しているということです。一致するものが見つかるまでJSONデータセット全体をループしているため、パフォーマンスの観点からは、JSONデータをクエリする方法は適切ではないと思います。
JSONデータをクエリするためのより良い方法はありますか?
注:使用しているテクノロジ(SCORM 1.2)の制限により、質問を保存するためにテキストファイルを使用する必要があります。