У меня есть функция javascript/ajax, которая ищет файл json, размещенный на другом сервере. Мне нужна моя функция, чтобы выполнить следующие действия:Как использовать Ajax для сохранения файла кэша?
- Получить JSon файл с внешнего сервера
- Сохранить JSon файл на своем локальном сервере
- Проверьте, чтобы увидеть, если JSON файл старше 1 час
- Если оно не старше 1hr затем использовать эти данные
- Если он старше 1hr - повторно загрузить с внешнего сервера и перезаписать локальную версию
В настоящее время моя функция получает данные от внешнего терминала каждый раз, когда он вызывается. Мне нужно добавить в эту функцию кеширования, но я не уверен, как ее использовать.
Может ли кто-нибудь предложить какие-либо рекомендации?
Вот мой код:
function ajaxLoad(page,url,type,variety,category , widgetClickedId)
{
/*
* Checking the clicked id is the same as passed in one
* TODO refactor so the clicked id only ever gets passed
*/
if(widgetId != widgetClickedId && widgetClickedId != undefined)
{
return false;
}
var website = $('#button-print'+widgetId).data("website");
var page = $('#button-print'+widgetId).data("page");
$.ajax({
type: 'GET',
url: 'www.myothersite.com/api/v1/productchoice.json?website='+website,
async: true,
jsonp: 'callback',
dataType: 'jsonp',
success: function(productchoice)
{
if(productchoice['brand'+widgetId] == 'null' || productchoice['brand'+widgetId] == undefined)
{
productchoice['brand'+widgetId] = '';
}
//check that all values are not null , if not , then show the widget
if( productchoice['brand'+widgetId] == ''
&& productchoice['subject'+widgetId] == ''
&& productchoice['market'+widgetId] == ''
&& productchoice['type'+widgetId] == ''
&& productchoice['bookazinebrands'+widgetId] == '')
{
//is this corect?
$('#gdmContainer'+widgetId).hide();
//return false;
}
else
{
$('#gdmContainer'+widgetId).show();
}
setRibbons(productchoice.ribbonTop , productchoice.ribbonBottom);
getProductChoice(productchoice);
setLoveTitle(productchoice);
setDefaultBtn(productchoice['defaultBtn'+widgetId]);
return productchoice;
}
});
Заранее спасибо!