Est-ce que ce qui suit est une bonne façon de détecter une requête AJAX et de définir une expiration de 15 minutes pour que le même GET ne nécessite aucun trafic réseau?Ruby on Rails: comment paramétrer l'expiration du contenu pendant 15 minutes s'il s'agit d'une requête AJAX
# in controller
if request.xhr?
response.headers['Expires'] = (Time.now + 15.minutes).httpdate
response.headers['Cache-Control'] = '' # override any no-cache, must-revalidate
end
Mise à jour: J'ai trouvé une alternative plus courte, qui est expires_in
# in controller
if request.xhr?
expires_in(15.minutes)
end
bien, après cela, l'en-tête devient:
Cache-Control: max-age=900, private
qui était autrefois
Expires: Tue, 13 Jul 2010 00:59:47 GMT
quand c'était la version antérieure. Mais notez que Cache-Control
est pour HTTP/1.1 et même quelques années auparavant, il a été pris en charge par 99% des navigateurs, comme mentionné dans le livre High Performance Website.