AJAXリクエストからJSONデータを受信しようとしていて、そこからランダムな項目を表示する方法を見つけようとしています。また、このデータをlocalStorage
に保存したいので、それ以降のリクエストはデータベースに送信されないので、ランダム項目はlocalStorage
から選択されます。AJAXリクエストからJSONデータを取得してランダムな項目を設定する
私のJSONデータは次のようになりますたとえば、このデータを取得する
{
"tennis": [
{
"Description": "Insert description here",
"Address": "24 Fakeville St",
"Courts": 4
},
{
"Description": "Insert description here",
"Address": "18 Fakeville St",
"Courts": 2
}
],
"soccer": [
{
"Description": "Insert description here",
"Address": "18 Fakeville St",
"Courts": 1
},
{
"Description": "Insert description here",
"Address": "18 Fakeville St",
"Courts": 1
}
],
"basketball": [
{
"Description": "Insert description here",
"Address": "4 Fakeville St",
"Courts": 2
}
]
}
My機能は次のとおりです。
var data;
function getData() {
if (localStorage.getItem('myData')) {
data = JSON.parse(localStorage.getItem('myData'));
} else {
$.ajax({
url: '/getMyData',
type: 'GET',
contentType: 'application/json; charset=utf-8',
dataType: 'json',
async: false,
success: function (data) {
data = data;
showContent(data);
}
});
}
localStorage.setItem('myData', data);
}
データが受信されると、私はへのそれを渡したいですshowContent()
これはHTMLにそれを入力する関数です。しかし、私がconsole.log(data);
を実行すると、Chromeのコンソールにundefined
が表示されます。
ここで私のJSFiddleはhereです。
ファーストをお楽しみください。ローカルストレージアイテムをAjaxの成功の中に置くべきです。 2. getData関数をコールバックの形式でデータを返すようにし、コールバック内のデータを使用します。 – misher
おそらく、ローカルストレージから古いデータを使用しています。それをクリアしてからテストしてください。動作が変化するかどうかを確認してください。 – bryan60