The GA API is written such that ga.js can load after the _gaq.push() calls are made. This lets you stick ga.js at the bottom of the page and put as much tracking code as you want before that.

If ga.js is not finished loading when the links are clicked, the hitCallback won't run. On mozilla.org ga.js takes about 200 ms to load, so this is not an issue. If ga.js fails to load (DNS or some other web catastrophe) the hitCallback will never run and outbound links won't load.

The setTimeout method avoids those issues at the expense of potentially losing tracked clicks and being a little slower. You can tell if ga.js finished loading by the _gat variable, so something like this might be the safest option:

```javascript
if (_gat) {
  // do the hitCallback method
} else {
  // do the timeout method
}
```