communecter icon indicating copy to clipboard operation
communecter copied to clipboard

optim Carto : ne pas chargé les lib carto tant que l'affichage n'a pas été demandé

Open oceatoon opened this issue 8 years ago • 5 comments

une grosse optim surtout pour les zones a faible connection (retour de Sylvain a mada) l'appli marche mal notament a cause de toute les lib chargées notament les lib carto qui peuvent parfaois meme pas servir ce serait donc bien de les activer à la demande et pourquoi pas mettre une image avant qu'elle le soit

oceatoon avatar Jan 29 '16 07:01 oceatoon

Ce n'est pas seulement les libs : c'est les images, les markers et tout. L'idée c'est de tester la connection des internautes. Si c'est lent:

  • on ne charge pas du tout la carto.
  • Elle ne sera chargé qu'au clic sur les boutons d'accès à la carte
  • Dans une version ultérieure, on pourra penser à l'affichage sur le fond d'une carto statique, sans tiles et avec des markers statiques (ou sans markers) et chargement au clic ensuite.
  • A prévoir aussi un proxy de chargement des tiles chez nous. Mis à dispo sur un CDN rapide avec un cache peut être.

sylvainbarbot avatar Feb 01 '16 13:02 sylvainbarbot

je viens de commencer à bosser sur cette tâche. J'ai réussi à différer le chargement de la carto (timeout 10 sec) mais ça pose quelques difficultés :

  • il y a beaucoup de page qui affichent des données sur la carte dès leur chargement (directory, agenda, news, etc) Si on ne charge pas la carto dès le départ, il va falloir sécuriser chaque appel à des fonctions SIG, dans toutes les pages, toutes les vues.
  • si l'utilisateur essaie de se communecter avant que la carto soit chargée : ça plante : il faudrait sécuriser ça aussi.

Ce que je propose dans un premier temps, c'est de différer le chargement de la carte (5 sec après le unblockUi) seulement sur la page d'accueil, car aucune donnée carto n'y est chargée, donc ça ne pose pas de pb et ça accélère le chargement général.

La question qui se pose pour les autres pages : est-ce qu'on se lance dans ce chantier maintenant ? sachant que c'est quand même un gros boulot pour tout sécuriser. Et aussi : comment on peut faire pour tester la vitesse de la connexion du user ?

Kgneo avatar Mar 08 '16 04:03 Kgneo

cool je suis d'accord , on le met en prio 0.2

oceatoon avatar Mar 08 '16 06:03 oceatoon

ok pour la 0.2 pour l'optim globale. Idée d'une optim simple : est ce qu'on pourrait ne pas charger les layers de route si la connexion est lente ? Pour détecter les connexions lentes, il y a des scripts js qui font ça :

  • checknet : http://tomriley.net/blog/archives/111
  • ou sinon un timer entre le début et la fin du chargement d'une image. Tu fais un ratio temps de chargement / taille de l'image et tu as une idées de la vitesse de connexion @oceatoon : tu as peut être des scripts dans ta boite magique ?

sylvainbarbot avatar Mar 08 '16 06:03 sylvainbarbot

Hello, Est-ce que vous pensez améliorer cet aspect pour la V2 ? Ma suggestion est de ne pas charger du tout la carte tant qu'elle n'est pas demandée : j'ai pas trop regardé le code, j'ai vu que vous utilisez React mais je ne connais pas: jimagine qu'il y a moyen de faire des templates différenciés, ou au moins de charger les js pour la carte seulement pour le router (url) de la map ? Et côté optim, compresser les js et les CSS serait vraiment un plus, parce que pour exemple la page d'un événement pèse pas moins de 5Mo … connexions rapide ou pas, une page aussi chargée ça n'est pas du tout écologique ;) En tous cas bon courage :)

numahell avatar Mar 27 '17 21:03 numahell