There are some differences between at.js and mbox.js. This section lists some of the differences and limitations, to help you be successful with at.js.
This section contains the following information:
Because the DOM is not cleared on page load events in single-page apps like it is with traditional websites, the Insert Element and Rearrange manipulations might be reapplied multiple times depending on how the visitor navigates the SPA.
Some functions within mbox.js are not available in at.js. Internal mbox.js objects and methods (such as mbox, mboxCurrent, mboxFactoryDefault, mboxFactories, and others) are no longer supported by at.js (example: mboxFactoryDefault). This is by design, intended to discourage you from "hacking" at.js to develop unsupported functionality that over the long term can cripple an implementation and make it impossible to upgrade. The only exposed methods are covered in the API pages of this documentation. Because of this:
Because all mboxes are now asynchronous, they won't block page rendering or return in the order in which they fired.
This integration requires that the Target call is made before the Analytics call.
You can no longer assume that the offer delivered by the first mbox is going to execute before the offer delivered by your second mbox.
An mboxCreate() function at the top of the <body> will likely result in flicker of default content.