{"id":33901,"date":"2019-10-31T21:55:19","date_gmt":"2019-10-31T18:55:19","guid":{"rendered":"https:\/\/prohoster.info\/blog\/cloudflare-mozilla-i-facebook-razvivayut-binaryast-dlya-uskoreniya-zagruzki-javascript\/"},"modified":"2019-10-31T21:55:19","modified_gmt":"2019-10-31T18:55:19","slug":"cloudflare-mozilla-i-facebook-razvivayut-binaryast-dlya-uskoreniya-zagruzki-javascript","status":"publish","type":"post","link":"https:\/\/prohoster.info\/es\/blog\/news\/cloudflare-mozilla-i-facebook-razvivayut-binaryast-dlya-uskoreniya-zagruzki-javascript","title":{"rendered":"Cloudflare, Mozilla y Facebook est\u00e1n desarrollando BinaryAST para acelerar la carga de JavaScript.","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Los ingenieros de las empresas Cloudflare, Mozilla, Facebook y Bloomberg <noindex><a rel=\"nofollow\" href=\"https:\/\/blog.cloudflare.com\/binary-ast\/\">se les pidi\u00f3<\/a><\/noindex> nuevo formato <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/tc39\/proposal-binary-ast\">BinaryAST<\/a><\/noindex>  para acelerar la entrega y procesamiento del c\u00f3digo JavaScript al abrir sitios en el navegador. BinaryAST traslada la fase de an\u00e1lisis sint\u00e1ctico al lado del servidor y proporciona un \u00e1rbol de sintaxis abstracto ya formado (<noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%90%D0%B1%D1%81%D1%82%D1%80%D0%B0%D0%BA%D1%82%D0%BD%D0%BE%D0%B5_%D1%81%D0%B8%D0%BD%D1%82%D0%B0%D0%BA%D1%81%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5_%D0%B4%D0%B5%D1%80%D0%B5%D0%B2%D0%BE\">AST<\/a><\/noindex>). Al recibir BinaryAST, el navegador puede pasar directamente a la etapa de compilaci\u00f3n, omitiendo el an\u00e1lisis del c\u00f3digo fuente de JavaScript. <\/p>\n<p>Para las pruebas <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/binast\/binjs-ref\">ha preparado<\/a><\/noindex> una implementaci\u00f3n de referencia, licenciada bajo MIT. Para el an\u00e1lisis se utilizan componentes de Node.js, y el c\u00f3digo para la optimizaci\u00f3n y formaci\u00f3n del AST est\u00e1 escrito en Rust. En el lado de los navegadores, el soporte<br \/>\nBinaryAST ya est\u00e1 disponible en <noindex><a rel=\"nofollow\" href=\"https:\/\/www.mozilla.org\/en-US\/firefox\/channel\/desktop\/#nightly\">versiones nocturnas<\/a><\/noindex> Firefox. El codificador en BinaryAST puede usarse tanto a nivel de herramientas del sitio final como para empaquetar scripts de sitios externos en el lado de un proxy o una red de entrega de contenido. Actualmente, ya ha comenzado el proceso de estandarizaci\u00f3n de BinaryAST por parte del grupo de trabajo <noindex><a rel=\"nofollow\" href=\"https:\/\/tc39.github.io\/\">ECMA TC39<\/a><\/noindex>, despu\u00e9s de lo cual el formato podr\u00e1 coexistir junto con los m\u00e9todos existentes de compresi\u00f3n de contenido entregado, como gzip y brotli. <\/p>\n<p><center><noindex><a rel=\"nofollow\" href=\"https:\/\/blog.cloudflare.com\/content\/images\/2019\/05\/without-binAST.png\"><img decoding=\"async\" alt=\"Cloudflare, Mozilla y Facebook est\u00e1n desarrollando BinaryAST para acelerar la carga de JavaScript.\" src=\"\/wp-content\/uploads\/2019\/05\/fdb78c6b073295f42c6ed83e0ba73dd1.png\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/center><br \/>\n<center><noindex><a rel=\"nofollow\" href=\"https:\/\/blog.cloudflare.com\/content\/images\/2019\/05\/With-BinAST.png\"><img decoding=\"async\" alt=\"Cloudflare, Mozilla y Facebook est\u00e1n desarrollando BinaryAST para acelerar la carga de JavaScript.\" src=\"\/wp-content\/uploads\/2019\/05\/457e5f127c81b8708cdc04ba0176a636.png\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/center><\/p>\n<p>Un tiempo considerable en el procesamiento de JavaScript se utiliza en la fase de carga y an\u00e1lisis del c\u00f3digo. Teniendo en cuenta que el tama\u00f1o de JavaScript que se carga en muchos sitios populares se acerca a 10 MB (por ejemplo, LinkedIn \u2014 7.2 MB, Facebook \u2014 7.1 MB, Gmail \u2014 3.9 MB), el procesamiento inicial de JavaScript introduce una demora significativa. La etapa de an\u00e1lisis en el lado del navegador tambi\u00e9n se ralentiza debido a la imposibilidad de construir completamente el AST sobre la marcha, a medida que se carga el c\u00f3digo (el navegador debe esperar a que se termine de cargar los bloques de c\u00f3digo, como el final de las funciones, para obtener la informaci\u00f3n faltante necesaria para analizar los elementos actuales).<\/p>\n<p>En parte, el problema se intenta resolver mediante la distribuci\u00f3n del c\u00f3digo en formas minimizadas y comprimidas, as\u00ed como mediante la cach\u00e9 de c\u00f3digo de bytes generado por el navegador. En los sitios modernos, el c\u00f3digo se actualiza con bastante frecuencia, por lo que la cach\u00e9 solo resuelve parcialmente el problema. Una soluci\u00f3n podr\u00eda ser WebAssembly, pero este requiere el uso de tipificaci\u00f3n expl\u00edcita en el c\u00f3digo y no se adapta bien para acelerar el procesamiento del c\u00f3digo existente en JavaScript. <\/p>\n<p>Otra opci\u00f3n es entregar c\u00f3digo binario precompilado en lugar de scripts de JavaScript, pero los desarrolladores de los motores de los navegadores se oponen, ya que el c\u00f3digo binario externo es dif\u00edcil de verificar, su procesamiento directo puede llevar a la fragmentaci\u00f3n de la web, se presentan amenazas adicionales a la seguridad y se requiere el desarrollo de un formato de c\u00f3digo binario universal.<\/p>\n<p>BinaryAST permite integrarse en el modelo actual de desarrollo y entrega de c\u00f3digo sin la necesidad de crear un nuevo c\u00f3digo binario y sin alterar el lenguaje JavaScript. El tama\u00f1o de los datos en formato BinaryAST es comparable al de un c\u00f3digo JavaScript comprimido y minimizado, y la velocidad de procesamiento aumenta notablemente al eliminar la fase de an\u00e1lisis de los textos fuente. Adem\u00e1s, el formato permite compilar a c\u00f3digo binario durante la carga de BinaryAST, sin esperar a que se complete la recepci\u00f3n de todos los datos. Asimismo, el an\u00e1lisis del lado del servidor permite excluir del resultado entregado funciones no utilizadas y c\u00f3digo innecesario, lo que en el an\u00e1lisis del lado del navegador consume tiempo tanto para el desglose como para la transferencia de tr\u00e1fico innecesario.<\/p>\n<p>Una caracter\u00edstica de BinaryAST es tambi\u00e9n la capacidad de restaurar JavaScript legible que no coincide uno a uno con la versi\u00f3n original, pero que es sem\u00e1nticamente equivalente e incluye los mismos nombres de variables y funciones (BinaryAST conserva los nombres, pero no la informaci\u00f3n sobre las posiciones en el c\u00f3digo, el formato o los comentarios). El lado negativo es la aparici\u00f3n de nuevos vectores para ataques, pero seg\u00fan los desarrolladores, son significativamente menores y m\u00e1s controlables que con el uso de alternativas, como la difusi\u00f3n de c\u00f3digo binario.<\/p>\n<p>Las pruebas de c\u00f3digo de facebook.com han demostrado que el an\u00e1lisis de JavaScript consume entre el 10 y el 15% de los recursos de CPU y que el an\u00e1lisis lleva m\u00e1s tiempo que la generaci\u00f3n de c\u00f3digo binario y la formaci\u00f3n inicial del c\u00f3digo para JIT. En el motor SpiderMonkey, el tiempo de construcci\u00f3n total del AST es de 500 a 800 ms y la aplicaci\u00f3n de BinaryAST ha permitido reducir esta cifra entre un 70 y un 90%.<br \/>\nEn general, para la mayor\u00eda de los frameworks web, el uso de BinaryAST reduce el tiempo de an\u00e1lisis de JavaScript entre un 3 y un 10% en modo sin optimizaci\u00f3n y entre un 90 y un 97% al activar el modo de ignorar funciones no utilizadas.<br \/>\nAl realizar un conjunto de pruebas de JavaScript de 1.2 MB, la implementaci\u00f3n de BinaryAST permiti\u00f3 reducir el tiempo de inicio de 338 a 314 ms en un sistema de escritorio (Intel i7) y de 2019 a 1455 ms en un dispositivo m\u00f3vil (HTC One M8).<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"link\"><\/a><\/noindex><\/p>\n<p>Fuente: <a \ncontent=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=50701\">opennet.ru<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0418\u043d\u0436\u0435\u043d\u0435\u0440\u044b \u0438\u0437 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0439 Cloudflare, Mozilla, Facebook \u0438 Bloomberg \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0438\u043b\u0438 \u043d\u043e\u0432\u044b\u0439 \u0444\u043e\u0440\u043c\u0430\u0442 BinaryAST \u0434\u043b\u044f \u0443\u0441\u043a\u043e\u0440\u0435\u043d\u0438\u044f \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0438 \u0438 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 JavaScript \u043a\u043e\u0434\u0430 \u043f\u0440\u0438 \u043e\u0442\u043a\u0440\u044b\u0442\u0438\u0438 \u0441\u0430\u0439\u0442\u043e\u0432 \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435. BinaryAST \u0432\u044b\u043d\u043e\u0441\u0438\u0442 \u0444\u0430\u0437\u0443 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0440\u0430\u0437\u0431\u043e\u0440\u0430 \u043d\u0430 \u0441\u0442\u043e\u0440\u043e\u043d\u0443 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0438 \u043f\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0443\u0436\u0435 \u0441\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0435 \u0430\u0431\u0441\u0442\u0440\u0430\u043a\u0442\u043d\u043e\u0435 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0434\u0435\u0440\u0435\u0432\u043e (AST). \u041f\u0440\u0438 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0438 BinaryAST \u0431\u0440\u0430\u0443\u0437\u0435\u0440 \u0441\u0440\u0430\u0437\u0443 \u043c\u043e\u0436\u0435\u0442 \u043f\u0435\u0440\u0435\u0439\u0442\u0438 \u043d\u0430 \u0441\u0442\u0430\u0434\u0438\u044e \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438, \u043c\u0438\u043d\u0443\u044f \u043f\u0430\u0440\u0441\u0438\u043d\u0433 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430 JavaScript. [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":25564,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-33901","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0418\u043d\u0436\u0435\u043d\u0435\u0440\u044b \u0438\u0437 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0439 Cloudflare, Mozilla, Facebook \u0438 Bloomberg \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0438\u043b\u0438 \u043d\u043e\u0432\u044b\u0439 \u0444\u043e\u0440\u043c\u0430\u0442\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/es\/blog\/news\/cloudflare-mozilla-i-facebook-razvivayut-binaryast-dlya-uskoreniya-zagruzki-javascript\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"es_ES\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47Cloudflare, Mozilla \u0438 Facebook \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u044e\u0442 BinaryAST \u0434\u043b\u044f \u0443\u0441\u043a\u043e\u0440\u0435\u043d\u0438\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 JavaScript | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0418\u043d\u0436\u0435\u043d\u0435\u0440\u044b \u0438\u0437 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0439 Cloudflare, Mozilla, Facebook \u0438 Bloomberg \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0438\u043b\u0438 \u043d\u043e\u0432\u044b\u0439 \u0444\u043e\u0440\u043c\u0430\u0442\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/es\/blog\/news\/cloudflare-mozilla-i-facebook-razvivayut-binaryast-dlya-uskoreniya-zagruzki-javascript\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T18:55:19+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T18:55:19+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Cloudflare, Mozilla y Facebook est\u00e1n desarrollando BinaryAST para acelerar la carga de JavaScript | ProHoster","description":"Ingenieros de Cloudflare, Mozilla, Facebook y Bloomberg han propuesto un nuevo formato","canonical_url":"https:\/\/prohoster.info\/es\/blog\/news\/cloudflare-mozilla-i-facebook-razvivayut-binaryast-dlya-uskoreniya-zagruzki-javascript","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"es_ES","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47Cloudflare, Mozilla \u0438 Facebook \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u044e\u0442 BinaryAST \u0434\u043b\u044f \u0443\u0441\u043a\u043e\u0440\u0435\u043d\u0438\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 JavaScript | ProHoster","og:description":"\u0418\u043d\u0436\u0435\u043d\u0435\u0440\u044b \u0438\u0437 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0439 Cloudflare, Mozilla, Facebook \u0438 Bloomberg \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0438\u043b\u0438 \u043d\u043e\u0432\u044b\u0439 \u0444\u043e\u0440\u043c\u0430\u0442","og:url":"https:\/\/prohoster.info\/es\/blog\/news\/cloudflare-mozilla-i-facebook-razvivayut-binaryast-dlya-uskoreniya-zagruzki-javascript","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T18:55:19+00:00","article:modified_time":"2019-10-31T18:55:19+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"33901","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-21 17:09:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 02:31:22","updated":"2026-01-21 17:09:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts\/33901","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/comments?post=33901"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts\/33901\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/media\/25564"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/media?parent=33901"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/categories?post=33901"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/tags?post=33901"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}