У меня есть файл JSON, который нельзя кешировать. Я его запрашиваю из файла history.php средствами JS:
$.getJSON("./data/history/" + <?php echo $data['id']; ?> + ".json", function(data) {
var history_data = '';
$.each(data, function(key, value) {
history_data += '<tr>';
history_data += '<td>' + value.time + '</td>';
if (value.counts > 0) {
history_data += '<td class="hiscountsg">+' + value.counts + '</td>';
} else {
history_data += '<td class="hiscountsr">' + value.counts + '</td>';
}
history_data += '<td>' + value.owner + '</td>';
history_data += '</tr>';
});
$('#histab').append(history_data);
});
Все нормально выводится, но при обновлении в файле 89.json
при запросе этого файла выводятся старые значения. В файле откуда этот запрос посылается стоит функция задания заголовков http на отключение кеширования:
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s")." GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0,pre-check=0", false);
header("Cache-Control: max-age=0", false);
header("Pragma: no-cache");
Помогите пожалуйста, не знаю что делать.
P.S. В браузере Firefox Developer Edition с отключенным кешированием все работает
Решил отправлять GET запрос к файлу с меткой времени
$.getJSON("./data/history/" + <?php echo $data['id']; ?> +
".json?"+Math.round(new Date().getTime()/1000), function(data) {}
Тогда браузер будет постоянно запрашивать файл заново, но если есть какой-нибудь вариант решения получше, буду рад!
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок