   clear = cache.clear
 
   ###*
-  This event is [emitted]/(up.emit) before an [AJAX request](/up.ajax)
+  This event is [emitted](/up.emit) before an [AJAX request](/up.ajax)
   is starting to load.
 
   @event up:proxy:load

      slowEventEmitted = false

  ###*
  This event is [emitted]/(up.emit) when [AJAX requests](/up.ajax)
  have [taken long to finish](/up:proxy:slow), but have finished now.

  See [`up:proxy:slow`](/up:proxy:slow) for more documentation on

Caching and preloading
======================

Unpoly caches server responses for a few minutes,
making requests to these URLs return instantly.

All Unpoly functions and selectors go through this cache.
If you need to make cache-aware requests from your [custom Javascript](/up.syntax),
use [`up.ajax`](/up.ajax).

\#\#\# How the cache is cleared

The cache holds up to 70 responses for 5 minutes. You can configure the cache size and expiry using
[`up.proxy.config`](/up.proxy.config), or clear the cache manually using [`up.proxy.clear`](/up.proxy.clear).

Also the entire cache is cleared with every non-`GET` request (like `POST` or `PUT`).

\#\#\# Preloading

Unpoly also lets you speed up reaction times by [preloading
links](/up-preload) when the user hovers over the click area (or puts the mouse/finger
down). This way the response will already be cached when
the user releases the mouse/finger.

\#\#\# Spinners

You can listen to the [`up:proxy:slow`](/up:proxy:slow) event to implement a spinner
that appears during a long-running request.

@class up.proxy  
###
