Not a customer? Click the 'Start a free trial' link to begin a 30-day SaaS trial of our product and to join our community.
Existing Cisco AppDynamics customers should click the 'Sign In' button to authenticate to access the community
on 02-26-2018 09:38 AM - edited on 10-12-2018 02:32 PM by Nina.Wolinsky
Why is adrum.js loaded synchronously while adrum-ext.js is loaded asynchronously?
The JavaScript Agent is designed in two pieces to expedite loading and minimize impact.
- Adrum.js loads synchronously: This is done to avoid any miss in the EUM metrics collection. The later adrum.js is loaded, the more items can be missed (resource loads like XHR calls, for example), moreover the file size is minimal. This part of the agent kicks off the loading of adrum-ext.js, via an asynchronous call.
- Adrum-ext.js loads asynchronously: At the onload event, adrum-ext.js is fetched asynchronously specifically to not block page load. This is the code that does most of the heavy lifting. Once it has been fetched, it is cached for 24 hours on the browser. When the page has completed loading, the collected data is bundled into a beacon and sent to the EUM Cloud by adrum-ext.js. Again asynchronously.
Note: Since adrum.js is invoked synchronously, any failures in connectivity will impact the page load times directly, whereas adrum-ext.js is invoked asynchronously so the browser page load won't be blocked.
Thank you! Your submission has been received!
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form