Aller au contenu

Utilisateur:Od1n/Développement LiveRC

Une page de Wikipédia, l'encyclopédie libre.

Goulots d'étranglement

[modifier | modifier le code]
  • lrcSetTimerElement
    • lent et appelé 15 fois par seconde, minimum
    • virer l'effet d'animation
    • ensuite utiliser une image "d'une seule ligne", et avec largeur multiple de 10 pour éliminer problème de round
    • lrcSetTimer : setTimeout 1000 + overhead + lag : des secondes peuvent sauter, réfléchir à la meilleure solution
    • et tout simplement, permettre de ne pas afficher ce compteur
  • lrcInitTableHeight
    • lent en tant que tel
    • appelé toutes les 200 ms, même lorsque non nécessaire
    • plutôt un système de throttling ?
  • un jQuery.event.fix hyper lent (100 ms) lorsque "click resize", pas encore trouvé l'origine
  • système debug qui grossit sans cesse
    • pouvoir le désactiver (et même, désactivation par défaut)
    • limiter la taille (gqueue, toutça)
    • en plus il est difficilement utilisable en l'état (scroll de m**)
  • LiveRC_SetCheckListPosition
    • exécuté en rafale (mouse hover au lieu de in/out)
    • système de positionnement probablement améliorable
    • LiveRC_Config["CheckListZIndex"]++ grossit indéfiniment…

Performances démarrage

[modifier | modifier le code]
  • cache localStorage des moult contenus de catégories chargés à chaque démarrage
    • durée du cache ?
    • réfléchir à un système de cache, avec timestamp expiration, propre et avec abstraction (lscache, toutça)
  • rc_type categorize non implémenté, cf. Discussion MediaWiki:Gadget-LiveRC.js#Erreurs JavaScript dues à un nouveau rc type non implémenté
    • ajout RCtypes "categorize":"SHOWRC_CATEGORIZE_TIP"
    • ajout traductions SHOWRC_CATEGORIZE_TIP : Spécial:Index/MediaWiki:Gadget-LiveRC.js/i18n/
      • il y a 2 lignes de traduction ?
      • voir s'il y a déjà, sinon à implémenter : fallback "en" si pas de traduction locale
    • coché ou pas par défaut ? sachant que external/wikidata est décoché par défaut (d'ailleurs faut trouver où), donc éventuellement réordonner ?
    • ces lignes "changements de catégories" sont indiquées comme blanchiments (vu que taille 0)… cf. icône « gomme » tout à droite
    • rechercher les 3 rc.newlen == 0 et faire le point là dessus
      • je pense notamment au "ShowAllBlanking"
      • factorisation des déterminations "rc len 0 mais pas blanchiment" ?
      • ajout d'un rc state CATEGORIZE ?
    • ajout sécurités pour ne pas planter à nouveau en cas de modif API ultérieure
      • quoique, c'est un moyen de repérer les mises à jour à effectuer Émoticône
    • par ailleurs, logique à voir : si la RC a plusieurs types, elle ne devrait pas être masquée si tous ses types ne sont pas décochés
    • rapport aux !lrcHasState(state, "FLOW") etc. : 107844538
  • la checkbox "RC > Modifications sur Wikidata" semble ineffective ?
  • aussi un machin "lang chépplusquoi" non défini
  • une catégorie qui a été renommée, cf. Utilisateur:Od1n/TODO#JavaScript
  • la technique Math.round(foobar*100)/100 peut donner de faux résultats, cf. http://www.jacklmoore.com/notes/rounding-in-javascript/

Autres améliorations

[modifier | modifier le code]
  • passer l'ajax en format JSON : plus simple, probablement plus performant
  • lorsqu'un abusefilter est déclenché, la taille des modifications n'est pas affichée (il n'y a pas non plus le résumé de diff, les balises, etc.)
  • pour faire suite à cette modif, éventuellement implémenter espaces insécables avant les deux-points ?
    • 1er dans le LiveRC.js (cf. diff supra)
    • 2nd dans le MediaWiki:Gadget-LiveRCSiteConfig.js ("abusefilter-edit-warn-actions")
    • bien entendu, la question est de triple-check que cela n'introduit pas de problème
  • panneau de config > bouton "Configuration MW" :
    • confirmation avant exécution ?
    • peut-être des tris à appliquer, pour éviter ceci : 126705385
  • ajout fonctionnalité : filtre/checkbox utilisateurs autoconfirmed (actuellement il n'y a que autopatrolled)
  • variable DisableElementTimer inutilisée dans la fonction lrcEnableLink (leftover copier-coller je présume, mais à confirmer)
clearTimeout(LiveRC_Config["Timeout"]["RCRequest"]);

clearTimeout(LiveRC_Config["Timeout"]["Timer"]);

clearTimeout(LiveRC_Config["Timeout"]["InitTableHeight"]);