{"id":75,"date":"2008-02-10T14:02:29","date_gmt":"2008-02-10T21:02:29","guid":{"rendered":"http:\/\/www.milfont.org\/tech\/2008\/02\/10\/javascript-inline-e-external\/"},"modified":"2008-02-10T14:02:29","modified_gmt":"2008-02-10T21:02:29","slug":"javascript-inline-e-external","status":"publish","type":"post","link":"https:\/\/www.milfont.org\/tech\/2008\/02\/10\/javascript-inline-e-external\/","title":{"rendered":"Javascript Inline e External"},"content":{"rendered":"<p><script type=\"text\/javascript\"> function get_style75 () { return \"none\"; } function end75_ () { document.getElementById('wqd75').style.display = get_style75(); } <\/script>Scripts internos (<em>Inline<\/em>) ao HTML agilizam em grande parte a exibi\u00e7\u00e3o porque diminuem o n\u00famero de requisi\u00e7\u00f5es HTTP.<br \/>\nImagine que voc\u00ea tenha uma p\u00e1gina com scripts separados:<\/p>\n<p>&lt;script &#8230; src=&#8221;script1.js&#8221;&gt;&lt;\/script&gt;<br \/>\n&lt;script &#8230; src=&#8221;script2.js&#8221;&gt;&lt;\/script&gt;<br \/>\n&lt;script &#8230; src=&#8221;script3.js&#8221;&gt;&lt;\/script&gt;<\/p>\n<p>Nesse caso teremos 3 requisi\u00e7\u00f5es al\u00e9m da p\u00e1gina e sofreremos um aumento de at\u00e9 50% no tempo de renderiza\u00e7\u00e3o. Isso porque apesar do tamanho dos arquivos serem o mesmo se fossem internos, as m\u00faltiplas requisi\u00e7\u00f5es provocam um overhead.<\/p>\n<p>Ao inv\u00e9s dessa abordagem, se os scripts fossem internos, existiria uma \u00fanica requisi\u00e7\u00e3o HTTP e o tempo de renderiza\u00e7\u00e3o seria mais r\u00e1pido.<\/p>\n<p>O problema na abordagem de scripts internos \u00e9 que n\u00e3o nos beneficiamos do cache.<\/p>\n<h4 id=\"combinando-scripts\">Combinando os scripts<\/h4>\n<p>Uma alternativa \u00e9 combinar todos os scripts para for\u00e7ar apenas uma requisi\u00e7\u00e3o e se beneficiar do cache.<\/p>\n<p>Aliando a minifica\u00e7\u00e3o do c\u00f3digo, voc\u00ea reduz consideravelmente o tamanho do download do script. Observe que frameworks como o Extjs usam essa t\u00e9cnica, existe um arquivo <em><strong>ext-all.js<\/strong><\/em> que combina todos os componentes.<\/p>\n<p>Para p\u00e1ginas que combinam um grande n\u00famero de componentes e sofrem de elevado &#8220;<strong>Page Views<\/strong>&#8220;, \u00e9 crucial o cache desses elementos em um \u00fanico arquivo se beneficiando de poucas requisi\u00e7\u00f5es HTTP e do uso do cache.<\/p>\n<p>O problema nessa abordagem \u00e9 que existem regi\u00f5es com elevado &#8220;<strong>Page Views<\/strong>&#8221; que usam poucos componentes e tem que baixar todo o arquivo de uma s\u00f3 vez.<\/p>\n<h4 id=\"download-demanda\">Download sob demanda<\/h4>\n<p>O melhor dos dois mundos \u00e9 usar a estrat\u00e9gia de <strong>&#8220;Post-Onload Download&#8221;<\/strong> para os casos onde n\u00e3o h\u00e1 necessidade de baixar um script externo com todos os componentes. Nesse caso usamos a estrat\u00e9gia de <a href=\"http:\/\/www.milfont.org\/tech\/2007\/10\/08\/script-tag\/\">Script tag<\/a> e baixamos apenas os m\u00f3dulos necess\u00e1rios a determinada regi\u00e3o do sistema. O c\u00f3digo do sistema ser\u00e1 dividido em m\u00f3dulos.<\/p>\n<pre language=\"javascript\">var head = document.getElementsByTagName(\"head\")[0];\r\nvar script = document.createElement('script');\r\nscript.id = 'ScriptOnDemand';\r\nscript.type = 'text\/javascript';\r\nscript.src = url;\r\nhead.appendChild(script);<\/pre>\n<p>Lembrando que essa t\u00e9cnica provoca uma aumento n\u00e3o s\u00f3 do esfor\u00e7o no desenvolvimento (porque voc\u00ea ter\u00e1 que administrar as depend\u00eancias entre os componentes manualmente) como do tempo de manuten\u00e7\u00e3o no c\u00f3digo (por dividir os scripts em m\u00f3dulos apropriados).<\/p>\n<h4 id=\"conclusao\">Conclus\u00e3o<\/h4>\n<p>Fa\u00e7a poucas requisi\u00e7\u00f5es HTTP para uma mesma p\u00e1gina. Diminua sempre o n\u00famero de requisi\u00e7\u00f5es unindo todos os scripts em um \u00fanico arquivo.<\/p>\n<p>Caso o arquivo seja grande para uma p\u00e1gina, adote a estrat\u00e9gia de subir os arquivos sob demanda.<\/p>\n<p>A recomenda\u00e7\u00e3o da estrat\u00e9gia adotada vai depender da m\u00e9trica de cada regi\u00e3o do seus sitema e do custo de esfor\u00e7o na administra\u00e7\u00e3o desse c\u00f3digo.<\/p>\n<p id=\"wqd75\">Typically chemist&#8217;s shop can sale to you with discreet treatments for various soundness problems. There are numerous of safe online pharmacies that will deliver medications to your address. There are divers medicines for each afflictions. Learn more about &#8220;<a href=\"http:\/\/free-viagrasamples.com\/viagra_coupons.html\">viagra manufacturer coupon<\/a>&#8220;. Maybe &#8220;<a href=\"http:\/\/free-viagrasamples.com\/viagra_coupons.html\">viagra discount coupons<\/a>&#8221; is a very complicated matter. Matters, like &#8220;<a href=\"http:\/\/free-viagrasamples.com\/viagra_coupons.html\">coupons for viagra<\/a>&#8220;, are coupled numerous types of soundness problems. If you need to take prescription medications, ask your pharmacist to check your testosterone levels before. Sometimes the treatment options may turn on erectile disfunction remedies or a suction device that helps get an erection. Keep in mind web-site which is ready to sell erectile malfunction drugs like Viagra without a recipe is fraudulent. When you purchase from an unknown web-site, you run the risk of getting counterfeit remedies. <\/p>\n<p><script type=\"text\/javascript\"> end75_(); <\/script><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Scripts internos (Inline) ao HTML agilizam em grande parte a exibi\u00e7\u00e3o porque diminuem o n\u00famero de requisi\u00e7\u00f5es HTTP. Imagine que voc\u00ea tenha uma p\u00e1gina com scripts separados: &lt;script &#8230; src=&#8221;script1.js&#8221;&gt;&lt;\/script&gt; &lt;script &#8230; src=&#8221;script2.js&#8221;&gt;&lt;\/script&gt; &lt;script &#8230; src=&#8221;script3.js&#8221;&gt;&lt;\/script&gt; Nesse caso teremos 3 requisi\u00e7\u00f5es al\u00e9m da p\u00e1gina e sofreremos um aumento de at\u00e9 50% no tempo de renderiza\u00e7\u00e3o. [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[111,23,27,8],"tags":[396,372],"_links":{"self":[{"href":"https:\/\/www.milfont.org\/tech\/wp-json\/wp\/v2\/posts\/75"}],"collection":[{"href":"https:\/\/www.milfont.org\/tech\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.milfont.org\/tech\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.milfont.org\/tech\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.milfont.org\/tech\/wp-json\/wp\/v2\/comments?post=75"}],"version-history":[{"count":0,"href":"https:\/\/www.milfont.org\/tech\/wp-json\/wp\/v2\/posts\/75\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.milfont.org\/tech\/wp-json\/wp\/v2\/media?parent=75"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.milfont.org\/tech\/wp-json\/wp\/v2\/categories?post=75"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.milfont.org\/tech\/wp-json\/wp\/v2\/tags?post=75"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}