Accéder au contenu.
Menu Sympa

progliste - [progliste] Création d'une classe d'objet textarea pouvant supporter de gros volumes de texte

progliste AT framalistes.org

Objet : Liste sur la programmation tous languages, orienté déficients visuels

Archives de la liste

[progliste] Création d'une classe d'objet textarea pouvant supporter de gros volumes de texte


Chronologique Discussions  
  • From: Yannick Daniel Youalé <mailtoloco2011 AT gmail.com>
  • To: progliste AT framalistes.org
  • Subject: [progliste] Création d'une classe d'objet textarea pouvant supporter de gros volumes de texte
  • Date: Sat, 2 Sep 2023 06:43:07 +0100
  • Authentication-results: rod3.framasoft.org; dkim=pass header.d=gmail.com header.s=20221208 header.b=LMosVQM8; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (rod3.framasoft.org: domain of mailtoloco2011 AT gmail.com designates 2607:f8b0:4864:20::b2e as permitted sender) smtp.mailfrom=mailtoloco2011 AT gmail.com

Salut à tous,

Juste pour vous faire part de mon activité actuelle.

Dans le cadre de l'amélioration de ma bibliothèque d'objets graphiques
parfaitement accessible que j'ai nommé le Designer.js, je suis en
train d'apporter des amélioration à ma classe ClTextarea, qui est
sensé représenter le control textarea affichant et permettant de
modifier du texte sur plusieurs lignes.

L'amélioration sur laquelle je travaille consiste à octroyer à ce type
d'objet la capacité à recevoir et à gérer l'affichage de grande
quantité de texte, je veux dire plusieurs méga octets, cela sans que
les performances du navigateur ne s'en ressentent.

Pour information, l'élément textarea classique du html, dès que vous y
mettez plus de 100 000 caractères de texte, vous commencez à percevoir
des ralentissement.
A partir du méga octet, cela devient quasiment impratiquable.

Et cette limitation, jusqu'à maintenant est un véritable frein à
toutes les applications web que je développe embarquant un éditeur de
texte.
Notamment pour le visupad dont je vous avais parlé il y a quelques temps.


L'astuce que je tente de mettre en oeuvre, est de jouer avec le
masquage et l'affichage de lignes de telle sorte qu'elle ne dépasse
jamais le nombre de 1000 à l'intérieur du control textarea.

Les autres lignes masquées, étant conservée en mémoire dans des arrays
représentant soit les lignes masquées au dessus, soit les lignes
masquées en dessous, ne seront appelées uniquement que lorsque
nécessaire.

Bien entendu, je dois également bien calculer et conserver les valeurs
des positions actuelles et des positions virtuelles.
Par exemple, j'ai prévu des propriétés selectionStart et selectionEnd,
qui doivent renvoyer à l'extérieur de la classe les positions des
curseurs dans le texte, prenant à chaque fois en compte les écarts
créés par les textes masqués.

Il m'est par ailleurs aussi apparu que je me devais d'intercepter et
modifier le comportement des commandes telles que:
* Ctrl+origine;
* Ctrl+fin;
* Ctrl+maj+origine;
* Ctrl+maj+fin.

Pas besoin de dire qu'il s'agit là d'un exercice particulièrement
complexe, sur lequel je planche depuis déjà quatre jours.
Mais bon, je crois quand même avoir entamé la dernière ligne droite,
et profite actuellement d'une pause pour vous faire part de cet
exercice intellectuel ô combien vivifiant.

Vous vous imaginez bien que c'est le genre d'activité que l'on fait
avec minutie, en prenant tout le temps de réflexion nécessaire avant
d'écrire chaque ligne de code.

Bien souvent même, il m'arrive simplement de rester debout à côté de
mon ordinateur, à uniquement cogiter pendant plusieurs minutes afin de
trouver la meilleure option possible.

Je vais essayer de mettre à profit ce week-end pour terminer cette tache.

Salutation à vous!

Yannick Daniel Youalé


  • [progliste] Création d'une classe d'objet textarea pouvant supporter de gros volumes de texte, Yannick Daniel Youalé, 02/09/2023

Archives gérées par MHonArc 2.6.19+.

Haut de le page