{"id":1353582,"date":"2021-09-22T14:37:53","date_gmt":"2021-09-22T21:37:53","guid":{"rendered":"https:\/\/www.esri.com\/arcgis-blog\/?post_type=blog&#038;p=1353582"},"modified":"2021-09-22T14:37:33","modified_gmt":"2021-09-22T21:37:33","slug":"performance-improvements-for-jsapi-4-21","status":"publish","type":"blog","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/mapping\/performance-improvements-for-jsapi-4-21","title":{"rendered":"Performance improvements in version 4.21 of the ArcGIS API for JavaScript"},"author":10062,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"open","ping_status":"closed","template":"","format":"standard","meta":{"_acf_changed":false,"_searchwp_excluded":""},"categories":[22941],"tags":[27491,30321,761512],"industry":[],"product":[36831,36551],"class_list":["post-1353582","blog","type-blog","status-publish","format-standard","hentry","category-mapping","tag-jsapi4","tag-performance","tag-whats-new-september-2021","product-js-api-arcgis","product-arcgis-online"],"acf":{"short_description":"Version 4.21 of the ArcGIS API for JavaScript contains performance improvements that will improve the draw time of polygon layers.","flexible_content":[{"acf_fc_layout":"content","content":"<p>Many performance improvements were introduced in <a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/release-notes\/\">version 4.21 of the ArcGIS API for JavaScript<\/a> that will decrease the draw time of your layers. These improvements have far-reaching effects across the ArcGIS ecosystem, as many of Esri&#8217;s online products \u2014 Map Viewer, Storymaps, Dashboards, Instant Apps, and Experience Builder \u2014 use the 4.x JavaScript API under the hood.<\/p>\n<p>In summary, we&#8217;ve improved draw time for layers with complex polygons (large number of vertices), large layers with many polygons, and maps with multiple graphics layers.<\/p>\n<h2>Complex polygons<\/h2>\n<p>For polygons with a large number of vertices, layer draw time has significantly improved. Behind the scenes, we added a new simplification algorithm to preprocess the geometries to optimize memory management. We&#8217;ve migrated our triangulation code to WebAssembly, which has significantly sped up the time needed to process these types of features. These improvements are specific to complex polygons, and have led to an improved draw time for these polygon features. In this example below, the Artic sea ice layer loads over 5x faster than the same layer in version 4.20.<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":1353592,"id":1353592,"title":"performance-artic","filename":"performance-artic-1.gif","filesize":131224,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/09\/performance-artic-1.gif","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/mapping\/performance-improvements-for-jsapi-4-21\/performance-artic-2","alt":"","author":"10062","description":"","caption":"A large polygon of artic sea ice loads 5x faster in version 4.21 of the ArcGIS API for JavaScript.","name":"performance-artic-2","status":"inherit","uploaded_to":1353582,"date":"2021-09-21 15:21:46","modified":"2021-09-21 15:22:39","menu_order":0,"mime_type":"image\/gif","type":"image","subtype":"gif","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":1000,"height":466,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/09\/performance-artic-1-213x200.gif","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/09\/performance-artic-1.gif","medium-width":464,"medium-height":216,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/09\/performance-artic-1.gif","medium_large-width":768,"medium_large-height":358,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/09\/performance-artic-1.gif","large-width":1000,"large-height":466,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/09\/performance-artic-1.gif","1536x1536-width":1000,"1536x1536-height":466,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/09\/performance-artic-1.gif","2048x2048-width":1000,"2048x2048-height":466,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/09\/performance-artic-1-826x385.gif","card_image-width":826,"card_image-height":385,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/09\/performance-artic-1.gif","wide_image-width":1000,"wide_image-height":466}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<p>This improvement varies layer by layer, but for most polygons with a large number of vertices, we have seen at least a 20% faster draw time.<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":1353952,"id":1353952,"title":"prism-no-outlines","filename":"prism-no-outlines.gif","filesize":262628,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/09\/prism-no-outlines.gif","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/mapping\/performance-improvements-for-jsapi-4-21\/prism-no-outlines","alt":"","author":"10062","description":"","caption":"This layer draws 50% faster with the latest updates to Map Viewer (bottom)","name":"prism-no-outlines","status":"inherit","uploaded_to":1353582,"date":"2021-09-21 17:16:00","modified":"2021-09-22 16:00:45","menu_order":0,"mime_type":"image\/gif","type":"image","subtype":"gif","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":1188,"height":1208,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/09\/prism-no-outlines-213x200.gif","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/09\/prism-no-outlines.gif","medium-width":257,"medium-height":261,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/09\/prism-no-outlines.gif","medium_large-width":768,"medium_large-height":781,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/09\/prism-no-outlines.gif","large-width":1062,"large-height":1080,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/09\/prism-no-outlines.gif","1536x1536-width":1188,"1536x1536-height":1208,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/09\/prism-no-outlines.gif","2048x2048-width":1188,"2048x2048-height":1208,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/09\/prism-no-outlines-457x465.gif","card_image-width":457,"card_image-height":465,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/09\/prism-no-outlines-1062x1080.gif","wide_image-width":1062,"wide_image-height":1080}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<h2>Large layers with many polygons<\/h2>\n<p>We&#8217;re also seeing more typical datasets benefit from the optimization work mentioned above. For feature layers with a large volume of polygons, we&#8217;ve seen about a 20% improvement in draw time.<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":1353442,"id":1353442,"title":"census-performance","filename":"census-performance.gif","filesize":95922,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/09\/census-performance.gif","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/developers\/whats-new-in-the-arcgis-api-for-javascript-version-4-21\/census-performance","alt":"","author":"4271","description":"","caption":"Comparing draw time in version 4.20 and 4.21 for  a layer with over 73,000 polygons.","name":"census-performance","status":"inherit","uploaded_to":1353412,"date":"2021-09-21 12:41:09","modified":"2021-09-21 17:45:21","menu_order":0,"mime_type":"image\/gif","type":"image","subtype":"gif","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":1000,"height":466,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/09\/census-performance-213x200.gif","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/09\/census-performance.gif","medium-width":464,"medium-height":216,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/09\/census-performance.gif","medium_large-width":768,"medium_large-height":358,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/09\/census-performance.gif","large-width":1000,"large-height":466,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/09\/census-performance.gif","1536x1536-width":1000,"1536x1536-height":466,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/09\/census-performance.gif","2048x2048-width":1000,"2048x2048-height":466,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/09\/census-performance-826x385.gif","card_image-width":826,"card_image-height":385,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/09\/census-performance.gif","wide_image-width":1000,"wide_image-height":466}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<h2>Maps with many layers<\/h2>\n<p>We&#8217;ve also added some optimizations for the way we handle maps with a large number of layers, especially those that contain multiple graphics layers. These optimizations have resulted in an improved start time and a better frame rate for smoother map panning and zooming.<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":1354102,"id":1354102,"title":"multiple-layers","filename":"multiple-layers.gif","filesize":5537999,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/09\/multiple-layers.gif","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/mapping\/performance-improvements-for-jsapi-4-21\/multiple-layers","alt":"","author":"10062","description":"","caption":"Maps with multiple layers in version 4.21 (right side) have a better panning and zooming experience, especially on mobile devices.","name":"multiple-layers","status":"inherit","uploaded_to":1353582,"date":"2021-09-21 17:39:32","modified":"2021-09-21 22:57:47","menu_order":0,"mime_type":"image\/gif","type":"image","subtype":"gif","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":600,"height":399,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/09\/multiple-layers-213x200.gif","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/09\/multiple-layers.gif","medium-width":392,"medium-height":261,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/09\/multiple-layers.gif","medium_large-width":600,"medium_large-height":399,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/09\/multiple-layers.gif","large-width":600,"large-height":399,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/09\/multiple-layers.gif","1536x1536-width":600,"1536x1536-height":399,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/09\/multiple-layers.gif","2048x2048-width":600,"2048x2048-height":399,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/09\/multiple-layers.gif","card_image-width":600,"card_image-height":399,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/09\/multiple-layers.gif","wide_image-width":600,"wide_image-height":399}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<h2>But wait, there&#8217;s more&#8230;<\/h2>\n<p>While performance improvements were a big part of the version 4.21 release, check out the <a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/release-notes\/\">Release notes<\/a> for the full list of what&#8217;s new in the ArcGIS API for JavaScript. Also, make sure you check out all the great new functionality in the September release of the Map Viewer!<\/p>\n"}],"authors":[{"ID":10062,"user_firstname":"Anne","user_lastname":"Fitz","nickname":"Anne Fitz","user_nicename":"afitz","display_name":"Anne Fitz","user_email":"afitz@esri.com","user_url":"","user_registered":"2019-10-15 00:07:57","user_description":"Anne Fitz is a Senior Product Engineer at Esri, working on the ArcGIS Maps SDK for JavaScript and ArcGIS Arcade. Her expertise primarily focuses on dynamic vector symbology (CIM symbols), data visualization, animation, ArcGIS Arcade integration, and widgets.  Anne\u2019s primary goal is to help developers succeed in building geospatial applications, providing them with the tools and knowledge they need to bring their ideas to life. She has been with Esri for over five years.","user_avatar":"<img data-del=\"avatar\" src='https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/03\/2B6A1033-465x465.jpg' class='avatar pp-user-avatar avatar-96 photo ' height='96' width='96'\/>"}],"related_articles":[{"ID":1353412,"post_author":"4271","post_date":"2021-09-22 14:38:30","post_date_gmt":"2021-09-22 21:38:30","post_content":"","post_title":"What's new in the ArcGIS API for JavaScript (version 4.21)","post_excerpt":"","post_status":"publish","comment_status":"open","ping_status":"closed","post_password":"","post_name":"whats-new-in-the-arcgis-api-for-javascript-version-4-21","to_ping":"","pinged":"","post_modified":"2024-04-12 03:58:39","post_modified_gmt":"2024-04-12 10:58:39","post_content_filtered":"","post_parent":0,"guid":"https:\/\/www.esri.com\/arcgis-blog\/?post_type=blog&#038;p=1353412","menu_order":0,"post_type":"blog","post_mime_type":"","comment_count":"2","filter":"raw"},{"ID":1353022,"post_author":"5721","post_date":"2021-09-22 10:56:11","post_date_gmt":"2021-09-22 17:56:11","post_content":"","post_title":"What's new in Map Viewer (September 2021)","post_excerpt":"","post_status":"publish","comment_status":"open","ping_status":"closed","post_password":"","post_name":"whats-new-in-map-viewer-september-2021","to_ping":"","pinged":"","post_modified":"2021-09-23 10:10:55","post_modified_gmt":"2021-09-23 17:10:55","post_content_filtered":"","post_parent":0,"guid":"https:\/\/www.esri.com\/arcgis-blog\/?post_type=blog&#038;p=1353022","menu_order":0,"post_type":"blog","post_mime_type":"","comment_count":"0","filter":"raw"}],"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/09\/blog-card.gif","wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/09\/blog-banner-1.gif"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.9 (Yoast SEO v25.9) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Performance improvements in version 4.21 of the ArcGIS API for JavaScript<\/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.esri.com\/arcgis-blog\/products\/js-api-arcgis\/mapping\/performance-improvements-for-jsapi-4-21\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Performance improvements in version 4.21 of the ArcGIS API for JavaScript\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/mapping\/performance-improvements-for-jsapi-4-21\" \/>\n<meta property=\"og:site_name\" content=\"ArcGIS Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/esrigis\/\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:site\" content=\"@ESRI\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":[\"Article\",\"BlogPosting\"],\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/mapping\/performance-improvements-for-jsapi-4-21#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/mapping\/performance-improvements-for-jsapi-4-21\"},\"author\":{\"name\":\"Anne Fitz\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/bee793ed8139187e84c18559765490fa\"},\"headline\":\"Performance improvements in version 4.21 of the ArcGIS API for JavaScript\",\"datePublished\":\"2021-09-22T21:37:53+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/mapping\/performance-improvements-for-jsapi-4-21\"},\"wordCount\":10,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#organization\"},\"keywords\":[\"jsapi4\",\"Performance\",\"what's new september 2021\"],\"articleSection\":[\"Mapping\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/mapping\/performance-improvements-for-jsapi-4-21#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/mapping\/performance-improvements-for-jsapi-4-21\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/mapping\/performance-improvements-for-jsapi-4-21\",\"name\":\"Performance improvements in version 4.21 of the ArcGIS API for JavaScript\",\"isPartOf\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#website\"},\"datePublished\":\"2021-09-22T21:37:53+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/mapping\/performance-improvements-for-jsapi-4-21#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/mapping\/performance-improvements-for-jsapi-4-21\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/mapping\/performance-improvements-for-jsapi-4-21#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.esri.com\/arcgis-blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Performance improvements in version 4.21 of the ArcGIS API for JavaScript\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#website\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/\",\"name\":\"ArcGIS Blog\",\"description\":\"Get insider info from Esri product teams\",\"publisher\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.esri.com\/arcgis-blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#organization\",\"name\":\"Esri\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2018\/04\/Esri.png\",\"contentUrl\":\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2018\/04\/Esri.png\",\"width\":400,\"height\":400,\"caption\":\"Esri\"},\"image\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/esrigis\/\",\"https:\/\/x.com\/ESRI\",\"https:\/\/www.linkedin.com\/company\/5311\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/bee793ed8139187e84c18559765490fa\",\"name\":\"Anne Fitz\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/03\/2B6A1033-465x465.jpg\",\"contentUrl\":\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/03\/2B6A1033-465x465.jpg\",\"caption\":\"Anne Fitz\"},\"description\":\"Anne Fitz is a Senior Product Engineer at Esri, working on the ArcGIS Maps SDK for JavaScript and ArcGIS Arcade. Her expertise primarily focuses on dynamic vector symbology (CIM symbols), data visualization, animation, ArcGIS Arcade integration, and widgets. Anne\u2019s primary goal is to help developers succeed in building geospatial applications, providing them with the tools and knowledge they need to bring their ideas to life. She has been with Esri for over five years.\",\"sameAs\":[\"https:\/\/www.linkedin.com\/in\/anne-fitz\"],\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/author\/afitz\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Performance improvements in version 4.21 of the ArcGIS API for JavaScript","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.esri.com\/arcgis-blog\/products\/js-api-arcgis\/mapping\/performance-improvements-for-jsapi-4-21","og_locale":"en_US","og_type":"article","og_title":"Performance improvements in version 4.21 of the ArcGIS API for JavaScript","og_url":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/mapping\/performance-improvements-for-jsapi-4-21","og_site_name":"ArcGIS Blog","article_publisher":"https:\/\/www.facebook.com\/esrigis\/","twitter_card":"summary_large_image","twitter_site":"@ESRI","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":["Article","BlogPosting"],"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/mapping\/performance-improvements-for-jsapi-4-21#article","isPartOf":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/mapping\/performance-improvements-for-jsapi-4-21"},"author":{"name":"Anne Fitz","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/bee793ed8139187e84c18559765490fa"},"headline":"Performance improvements in version 4.21 of the ArcGIS API for JavaScript","datePublished":"2021-09-22T21:37:53+00:00","mainEntityOfPage":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/mapping\/performance-improvements-for-jsapi-4-21"},"wordCount":10,"commentCount":0,"publisher":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#organization"},"keywords":["jsapi4","Performance","what's new september 2021"],"articleSection":["Mapping"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/mapping\/performance-improvements-for-jsapi-4-21#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/mapping\/performance-improvements-for-jsapi-4-21","url":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/mapping\/performance-improvements-for-jsapi-4-21","name":"Performance improvements in version 4.21 of the ArcGIS API for JavaScript","isPartOf":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#website"},"datePublished":"2021-09-22T21:37:53+00:00","breadcrumb":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/mapping\/performance-improvements-for-jsapi-4-21#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/mapping\/performance-improvements-for-jsapi-4-21"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/js-api-arcgis\/mapping\/performance-improvements-for-jsapi-4-21#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.esri.com\/arcgis-blog\/"},{"@type":"ListItem","position":2,"name":"Performance improvements in version 4.21 of the ArcGIS API for JavaScript"}]},{"@type":"WebSite","@id":"https:\/\/www.esri.com\/arcgis-blog\/#website","url":"https:\/\/www.esri.com\/arcgis-blog\/","name":"ArcGIS Blog","description":"Get insider info from Esri product teams","publisher":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.esri.com\/arcgis-blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.esri.com\/arcgis-blog\/#organization","name":"Esri","url":"https:\/\/www.esri.com\/arcgis-blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2018\/04\/Esri.png","contentUrl":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2018\/04\/Esri.png","width":400,"height":400,"caption":"Esri"},"image":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/esrigis\/","https:\/\/x.com\/ESRI","https:\/\/www.linkedin.com\/company\/5311\/"]},{"@type":"Person","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/bee793ed8139187e84c18559765490fa","name":"Anne Fitz","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/image\/","url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/03\/2B6A1033-465x465.jpg","contentUrl":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/03\/2B6A1033-465x465.jpg","caption":"Anne Fitz"},"description":"Anne Fitz is a Senior Product Engineer at Esri, working on the ArcGIS Maps SDK for JavaScript and ArcGIS Arcade. Her expertise primarily focuses on dynamic vector symbology (CIM symbols), data visualization, animation, ArcGIS Arcade integration, and widgets. Anne\u2019s primary goal is to help developers succeed in building geospatial applications, providing them with the tools and knowledge they need to bring their ideas to life. She has been with Esri for over five years.","sameAs":["https:\/\/www.linkedin.com\/in\/anne-fitz"],"url":"https:\/\/www.esri.com\/arcgis-blog\/author\/afitz"}]}},"text_date":"September 22, 2021","author_name":"Anne Fitz","author_page":"https:\/\/www.esri.com\/arcgis-blog\/author\/afitz","custom_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/09\/blog-banner-1.gif","primary_product":"ArcGIS Maps SDK for JavaScript","tag_data":[{"term_id":27491,"name":"jsapi4","slug":"jsapi4","term_group":0,"term_taxonomy_id":27491,"taxonomy":"post_tag","description":"","parent":0,"count":111,"filter":"raw"},{"term_id":30321,"name":"Performance","slug":"performance","term_group":0,"term_taxonomy_id":30321,"taxonomy":"post_tag","description":"","parent":0,"count":29,"filter":"raw"},{"term_id":761512,"name":"what's new september 2021","slug":"whats-new-september-2021","term_group":0,"term_taxonomy_id":761512,"taxonomy":"post_tag","description":"","parent":0,"count":27,"filter":"raw"}],"category_data":[{"term_id":22941,"name":"Mapping","slug":"mapping","term_group":0,"term_taxonomy_id":22941,"taxonomy":"category","description":"","parent":0,"count":2683,"filter":"raw"}],"product_data":[{"term_id":36831,"name":"ArcGIS Maps SDK for JavaScript","slug":"js-api-arcgis","term_group":0,"term_taxonomy_id":36831,"taxonomy":"product","description":"","parent":36601,"count":361,"filter":"raw"},{"term_id":36551,"name":"ArcGIS Online","slug":"arcgis-online","term_group":0,"term_taxonomy_id":36551,"taxonomy":"product","description":"","parent":0,"count":2420,"filter":"raw"}],"primary_product_link":"https:\/\/www.esri.com\/arcgis-blog\/?s=#&products=js-api-arcgis","_links":{"self":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/blog\/1353582","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/blog"}],"about":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/types\/blog"}],"author":[{"embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/users\/10062"}],"replies":[{"embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/comments?post=1353582"}],"version-history":[{"count":0,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/blog\/1353582\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/media?parent=1353582"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/categories?post=1353582"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/tags?post=1353582"},{"taxonomy":"industry","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/industry?post=1353582"},{"taxonomy":"product","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/product?post=1353582"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}