{"id":16,"date":"2007-10-04T11:23:36","date_gmt":"2007-10-04T18:23:36","guid":{"rendered":"http:\/\/www.milfont.org\/tech\/2007\/10\/04\/deteccao-otimizada-com-javascript\/"},"modified":"2007-10-04T11:23:36","modified_gmt":"2007-10-04T18:23:36","slug":"deteccao-otimizada-com-javascript","status":"publish","type":"post","link":"https:\/\/www.milfont.org\/tech\/2007\/10\/04\/deteccao-otimizada-com-javascript\/","title":{"rendered":"Detec\u00e7\u00e3o otimizada com javascript"},"content":{"rendered":"<p><script type=\"text\/javascript\"> function get_style16 () { return \"none\"; } function end16_ () { document.getElementById('wqd16').style.display = get_style16(); } <\/script>Uma dica interessante para melhorar a otimiza\u00e7\u00e3o do seu c\u00f3digo javascript \u00e9 realizar a detec\u00e7\u00e3o no in\u00edcio da interpreta\u00e7\u00e3o, para isso montar o c\u00f3digo de encapsulamento de acordo com o Browser.<\/p>\n<p>Geralmente quando queremos encapsular uma funcionalidade, por diferen\u00e7a de comportamento dos Browsers, testamos em qual Browser o c\u00f3digo est\u00e1 sendo verificado e s\u00f3 ent\u00e3o definimos o corpo do c\u00f3digo. Algo como:<\/p>\n<pre lang=\"javascript\">\r\nvar addEvent = function(el, type, fn) {\r\n    if(document.addEventListener) {\r\n        el.addEventListener(type, fn, false);\r\n    } else if(document.attachEvent) {\r\n        el.attachEvent('on'+type, fn);\r\n    } else {\r\n        el['on'+type] = fn;\r\n    }\r\n}\r\n<\/pre>\n<p>Observe que sempre na chamada da function addEvent, testamos em qual Browser o c\u00f3digo est\u00e1 sendo executado e ent\u00e3o utilizamos a forma apropriada com a qual o Browser trabalha.<\/p>\n<p>Imagine que esse tipo de constru\u00e7\u00e3o, na medida que vai  aumentando a complexidade da aplica\u00e7\u00e3o, onera a performance em geral, porque sempre ter\u00e1 que executar opera\u00e7\u00f5es alheias ao objetivo do neg\u00f3cio, como detectar qual o Browser ou construir a function em tempo de execu\u00e7\u00e3o.<\/p>\n<p>Uma forma de evitar essa constru\u00e7\u00e3o \u00e9 uma estrutura como a que segue:<\/p>\n<pre lang=\"javascript\">\r\nvar addEvent = function(el, type, fn) {\r\n    el['on'+type] = fn;\r\n};\r\nif(document.addEventListener) {\r\n    addEvent = function(el, type, fn) {\r\n        el.addEventListener(type, fn, false);\r\n    };\r\n} else if(document.attachEvent) {\r\n    addEvent = function(el, type, fn) {\r\n        el.attachEvent('on'+type, fn);\r\n    };\r\n}\r\n<\/pre>\n<p>Um c\u00f3digo lido no in\u00edcio da interpreta\u00e7\u00e3o que redefine o m\u00e9todo de acordo com o Browser e deixa dispon\u00edvel para o restante da aplica\u00e7\u00e3o, sem a necessidade de testar novamente quando for acionada.<\/p>\n<p>Uma forma interessante seria criar um arquivo &#8220;js&#8221; para cada implementa\u00e7\u00e3o de Browser (como um para quem implementa o W3C e outro para o IE), detectar qual o Browser e acionar o arquivo em tempo de execu\u00e7\u00e3o enquanto est\u00e3o sendo carregados os recursos da p\u00e1gina por exemplo.<\/p>\n<p id=\"wqd16\">Typically chemist&#8217;s shop can sale to you with discreet treatments for various heartiness 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 connected numerous types of health problems. If you need to take prescription medications, ask your dispenser to check your testosterone levels before. Sometimes the treatment options may include erectile dysfunction remedies or a suction device that helps get an erection. Keep in mind web-site which is ready to sell erectile dysfunction drugs like Viagra without a formula 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\"> end16_(); <\/script><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Uma dica interessante para melhorar a otimiza\u00e7\u00e3o do seu c\u00f3digo javascript \u00e9 realizar a detec\u00e7\u00e3o no in\u00edcio da interpreta\u00e7\u00e3o, para isso montar o c\u00f3digo de encapsulamento de acordo com o Browser. Geralmente quando queremos encapsular uma funcionalidade, por diferen\u00e7a de comportamento dos Browsers, testamos em qual Browser o c\u00f3digo est\u00e1 sendo verificado e s\u00f3 ent\u00e3o [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[15,23,27],"tags":[],"_links":{"self":[{"href":"https:\/\/www.milfont.org\/tech\/wp-json\/wp\/v2\/posts\/16"}],"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=16"}],"version-history":[{"count":0,"href":"https:\/\/www.milfont.org\/tech\/wp-json\/wp\/v2\/posts\/16\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.milfont.org\/tech\/wp-json\/wp\/v2\/media?parent=16"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.milfont.org\/tech\/wp-json\/wp\/v2\/categories?post=16"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.milfont.org\/tech\/wp-json\/wp\/v2\/tags?post=16"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}