[Divers] Une liste doit être minimisée, un objet peut être gros.

Introduction


Une chose que je perds de vue quelques fois lorsque je fais une app.

Description


  • Une liste d’objets provenant de AJAX doit être limitée en nombre de colonnes pour ne pas être couteuse en temps de chargement dans le front end.
    Autrement dit, il faut éviter les SELECT table.* FROM table dans la requête SQL qui va constituer la liste.

    Pourquoi ? Parce qu’une liste doit être rapide à afficher dans le navigateur, on ne peut pas se permettre de quérir toutes les caractéristiques des objets, une liste doit être synthétique.

  • Une liste d’objet comprends toujours l’id de chaque objet, lors du clic sur un objet dans une liste, une requête AJAX unique avec le critère ID doit être exécutée, qui pourra télécharger elle toutes les caractéristiques de l’objet et de ses éventuelles jointures…
    Pourquoi ? Parce qu’un utilisateur accepte d’attendre pour lire les caractéristiques de son objet, par contre il n’accepte pas d’attendre la constitution d’une liste d’objets.

La plupart des sites et apps fonctionnent comme cela, alors pourquoi tenter de modifier ce système ?

Souvent il m’arrive de quérir l’objet dans la liste JSON, par paresse( Et de créer une méga liste JSON avec pleins de colonnes puisque cela fonctionne, surtout en one time binding…), alors qu’il faut plutôt toujours réaliser une requête AJAX qui va quérir l’objet en fonction de son ID (et surtout ses jointures, cela peut devenir énorme et ne saurait être conservé dans le gros tableau json de la liste, bien sur) sur la BDD. C’est le fonctionnement logique que tout le monde comprends, il ne faut pas contrevenir à cette rêgle, malgré les aptitudes énomes d’AngularJs à faciliter le tout …

 

Publicités