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.