{"id":557,"date":"2026-08-09T10:03:15","date_gmt":"2026-08-09T10:03:15","guid":{"rendered":"https:\/\/habett.fr\/blog\/?p=557"},"modified":"2026-08-09T10:03:15","modified_gmt":"2026-08-09T10:03:15","slug":"js-as-tldr","status":"publish","type":"post","link":"https:\/\/habett.fr\/blog\/2026\/08\/js-as-tldr\/","title":{"rendered":"JS as TL:DR"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Le DOM en javascript, c&rsquo;est une mod\u00e9lisation du mantra \u00ab\u00a0TL:DR\u00a0\u00bb, on ne peut pratiquement rien faire avant le chargement complet de la page: <code>document.addEventListener('DOMContentLoaded')<\/code><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Reste que sleep serait n\u00e9cessaire alors que l&rsquo;on fait avec <code>setTimeout<\/code>. En web, peut-\u00eatre, mais surtout dans les add-ons, il faut parfois laisser du temps au browser pour respirer et \u00e9viter les comportements qui le freezent. On se retrouve \u00e0 encapsuler les <code>setTimeout<\/code> les uns dans les autres. J&rsquo;avoue le faire dans mon Resolvator (<a href=\"https:\/\/resolvator.droit.org\/\">https:\/\/resolvator.droit.org\/<\/a>)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Enfin, pour aujourd&rsquo;hui, apr\u00e8s avoir bien avanc\u00e9 sur mon Differactor (https:\/\/habett.fr\/Differactor.html), je dois avouer que j&rsquo;ai bien souffert dans mon dev sur le tag &lt;svg>. Contrairement \u00e0 la r\u00e8gle de principe, m\u00eame en ligne dans du HTML, sa propri\u00e9t\u00e9 <code>.nodeName<\/code> est en minuscules! Il y a bien les nodes #text et autres avec une di\u00e8se mais c&rsquo;est pas pareil du point de vue s\u00e9mantiquement. Je comprends la justification que c&rsquo;est du XML inject\u00e9 dans du markup et que les noms sont case-sensitive en XML, mais c&rsquo;est pour moi incoh\u00e9rent car sinon les tagnames en XHTML seraient en minuscules.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Peace&amp;Work<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Le DOM en javascript, c&rsquo;est une mod\u00e9lisation du mantra \u00ab\u00a0TL:DR\u00a0\u00bb, on ne peut pratiquement rien faire avant le chargement complet de la page: document.addEventListener(&lsquo;DOMContentLoaded&rsquo;) Reste que sleep serait n\u00e9cessaire alors que l&rsquo;on fait avec setTimeout. En web, peut-\u00eatre, mais surtout dans les add-ons, il faut parfois laisser du temps au browser pour respirer et \u00e9viter &hellip; <a href=\"https:\/\/habett.fr\/blog\/2026\/08\/js-as-tldr\/\" class=\"more-link\">Continuer la lecture de <span class=\"screen-reader-text\">JS as TL:DR<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1,52],"tags":[42,96,98,97],"class_list":["post-557","post","type-post","status-publish","format-standard","hentry","category-non-classe","category-xml","tag-javascript","tag-markup","tag-svg","tag-techmantras"],"_links":{"self":[{"href":"https:\/\/habett.fr\/blog\/wp-json\/wp\/v2\/posts\/557","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/habett.fr\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/habett.fr\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/habett.fr\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/habett.fr\/blog\/wp-json\/wp\/v2\/comments?post=557"}],"version-history":[{"count":8,"href":"https:\/\/habett.fr\/blog\/wp-json\/wp\/v2\/posts\/557\/revisions"}],"predecessor-version":[{"id":565,"href":"https:\/\/habett.fr\/blog\/wp-json\/wp\/v2\/posts\/557\/revisions\/565"}],"wp:attachment":[{"href":"https:\/\/habett.fr\/blog\/wp-json\/wp\/v2\/media?parent=557"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/habett.fr\/blog\/wp-json\/wp\/v2\/categories?post=557"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/habett.fr\/blog\/wp-json\/wp\/v2\/tags?post=557"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}