Auf Anhieb würde ich zwei Kleinigkeiten ändern.
1. Du solltest nicht nur auf Status 200 sondern auch 304 prüfen.
2. Du solltest das XMLHttpRequest-Objekt wiederverwenden, also nicht bei jedem Aufruf von "load" neu erzeugen.
Und 3. ist Geschmackssache
3. Verpacke den AJAX-Kram in eine Klasse (Dann entfällt auch 2.). Denn deine load-Methode ist im Moment nicht gut wiederzuverwenden, weil du in der onreadystatechange-Funktion festen Code hast, anstatt das irgendwie allgemeiner zu halten.
Du könntest auch der load-Funktion als dritten Parameter eine Funktion übergeben. Dann wäre das ganze schon ganz gut nutzbar.
Edit:
Mir fällt jetzt noch 4. ein:
4. Benutz doch für alles jQuery, wenn du es ohnehin schon eingebunden hast. Damit lässt sich sehr bequem AJAX betreiben.