кстати, если XML документ очень большой, то я бы порекомендовал ввести контроль версий этого документа.
схема примерно следующая:
есть основной xml документ с именем "main.xml"
и есть его сателлит - "version.xml"
при внесении изменений в main.xml, в документ version.xml пишется дата в тиках например, тогда содержиние version.xml будет таким:
1081962220604
(больше ничего)
- разумеется это можно делать как вручную, так и серверным скриптом.
тогда скрипт будет следующим:

Код:
ver_xml = new XML()
ver_xml._parent = this
ver_xml.load("version.xml?r"+new Date().getTime())
ver_xml.onLoad = function (ok) {
if(!ok or this.status){
return trace("loaded"+ok+" valid: " + !this.status)
}
this._parent.main_xml.last_version = this.toString()
this._parent.main_xml.load("main.xml?r="+this.toString())
delete this._parent.ver_xml
}
//
main_xml = new XML()
main_xml.onLoad = function (ok) {
if(!ok or this.status){
return trace("loaded"+ok+" valid: " + !this.status)
}
//далее процедура парсинга.
}
- сорри, я не тестил, скрипт, возможны очипятки и грубые нарушения логики %). но вродь намана.
собственно главное - принцип:
1) грузим данные о последней версии (version.xml) используя антикэш. Это маленький документ, загрузится быстро.
2) грузим основной документ (main.xml) с указанием номера версии в качестве рандомайзера - если он в кэше, загрузится быстро, если его в кэше нет, значит версия изменилась либо это первый заход юзера.