Bonjour � toutes et � tous,

Comme �voqu� dans l'intitul�, je viens vers vous non pas pour un probl�me technique mais plut�t pour recueillir votre avis sur une possible optimisation entre JS et l'actualisation d'affichage d'�l�ments (HTML/CSS).


Prenons un exemple :

Soit une grille de taille 100 par 200 o� chaque cellules contient une couleur.
Cette grille pourrait �tre affich�e en HTML/CSS via une <table> (et les balises qui en d�coulent tel que <tr> ou encore<td>), dans chaque cellule de cette table on appliquerait le style, le background-color par exemple, repr�sentant notre grille de d�part pr�sent dans notre script JS sous forme de tableau classique (Array).

Imaginons � pr�sent une fonction modifiant z�ro, une ou plusieurs cellule(s), on entend par l� "modifier sa couleur". Cette fonction peut �tre un automate cellulaire par exemple.
Une telle fonction peut donc, dans notre cas, modifier de 0 � 20'000 cellules.

La probl�matique pour obtenir la meilleure optimisation (de temps) �tant :
Doit-on mettre � jour (modification du style) une � une chaque cellule m�me si sa couleur est inchang�e
ou bien
Doit-on m�moriser les cellules ayant subi des changements puis mettre uniquement ces derni�res � jour ?

Autrement dit, en reprenant notre exemple de grille, imaginons que notre fonction modifie r�ellement la couleur de 1'000 de nos 20'000 cellules. Est-il plus rentable de (re)modifier chaque cellule avec potentiellement une m�me couleur que la pr�c�dente (le cas pour 19'000 de nos cellules) ou bien serait-il plus rentable de m�moriser ces 1'000 cellules, dans une liste temporaire par exemple, pour ne modifier qu'elles. De m�me, quant est-il si l'on modifie r�ellement 19'000 de nos 20'000 cellules ?

Dans l'id�e, d'un c�te on applique syst�matiquement une modification visuelle (m�me inutile) de l'autre c�t� on n�cessite de cr�er une liste temporaire, de v�rifier s'il y a bien changement d'�tat/de couleur pour ajouter la cellule dans la liste des "modifi�es", puis � la fin on re-parcourt cette liste de "modifi�es" pour appliquer une modification visuelle.