Просмотр полной версии : Как обработать xml-файл нулевого размера?
FishBasta
14.06.2006, 18:06
Проблема в следующем:
мое приложение получает xml-файлы. Когда по какой-то ошибке приходит пустой xml-файл (0 байт) - приложение зависает.
Я проверял - в этом случае вызова функции onData не происходит совсем...
Если кто-то сталкивался с подобным, посоветуйте, пожалуйста, как быть.
Заранее спасибо!
status у xml проверь, чему равен после загрузки...
FishBasta
14.06.2006, 18:41
НЕВОЗМОЖНО. поскольку нет состояния "после загрузки"... onData не вызывается, следовательно внутрь процесса загрузки я попасть не могу
onLoad тоже не вызывается?
FishBasta
14.06.2006, 18:57
во флэше онЛоад вызывается из онДата, не вызывается даже последний!
vooparker
14.06.2006, 19:19
во флэше онЛоад вызывается из онДата, не вызывается даже последний!
А он все свое
FishBasta
14.06.2006, 19:21
здесь что, те же люди? :))
попробуй так ;) только что специально создал пустой xml и загружал.
все работает отлично.
ps. 2 _etc: прошу прощения за типизацию ;)
var xml:XML = new XML();
xml.ignoreWhite = true;
//
xml.onData = function(src:String)
{
if (src)
{
trace("onData -> SUCCESS");
}
else
{
trace("onData -> ERROR");
}
};
xml.load("test.xml");
vooparker
14.06.2006, 19:30
to FishBasta: не только люди но и ответы:)
FishBasta
14.06.2006, 19:34
не знаю... может, локально это и срабатывает, а вот с сервера - нет. Я вообще подозреваю, что это ошибка с самим трансфером по http
как вариант:
onHTTPStatus по любому должен вызваться и если, например, в параметре передается 0, то самому вызывать onData/onLoad с флагом ошибки или еще чего..
есть конечно изврат такого рода, при начале загрузки возводить инртервал секунд на 4-5, если по истечению него onData ничего не сказал, то ошибку выдавать если сказал, то смотреть уже что сказал..
Dimchansky
15.06.2006, 12:37
Reijii, а почему изврат? Вполне нормальный себе метод. Можно и нужно обрабатывать таймаут (особенно если приложение сколь нибудь серьезное). Я когда-то счетчик количества запросов взводил по таймаутам. 3-4-5 раз не ответит - обработка ошибки и дело с концом. Можно ситуацию в shared object записать и в другой раз серверу отправить время и контекст ситуации, чтобы спокойно разобраться. Особенно, если клиенты далеко и шибко ругаюцца.
FishBasta
15.06.2006, 12:43
Да, в итоге так и сделат - поставил таймаут... Всем спасибо!
незачто, просто я вчера пытался посмотреть что же такое объект XML во Flash... ну что тут сказать.. HttpStatus тоже в данной ситуации ничего не выдает, да и ASSetPropFlags не помог.. ничего интерестного не выдал..
хотя может и не досмотрел чего.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.