{"id":4,"date":"2006-05-18T12:43:54","date_gmt":"2006-05-18T10:43:54","guid":{"rendered":"https:\/\/omatech.com\/omabloc\/2006\/05\/18\/ie-javascript-i-els-memory-leaks\/"},"modified":"2016-10-18T00:10:37","modified_gmt":"2016-10-17T22:10:37","slug":"ie-javascript-i-els-memory-leaks","status":"publish","type":"post","link":"https:\/\/www.omatech.com\/blog\/2006\/05\/18\/ie-javascript-i-els-memory-leaks\/","title":{"rendered":"IE, Javascript i els memory leaks"},"content":{"rendered":"<p>De vegades, en el desenvolupament d&#8217;una web, ens podem trobar amb misteris estranyament resolubles. La resoluci\u00f3 dels problemes est\u00e0 lligada a la consci\u00e8ncia de la seva exist\u00e8ncia i tot plegat pot esdevenir en hores d&#8217;investigaci\u00f3 perdudes&#8230; o no.<\/p>\n<p>Aquest \u00e9s justament el cas amb que ens vam trobar en un darrer desenvolupament.  La navegaci\u00f3 per la web era fluida amb Firefox i Internet Explorer, per\u00f2 passava a ser excessivament lenta en el segon despr\u00e9s d&#8217;algunes interaccions.<\/p>\n<p>Despr\u00e9s de diverses proves, vaig trobar quelcom interessant a <a title=\"Javascript closures\" href=\"http:\/\/www.bazon.net\/mishoo\/articles.epl?art_id=824\">IE: Where&#8217;s my memory?<\/a>. Segons sembla, Internet Explorer no manega correctament els <em>closures<\/em> a Javascript de forma que el <em>garbage collector<\/em> autom\u00e0tic emprat per l&#8217;ECMAScript no funciona com cal al navegador de Microsoft. Podem trobar una bona explicaci\u00f3 de qu\u00e8 \u00e9s un <em>closure<\/em> a <a title=\"Javascript closures\" href=\"http:\/\/www.bazon.net\/mishoo\/articles.epl?art_id=824\">IE: Where&#8217;s my memory?<\/a> o a <a title=\"Javascript closures\" href=\"http:\/\/jibbering.com\/faq\/faq_notes\/closures.html\">Javascript Closures<\/a>.<\/p>\n<p>Un cop dutes a terme les diferents solucions proposades a ambd\u00f3s llocs, la navegaci\u00f3 era lleugerament m\u00e9s fluida, per\u00f2 el problema seguia existint. Qu\u00e8 podia ser llavors? Finalment, a for\u00e7a del que es podria considerar com <em>isolate-your-code-developing<\/em>, vaig donar amb el problema i, com passa sovint, resultava ser menys important del que podr\u00edem pensar (ai, ara \u00e9s f\u00e0cil dir-ho&#8230;). A la web s&#8217;emprava un javascript amb un tag d&#8217;inici com ara aquest:<\/p>\n<pre><code>&lt;script language=\"javascript\"&gt;<\/code><\/pre>\n<p>En canvi, segons les <a title=\"L'element SCRIPT en HTML\" href=\"http:\/\/www.w3.org\/TR\/html4\/interact\/scripts.html\">especificacions de l&#8217;W3C<\/a> l&#8217;atribut <em>language<\/em> est\u00e0 en des\u00fas i, en el seu lloc, insten a utilitzar l&#8217;atribut <em>type<\/em> que, d&#8217;altra banda, \u00e9s obligatori. Aix\u00ed, el tag d&#8217;inici correcte \u00abm\u00ednim\u00bb hauria de ser <\/p>\n<pre><code>&lt;script type=\"text\/javascript\"&gt;<\/code><\/pre>\n<p>Aquest canvi resol, finalment, el problema plantejat.<\/p>\n<p>Aquest \u00e9s un bon exemple de com un error aparentment simple pot provocar m\u00e9s d&#8217;un maldecap, de la import\u00e0ncia de seguir les especificacions i els est\u00e0ndards, i de com, en la resoluci\u00f3 d&#8217;un problema, hom pot aprendre coses que, en principi, no sempre han de estar relacionades amb ell.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>De vegades, en el desenvolupament d&#8217;una web, ens podem trobar amb misteris estranyament resolubles. La resoluci\u00f3 dels problemes est\u00e0 lligada a la consci\u00e8ncia de la seva exist\u00e8ncia i tot plegat pot esdevenir en hores d&#8217;investigaci\u00f3 perdudes&#8230; o no. Aquest \u00e9s justament el cas amb que ens vam trobar en un darrer desenvolupament. La navegaci\u00f3 per<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":{"0":"post-4","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-omatech"},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.4 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>IE, Javascript i els memory leaks - El blog de Omatech<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.omatech.com\/blog\/2006\/05\/18\/ie-javascript-i-els-memory-leaks\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"IE, Javascript i els memory leaks - El blog de Omatech\" \/>\n<meta property=\"og:description\" content=\"De vegades, en el desenvolupament d&#8217;una web, ens podem trobar amb misteris estranyament resolubles. La resoluci\u00f3 dels problemes est\u00e0 lligada a la consci\u00e8ncia de la seva exist\u00e8ncia i tot plegat pot esdevenir en hores d&#8217;investigaci\u00f3 perdudes&#8230; o no. Aquest \u00e9s justament el cas amb que ens vam trobar en un darrer desenvolupament. La navegaci\u00f3 per\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.omatech.com\/blog\/2006\/05\/18\/ie-javascript-i-els-memory-leaks\/\" \/>\n<meta property=\"og:site_name\" content=\"El blog de Omatech\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/Omatech\" \/>\n<meta property=\"article:published_time\" content=\"2006-05-18T10:43:54+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2016-10-17T22:10:37+00:00\" \/>\n<meta name=\"author\" content=\"admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@omatech\" \/>\n<meta name=\"twitter:site\" content=\"@omatech\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.omatech.com\/blog\/2006\/05\/18\/ie-javascript-i-els-memory-leaks\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.omatech.com\/blog\/2006\/05\/18\/ie-javascript-i-els-memory-leaks\/\"},\"author\":{\"name\":\"admin\",\"@id\":\"https:\/\/www.omatech.com\/blog\/#\/schema\/person\/37073a8344744ae66ba1d71b45b094b0\"},\"headline\":\"IE, Javascript i els memory leaks\",\"datePublished\":\"2006-05-18T10:43:54+00:00\",\"dateModified\":\"2016-10-17T22:10:37+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.omatech.com\/blog\/2006\/05\/18\/ie-javascript-i-els-memory-leaks\/\"},\"wordCount\":323,\"publisher\":{\"@id\":\"https:\/\/www.omatech.com\/blog\/#organization\"},\"articleSection\":[\"Casos de \u00e9xito\"],\"inLanguage\":\"es\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.omatech.com\/blog\/2006\/05\/18\/ie-javascript-i-els-memory-leaks\/\",\"url\":\"https:\/\/www.omatech.com\/blog\/2006\/05\/18\/ie-javascript-i-els-memory-leaks\/\",\"name\":\"IE, Javascript i els memory leaks - El blog de Omatech\",\"isPartOf\":{\"@id\":\"https:\/\/www.omatech.com\/blog\/#website\"},\"datePublished\":\"2006-05-18T10:43:54+00:00\",\"dateModified\":\"2016-10-17T22:10:37+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.omatech.com\/blog\/2006\/05\/18\/ie-javascript-i-els-memory-leaks\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.omatech.com\/blog\/2006\/05\/18\/ie-javascript-i-els-memory-leaks\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.omatech.com\/blog\/2006\/05\/18\/ie-javascript-i-els-memory-leaks\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.omatech.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"IE, Javascript i els memory leaks\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.omatech.com\/blog\/#website\",\"url\":\"https:\/\/www.omatech.com\/blog\/\",\"name\":\"El blog de Omatech\",\"description\":\"Blog\",\"publisher\":{\"@id\":\"https:\/\/www.omatech.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.omatech.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.omatech.com\/blog\/#organization\",\"name\":\"Omatech\",\"url\":\"https:\/\/www.omatech.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.omatech.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.omatech.com\/blog\/wp-content\/uploads\/2022\/05\/logo_omatech_blog.png\",\"contentUrl\":\"https:\/\/www.omatech.com\/blog\/wp-content\/uploads\/2022\/05\/logo_omatech_blog.png\",\"width\":156,\"height\":33,\"caption\":\"Omatech\"},\"image\":{\"@id\":\"https:\/\/www.omatech.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/Omatech\",\"https:\/\/x.com\/omatech\",\"https:\/\/www.instagram.com\/omatech\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.omatech.com\/blog\/#\/schema\/person\/37073a8344744ae66ba1d71b45b094b0\",\"name\":\"admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.omatech.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/a91245ce5c4d25a615b4808a7d74ac9a2340d9b22f558f2c033a90541e54b2b6?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/a91245ce5c4d25a615b4808a7d74ac9a2340d9b22f558f2c033a90541e54b2b6?s=96&d=mm&r=g\",\"caption\":\"admin\"},\"sameAs\":[\"https:\/\/omatech.com\"],\"url\":\"https:\/\/www.omatech.com\/blog\/author\/admin\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"IE, Javascript i els memory leaks - El blog de Omatech","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.omatech.com\/blog\/2006\/05\/18\/ie-javascript-i-els-memory-leaks\/","og_locale":"es_ES","og_type":"article","og_title":"IE, Javascript i els memory leaks - El blog de Omatech","og_description":"De vegades, en el desenvolupament d&#8217;una web, ens podem trobar amb misteris estranyament resolubles. La resoluci\u00f3 dels problemes est\u00e0 lligada a la consci\u00e8ncia de la seva exist\u00e8ncia i tot plegat pot esdevenir en hores d&#8217;investigaci\u00f3 perdudes&#8230; o no. Aquest \u00e9s justament el cas amb que ens vam trobar en un darrer desenvolupament. La navegaci\u00f3 per","og_url":"https:\/\/www.omatech.com\/blog\/2006\/05\/18\/ie-javascript-i-els-memory-leaks\/","og_site_name":"El blog de Omatech","article_publisher":"https:\/\/www.facebook.com\/Omatech","article_published_time":"2006-05-18T10:43:54+00:00","article_modified_time":"2016-10-17T22:10:37+00:00","author":"admin","twitter_card":"summary_large_image","twitter_creator":"@omatech","twitter_site":"@omatech","twitter_misc":{"Escrito por":"admin","Tiempo de lectura":"2 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.omatech.com\/blog\/2006\/05\/18\/ie-javascript-i-els-memory-leaks\/#article","isPartOf":{"@id":"https:\/\/www.omatech.com\/blog\/2006\/05\/18\/ie-javascript-i-els-memory-leaks\/"},"author":{"name":"admin","@id":"https:\/\/www.omatech.com\/blog\/#\/schema\/person\/37073a8344744ae66ba1d71b45b094b0"},"headline":"IE, Javascript i els memory leaks","datePublished":"2006-05-18T10:43:54+00:00","dateModified":"2016-10-17T22:10:37+00:00","mainEntityOfPage":{"@id":"https:\/\/www.omatech.com\/blog\/2006\/05\/18\/ie-javascript-i-els-memory-leaks\/"},"wordCount":323,"publisher":{"@id":"https:\/\/www.omatech.com\/blog\/#organization"},"articleSection":["Casos de \u00e9xito"],"inLanguage":"es"},{"@type":"WebPage","@id":"https:\/\/www.omatech.com\/blog\/2006\/05\/18\/ie-javascript-i-els-memory-leaks\/","url":"https:\/\/www.omatech.com\/blog\/2006\/05\/18\/ie-javascript-i-els-memory-leaks\/","name":"IE, Javascript i els memory leaks - El blog de Omatech","isPartOf":{"@id":"https:\/\/www.omatech.com\/blog\/#website"},"datePublished":"2006-05-18T10:43:54+00:00","dateModified":"2016-10-17T22:10:37+00:00","breadcrumb":{"@id":"https:\/\/www.omatech.com\/blog\/2006\/05\/18\/ie-javascript-i-els-memory-leaks\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.omatech.com\/blog\/2006\/05\/18\/ie-javascript-i-els-memory-leaks\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.omatech.com\/blog\/2006\/05\/18\/ie-javascript-i-els-memory-leaks\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.omatech.com\/blog\/"},{"@type":"ListItem","position":2,"name":"IE, Javascript i els memory leaks"}]},{"@type":"WebSite","@id":"https:\/\/www.omatech.com\/blog\/#website","url":"https:\/\/www.omatech.com\/blog\/","name":"El blog de Omatech","description":"Blog","publisher":{"@id":"https:\/\/www.omatech.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.omatech.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Organization","@id":"https:\/\/www.omatech.com\/blog\/#organization","name":"Omatech","url":"https:\/\/www.omatech.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.omatech.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.omatech.com\/blog\/wp-content\/uploads\/2022\/05\/logo_omatech_blog.png","contentUrl":"https:\/\/www.omatech.com\/blog\/wp-content\/uploads\/2022\/05\/logo_omatech_blog.png","width":156,"height":33,"caption":"Omatech"},"image":{"@id":"https:\/\/www.omatech.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/Omatech","https:\/\/x.com\/omatech","https:\/\/www.instagram.com\/omatech\/"]},{"@type":"Person","@id":"https:\/\/www.omatech.com\/blog\/#\/schema\/person\/37073a8344744ae66ba1d71b45b094b0","name":"admin","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.omatech.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/a91245ce5c4d25a615b4808a7d74ac9a2340d9b22f558f2c033a90541e54b2b6?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/a91245ce5c4d25a615b4808a7d74ac9a2340d9b22f558f2c033a90541e54b2b6?s=96&d=mm&r=g","caption":"admin"},"sameAs":["https:\/\/omatech.com"],"url":"https:\/\/www.omatech.com\/blog\/author\/admin\/"}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.omatech.com\/blog\/wp-json\/wp\/v2\/posts\/4","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.omatech.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.omatech.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.omatech.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.omatech.com\/blog\/wp-json\/wp\/v2\/comments?post=4"}],"version-history":[{"count":1,"href":"https:\/\/www.omatech.com\/blog\/wp-json\/wp\/v2\/posts\/4\/revisions"}],"predecessor-version":[{"id":909,"href":"https:\/\/www.omatech.com\/blog\/wp-json\/wp\/v2\/posts\/4\/revisions\/909"}],"wp:attachment":[{"href":"https:\/\/www.omatech.com\/blog\/wp-json\/wp\/v2\/media?parent=4"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.omatech.com\/blog\/wp-json\/wp\/v2\/categories?post=4"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.omatech.com\/blog\/wp-json\/wp\/v2\/tags?post=4"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}