MathJax, alternatives et charge

a marqué ce sujet comme résolu.

Salut les zestes !

Je me balladais un peu, et j’ai remarqué que.. Darn ! Ma connexion rurale ne me permettait pas de charger certaines pages rapidement, même lorsque le contenu était au final assez… léger, pour ne pas dire presque vide (certains sujets etc).

J’ai donc rapidement pris mon tinfoil hat et commencé mon exploration de la timeline de la requête, montrée gracieusement par notre grand ami Firefox, et je me suis rendu compte que le principal élément bloqueur était mathjax (environ 60% du temps de charge).

Pour être honnête, je ne suis pas surpris, ayant déjà bricolé avec mathjax. Je savais à quoi m’attendre ! :P

Je me suis vite rendu compte que plus de 15 API calls vers mathjax.org étaient effectués par mon navigateur pour charger l’intégralité du site, ne contenant que peu de formules. Ce qui est, disons-le nous.. beaucoup. Du moins, proportionnellement au contenu de la page en question (dont je n’ai, hélas, plus le lien sous la main), c’est beaucoup.

J’ai un peu fouiné sur le forum de communauté et j’ai trouvé ce post, qui semble bien résumer le problème, notamment avec l’intervention de Gabbro, qui expliquait le problème principal de lourdeur cité un peu au dessus.

Pour éviter un petit déterrage éventuellement inutile, je venais donc demander si:

  • la solution envisagée et en cours de production lors du dernier message posté par Kje a été retenue ;
  • la solution n’a pas été retenue, dans quel cas:

Pourquoi ne pas faire un API endpoint qui accepterait toutes les formules à convertir (et les requêtes "complémentaires"), et qui retournerait une série de réponses (éventuellement encodées en JSON), qui seraient alors réparties à travers la page ?
Dans le principe, cet API endpoint recevra alors une série de requêtes (sans doute une liste ou un tableau, par exemple), traitera individuellement chaque requête (éventuellement en stockant le résultat dans un cache, si disponible), et une fois fini, retournera la liste de réponses.

Note que je suis conscient que monter ça apporterait pas mal d’autres contraintes et soulèverait pas mal de problématiques, comme, par exemple, un flood d’insertions de formules mathématiques en LaTeX, qui soulèverait alors un très gros batch de requêtes à effectuer, donc un gros boulot côté serveur et une double charge côté réseau ; ce qui produirait alors l’effet inverse, même si un flux continu ininterrompu de données restera toujours techniquement plus performant qu’une série de requêtes/réponses courtes avec fermeture/réouverture de flux.

J’ajoute en passant que le cdn mathjax a fermé et que c’est pour ça je pense que c’était un peu lent. Si la mise en place du nouveau zMd prend du temps, on peut mettre à jour les url pour accélérer les requêtes en attendant :

Alternative CDN providers

The easiest way for most site owners will be to simply switch to another CDN provider.

We recommend cdnjs which also uses CloudFlare for delivery (and on the higher “enterprise” level!). We have been in touch with cdnjs’s maintainers and will help push future MathJax releases to cdnjs.

For example, if you have been using the latest MathJax version (v2.7.0) change

1
2
3
<script type="text/javascript" async
  src="https://cdn.mathjax.org/mathjax/2.7-latest/MathJax.js?...">
</script>

to

1
2
3
<script type="text/javascript" async
  src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?...">
</script>
+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte