2016-05-21 1 views
0

J'ai un fichier JSON qui est utilisé pour afficher les prix. Le fichier JSON ne rafraîchit que tous les 30 min côté serveur, mais lorsque le client se rafraîchit, il obtient simplement la même version. Existe-t-il un moyen d'avoir une date d'expiration pour le fichier JSON, puis de le télécharger au lieu de continuer à le télécharger?Comment mettre en cache une réponse JSON?

+0

Vous pouvez stocker dans sessionStorage ou localStorage. Vous auriez besoin de mettre une petite logique d'expiration autour si. Peut-être stocker deux clés, l'une contrôlant l'expiration. – Dismissile

+0

Y aurait-il un moyen de le faire PHP sage? Ou devrais-je tout changer pour jQuery? – TheGuyWhoCodes

+0

Vous devez rechercher les contrôles de cache de votre serveur HTTP et en PHP. – JAAulde

Répondre

1

Vous pouvez configurer votre serveur pour renvoyer une réponse 304 - Non modifié si le fichier n'a pas changé depuis la date à laquelle le navigateur a stocké dans son cache pour ce fichier. Fondamentalement, lorsqu'un client demande un document, il peut envoyer une date "If-Modified-Since" dans l'en-tête de la demande. Si le fichier n'a pas été modifié depuis cette date, le serveur répondra avec une réponse 304 - Non modifié et le client utilisera la version mise en cache à la place.

0

Mettre cela en haut de votre fichier php que vous appelez via ajax:

header("Cache-Control: max-age=1800"); 
header("Cache-Control: public", false); 

cela permettra au navigateur de mettre en cache le fichier pour 1800 secondes.

si vous utilisez jQuery, ne pas oublier d'activer la propriété du cache:

$.ajax({url:"yourfile.php",cache:true})