Réponse de taille nulle

Résolu/Fermé
JeandeStrasbourg Messages postés 4 Date d'inscription lundi 20 novembre 2017 Statut Membre Dernière intervention 21 novembre 2017 - 20 nov. 2017 à 20:09
JeandeStrasbourg Messages postés 4 Date d'inscription lundi 20 novembre 2017 Statut Membre Dernière intervention 21 novembre 2017 - 21 nov. 2017 à 07:56
Bonjour,



je suis prof de maths et j'ai bricolé (c'est vraiment du bricolage) un petit site en php pour que mes élèves puissent faire des exercices avec des données aléatoires.
Je suis hébergé chez free.
J'ai une base de données mysql qui enregistre les meilleurs scores.
Pour afficher les formules mathématiques, j'utilise phpmathpublisher qui crée des images pour chaque formule.
Les pages sont assez longues à charger (une dizaine de secondes) mais cela fonctionne généralement. Le problème est que, de temps en temps, sans raison particulière, on obtient un message d'erreur : "réponse de taille nulle" ou "Squid n'a reçu aucune donnée" ou "la connexion a été réinitialisée" suivant les navigateurs.

En faisant une petite recherche sur les forums, j'ai trouvé un message qui conseillait d'utiliser ob_start et ob_flush. J'ai regardé la description de ces instructions mais je ne comprends pas comment elles fonctionnent.

Est-ce que quelqu'un aurait un diagnostic et un conseil ?

Merci

Jean

2 réponses

NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 330
20 nov. 2017 à 20:29
1
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
20 nov. 2017 à 20:35
Bonjour,

Tout d'abord ... si ton site contient beaucoup d'images... il faut les optimiser.
Tu peux commencer par ça :
https://www.blogdumoderateur.com/optimiser-image/

Tu peux aussi augmenter un peu le time limit du code php
https://www.php.net/manual/fr/function.set-time-limit.php

Tu peux aussi Mettre en cache les fichiers statiques de ton site Web
https://www.creativejuiz.fr/blog/tutoriels/mettre-en-cache-les-fichiers-statiques-de-votre-site-web-htaccess

Bien entendu, je ne sais pas comment se presente ton site.. mais tu pourrais, si ce n'est pas déjà fait, le "découper" en plusieurs pages.
cela évitera de devoir charger 250 images d'un coup.....
Tu fais une page par exercice par exemple...


Avec ça déjà.. tu devrais pouvoir limiter les erreurs.





1
JeandeStrasbourg Messages postés 4 Date d'inscription lundi 20 novembre 2017 Statut Membre Dernière intervention 21 novembre 2017
20 nov. 2017 à 20:43
Merci beaucoup. Je vais creuser tout ça. .
0
JeandeStrasbourg Messages postés 4 Date d'inscription lundi 20 novembre 2017 Statut Membre Dernière intervention 21 novembre 2017
20 nov. 2017 à 23:37
Le site est déjà découpé : une page par exercice.

Le php génère des données aléatoires pour afficher un énoncé. Quand l'élève a validé sa réponse, la page lui indique si la réponse est juste et affiche un corrigé avec les données de l'exercice. Les images correspondent aux formules de l'énoncé et du corrigé. Elles sont donc générées au fur et à mesure par phpmathpublisher. Je ne pense pas qu'il soit possible de les modifier sauf à modifier phpmathpublisher.

Le set_time_limit ne fonctionne pas. Il m'affiche
Warning: set_time_limit() [function.set-time-limit]: Cannot set time limit in safe mode in /mnt/159/sda/6/e/jpatouilliart/phpmathpublisher/deriv_rac.php on line 243
J'imagine que le safe mode n'est pas désactivable chez free.



Pour ce qui est du cache, chacune de mes pages commence par un include"mathpublisher.php" mais, si j'ai bien compris (ce qui est loin d'être sûr), ce n'est pas un fichier statique donc je ne peux pas le mettre en cache.

Penses-tu que ob_start, ob_flush et ob_get_contents puissent être utiles ?
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649 > JeandeStrasbourg Messages postés 4 Date d'inscription lundi 20 novembre 2017 Statut Membre Dernière intervention 21 novembre 2017
21 nov. 2017 à 00:17
Tu peux toujours essayer.
Personnellement j'évite au maximum ce genre de fonction..... sauf cas exceptionnel.
En même temps... tu héberges ton site chez free .... et bon.. ce n'est pas connu pour ses performances....

Enfin si tu veux quand même tester, voici un bon tuto :
http://julien-pauli.developpez.com/tutoriels/php/ob/


Au passage, teste ton site ici : https://developers.google.com/speed/pagespeed/insights/
et là : https://tools.keycdn.com/speed
0
JeandeStrasbourg Messages postés 4 Date d'inscription lundi 20 novembre 2017 Statut Membre Dernière intervention 21 novembre 2017 > jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024
21 nov. 2017 à 07:56
Merci beaucoup.
J'ai testé mon site avec ton premier lien. Il a été évalué comme poor à 50/100.
J'ai essayé d'alléger en affichant avec mathpublisher les images indispensables (comme les fractions ou les racines carrées) et en écrivant en html les formules qui pouvaient l'être (comme les intervalles ou les noms de fonctions). C'est moins joli mais c'est beaucoup plus rapide. Rien qu'avec ça, je suis passé à 70/100.
C'est pas formidable mais je pense que cela devrait suffire pour que cela ne plante plus.
Merci encore pour tes réponses.
0