{"id":278,"date":"2008-09-19T08:00:10","date_gmt":"2008-09-19T06:00:10","guid":{"rendered":"http:\/\/nyams.planbweb.com\/blog\/?p=278"},"modified":"2008-09-19T08:00:10","modified_gmt":"2008-09-19T06:00:10","slug":"astuces-javascript-pour-mieux-debugger-votre-site","status":"publish","type":"post","link":"https:\/\/nyamsprod.com\/blog\/astuces-javascript-pour-mieux-debugger-votre-site\/","title":{"rendered":"Astuces Javascript pour mieux d\u00e9bugger votre site"},"content":{"rendered":"<div class=\"message warning\">\n<p><strong>Attention:<\/strong> Les informations de ce billet sont susceptibles d'&ecirc;tre obsol&egrave;tes car vieux de plus 2 ans.<\/p>\n<p><strong>Warning: <\/strong> The information you are reading may be obsolete, this post was published more than 2 years ago.<\/p>\n<\/div><p>Quelque soit votre niveau de connaissance en CSS ou en javascript, en tant que d\u00e9veloppeur, vous vous \u00eates s\u00fbrement retrouv\u00e9s devant le cas o\u00f9 vous deviez recharger votre site pour observer le r\u00e9sultat de vos modifications. Et bien voici un script javascript simple qui va vous faciliter la vie.<!--more--><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignleft size-medium wp-image-283\" title=\"gift_surprise\" src=\"http:\/\/www.nyamsprod.com\/blog\/wp-content\/uploads\/2008\/09\/gift_surprise-300x300.jpg\" alt=\"\" width=\"300\" height=\"300\" srcset=\"https:\/\/nyamsprod.com\/blog\/wp-content\/uploads\/2008\/09\/gift_surprise-300x300.jpg 300w, https:\/\/nyamsprod.com\/blog\/wp-content\/uploads\/2008\/09\/gift_surprise-150x150.jpg 150w, https:\/\/nyamsprod.com\/blog\/wp-content\/uploads\/2008\/09\/gift_surprise.jpg 400w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><a title=\"Firebug, la Rolls Royce du Debug\" lang=\"en\" href=\"http:\/\/getfirebug.com\/\">Quelque<\/a> <a title=\"Le Debug vue par l'\u00e9quipe d'Opera\" lang=\"en\" href=\"http:\/\/www.opera.com\/products\/dragonfly\/\">soit<\/a> <a title=\"D\u00e9bloquer le menu de Debug sous Safari\" lang=\"fr\" href=\"http:\/\/regagnon.com\/blog\/2008\/02\/10\/debloquer-le-menu-debug-sous-safari\/\">l&#8217;outil<\/a> <a title=\"Internet Explorer 8 ne restera pas sur la touche pour le debug\" lang=\"en\" href=\"http:\/\/blogs.msdn.com\/ie\/archive\/2008\/09\/11\/introducing-the-ie8-developer-tools-jscript-profiler.aspx\">performant <\/a>que vous utilisez pour corriger vos bugs, in fine, pour pouvoir observer le r\u00e9sultat de vos diverses corrections et am\u00e9liorations, vous \u00eates oblig\u00e9s de recharger votre page pour r\u00e9cup\u00e9rer les versions les plus r\u00e9centes de vos scripts. En re-lisant <a title=\"Comment changer le CSS d'une page en utilisant le DOM\" lang=\"fr\" href=\"http:\/\/nyams.planbweb.com\/tutorial-dom-13.html\">mon didactitiel sur le javascript<\/a>, une id\u00e9e simple m&#8217;a travers\u00e9 l&#8217;esprit. Et si, au lieu de toujours recharger ma page enti\u00e8re, comprenant le HTML, le CSS et le javascript,\u00a0 je ne chargeais que les fichiers qui ont \u00e9t\u00e9 modifi\u00e9s , c&#8217;est-\u00e0-dire, les scripts javascript et\/ou les feuilles de style externes. Cela me permettrait de voir la mise \u00e0 jour de ma page sans avoir \u00e0 la recharger compl\u00e8tement, une perspective int\u00e9ressante si vous \u00eates en train de coder une application Ajax, par exemple. Donc apr\u00e8s une petite r\u00e9flexion de 5 minutes et un codage encore plus rapide, je vous pr\u00e9sente le code qui va vous permettre de <strong>recharger les scripts et les feuilles de style externes d&#8217;une page web<\/strong>. C&#8217;est tellement simple et efficace que je me demande si quelqu&#8217;un n&#8217;a pas d\u00e9j\u00e0 eu cette id\u00e9e sur le net \ud83d\ude42 .<\/p>\n<pre><pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\/\/CSS reload\nvar reloadCSS = function() {\n   var l = document.getElementsByTagName(&#039;link&#039;);\n   var t = new Date().getTime();\n   var o, a;\n   for (var i = 0; o = l&#x5B;i]; i += 1) {\n        if (\/stylesheet\/i.test(o.rel) &amp;&amp; o.href) { \/\/si c&#039;est une feuille de style\n            a = o.href.replace(\/(&amp;|?)timestamp=d+\/, &#039;&#039;);\n            o.href = a + (a.indexOf(&#039;?&#039;) === -1 ? &#039;?&#039; : &#039;&amp;&#039;) + &#039;timestamp=&#039; + t;\n        }\n    }\n};\n\n\/\/Javascript reload\nvar reloadJS = function() {\n   var l = document.getElementsByTagName(&#039;script&#039;); \n   var t = new Date().getTime();\n   var o, a;\n    for (var i = 0; o = l&#x5B;i]; i += 1) {\n        if (\/javascript\/i.test(o.type) &amp;&amp; o.src) { \/\/si c&#039;est un javascript\n            a = o.src.replace(\/(&amp;|?)timestamp=d+\/, &#039;&#039;);\n            o.src = a + (a.indexOf(&#039;?&#039;) === -1 ? &#039;?&#039; : &#039;&amp;&#039;) + &#039;timestamp=&#039; + t;\n        }\n    }\n};<\/pre>\n<p>Il ne nous reste plus qu&#8217;\u00e0 rajouter dans notre page un lien ou une balise qui permettra d&#8217;appeler nos fonctions comme suit :<\/p>\n<pre><pre class=\"brush: jscript; title: ; notranslate\" title=\"\">&lt;input type=&quot;button&quot; value=&quot;recharger le CSS&quot; onclick=&quot;reloadCSS();&quot; \/&gt;\n&lt;input type=&quot;button&quot; value=&quot;recharger le javascript&quot; onclick=&quot;reloadJS();&quot; \/&gt;\n&lt;input type=&quot;button&quot; value=&quot;recharger le CSS ET le javascript&quot; onclick=&quot;reloadCSS(); reloadJS();&quot; \/&gt;<\/pre>\n<p>Et voila!!! <strong>Bien s\u00fbr, une fois en production, vous n&#8217;oublierez pas de commenter les boutons<\/strong> pour les r\u00e9-utiliser au moindre debug, on ne sait jamais \ud83d\ude09 .<\/p>\n<ul>\n<li><em>A noter, le dernier bouton permet via un appel unique de mettre \u00e0 jour le CSS et le Javascript externe de votre page\/site<\/em>.<\/li>\n<li><em>Pour que le script <code>reloadJS<\/code> fonctionne il faut que votre balise <code>script<\/code> contienne l&#8217;attribut <code>type<\/code> avec la valeur recommand\u00e9e par le W3C.<\/em><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Une fonction simple pour faciliter le debug CSS et\/ou javascript de votre site<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[5],"tags":[46,135,152,253,292,334,566],"class_list":["post-278","post","type-post","status-publish","format-standard","hentry","category-web","tag-astuce","tag-css","tag-debugger","tag-html","tag-javascript","tag-librairie-javascript","tag-webdesign"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/nyamsprod.com\/blog\/wp-json\/wp\/v2\/posts\/278","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nyamsprod.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nyamsprod.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nyamsprod.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/nyamsprod.com\/blog\/wp-json\/wp\/v2\/comments?post=278"}],"version-history":[{"count":0,"href":"https:\/\/nyamsprod.com\/blog\/wp-json\/wp\/v2\/posts\/278\/revisions"}],"wp:attachment":[{"href":"https:\/\/nyamsprod.com\/blog\/wp-json\/wp\/v2\/media?parent=278"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nyamsprod.com\/blog\/wp-json\/wp\/v2\/categories?post=278"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nyamsprod.com\/blog\/wp-json\/wp\/v2\/tags?post=278"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}