私のページが読み込まれると、すぐに$ .ajax()を使用して別のサーバーからJSONデータを取得したいので、jsonファイルを再要求することなくすべてのデータにアクセスできるようにしたいと思います。問題は、変数にデータを代入すると、その変数のスコープが$ .ajax()関数に限定され、他の場所にアクセスできなくなるためです。外部JSONを一度ロードし、繰り返し使用します。
私はすでにその情報をロードして、何度も何度でもそれを再利用することなく(遅く)使用することができるはずです。私はdocument.readyの(外それを実行した場合
$(document).ready(function(){
$.ajax({
type: "GET",
url: 'https://www.reddit.com/.json',
timeout:3000,
dataType: 'JSON',
jsonpCallback: 'callback',
success: function(data) {
console.log(data);
var myData = data; //this variable is confined :(
},
error: function(){
console.log('error');
}
});
});
下回っ例えば、単純なreddit.json要求を使用して)、その後、私は世界的にそれを得ることができますが、それはクールだった場合、私は知りませんでしたかない、またはあなたが知っている、ベストプラクティスのような...
いただきました、それは最初の要求だ作られた機能の範囲外既にロードされたJSONオブジェクトにアクセスするための最良の方法は?それとも可能なのか...?
Ajaxリクエストが完了した後にのみデータにアクセスできることが保証されている限り、必要な場所に保存できます。例えば。イベントハンドラ内のデータにアクセスする必要がある場合は、要求が完了した後にのみイベントハンドラをバインドします。 –
グローバル変数を使用する場合、JSONデータは、任意の呼び出し元との間で共有できます。 – Sparky256
関連:[非同期呼び出しからの応答を返すにはどうすればいいですか?](https://stackoverflow.com/questions/14220321/how-do-i-return-the-response-from-an-asynchronous-call/14220321 ) –