Re: Cache, POST et co

Maïeul <[email protected]>
Newsgroups gmane.comp.web.spip.devel
Message-ID <[email protected]>
Le 15/04/2021 à 13:46, Maïeul Rouquette a écrit :
> Bonjour,
> 
> j'ai une question concernant la gestion du cache.
> 
> ## Contexte
> 
> recherche d'amélioration des perfs de formidable table sorter
> 
> ## Explication du processus
> 
> Formidable tablesorter envoie une requete AJAX pour récupérer un fichier 
> JSON contenant les données à afficher. Cette requete est un peu longue, 
> car elle contient des infos sur les filtres, tri, etc. Par conséquent 
> impossible de l'envoyer en GET, mais uniquement en POST, bien que cela 
> n'influence nullement le contenu de la base, mais uniquement le résultat 
> du fichier json.
> 
> Ce fichier JSON est généré via différentes fonctions, qui, ultimement, 
> appellent `calculer_voir_reponse`, une fonction de formidable.
> 
> Cette dernière se base sur les squelettes saisies-vues./*.html pour 
> montrer les résultats pour afficher la valeur correctement formaét, 
> champ par champ et réponse par réponse.
> 
> ## Problème
> 
> Comme j'envoie ma requete en POST (car paramètres potentiellement très 
> long), je n'ai pas de cache (c'est prévu explicitement dans SPIP).
> 
> J'ai testé pour voir avec GET, sur un formulaire avec pas mal de 
> réponse, on passe de 4 s à 100ms de temps d'attente avant que le serveur 
> renvoie sa réponse.
> 
> ## Question
> 
> Quelle est la solution la plups propre pour éviter ce problème ?
> 
> Merci d'avance pour vos éclairages
> 
> ## Remarque
> 
> J'ai n'ai aucun souci de cache obsolète car
> 
> 1. Si on modifie une réponse de formulaire via le tableau, bah il y une 
> invalidation générale du cache
> 2. Comme dit, ma requete AJAX en elle même n'implique pas de 
> modification en base
> 
> 
> Maïeul
> 
j'ai bien songé à mettre

if ($_SERVER['REQUEST_METHOD'] == 'POST' and $_REQUEST['page']  === 
'formidable_ts.json') {
	$_SERVER['REQUEST_METHOD'] = 'GET';
}


dans mes_options.

Cela marche, mais c'est un peu moche.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.