As the concept of pages is not applicable with most AJAX applications, it can be difficult to determine when to allow sequential Web page actions. The major problem that automation and testing tools run into is synchronization: Parts of a page may be visible but not yet functional. For example, you might click a button or link and nothing happens, or incorrect behavior occurs. This is usually not an issue for a human user because they can simply perform the action again. Being slower than automation tools, users are often not even aware of such problems.
With the browser-driven approach, Silk Performer uses a sophisticated technique for determining when a Web page is ready for a subsequent action. This AJAX mode synchronization waits for the browser to be in an idle state. This is especially useful for AJAX applications or pages that contain AJAX components. Using the AJAX mode eliminates the need for manual scripting of synchronization functions (for example, such as waiting for an object to appear/disappear, waiting for a specific property value), which dramatically eases the script development process. This automatic synchronization is also the basis for successful record and replay that does not require manual script customization.
Because of the true asynchronous nature of AJAX, generally there is no true browser idle state. Therefore, in some situations, it is possible that Silk Performer will not recognize the end of an invoked method call and will throw a timeout error after the specified timeout period.