document: Statically locating web application bugs caused by asynchronous calls Ajax becomes more and more important for web applications that care about client side user experience . It allows sending requests asynchronously , without blocking clients from continuing execution . Callback functions are only executed upon receiving the responses . While such mechanism makes browsing a smooth experience , it may cause severe problems in the presence of unexpected network latency , due to the non-determinism of asynchronism . In this paper , we demonstrate the possible problems caused by the asynchronism and propose a static program analysis to automatically detect such bugs in web applications . As client side Ajax code is often wrapped in server-side scripts , we also develop a technique that extracts client-side JavaScript code from server-side scripts . We evaluate our technique on a number of real-world web applications . Our results show that it can effectively identify real bugs . We also discuss possible ways to avoid such bugs .
doc_bio_tags: O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O