The document discusses techniques for building smart asynchronous functions for mobile applications. It describes typical asynchronous functions like getJSON and problems with requiring HTTP requests and network connections. It then outlines objectives like minimizing requests and working offline. The document proposes techniques like caching, queuing, merging and filtering requests. It demonstrates using decorators to enhance asynchronous functions without changing their signatures and delegating functionality to utility objects like caches and queues.