Здравствуйте, друзья)
Я на днях написал небольшой парсер статистики для Shoutcast. Парсер написан на PHP, но также активно используется JavaScript. И хотя нерабочий код на JavaScript я бы мог реализовать на PHP, мне всё же хочется "добить" эту проблему из принципа, чтобы у меня не осталось вопросов, которые я так и не понял.
Код на PHP огромен, да и в данном случае не очень нужен (если потребуется, я могу выложить некоторые части, которые касаются проблемы), код на JavaScript чуть меньше, но тоже не слабый, поэтому я не буду тут всё это постить, а просто выложу ссылку. Кому интересно и у кого есть время - откликнитесь, пожалуйста :-)
Ссылка вот:
http://popov654.pp.ru/parser
Для тестирования понадобится лог-файл, я его прикрепляю сюда. К сожалению, загрузка файла с первого раза может не получиться, если браузер "зависнет" в ожидании ответа - повторите 1-2 раза, на третий точно должно сработать.
JavaScript код всех трёх фреймов просмотреть можно любым браузером, это совершенно стандартная процедура)
Теперь в чём собственно проблема. Во-первых, никак не удалось путём довольно хитрых манипуляций заставить его "не сбрасывать" поле с именем файла после первой загрузки файла через форму. При этом при последующих переходах значение поля уже сохраняется, но при самом первом - нет. Хотя отладочные алерты свидетельствуют о том, что мои методы сохранения и восстановления работают. Этот момент может быть неприятен для пользователя скрипта, в частности, для меня. Ведь по сути выбирать файл в диалоге приходится дважды!
Насчёт скорости - я возможно сделаю так, чтобы 5-мегабайтный файл не заливался на сервер при каждой смее страницы в трекере, а работа происходила с уже загруженным файлом, а стирался чтобы он с сервера при выгрузке веб-страницы/закрытии браузера с помощью вызова другого php-сценария через JavaScript. Тогда и необходимость "помнить" это поле пропаёт :-)
А второй момент ещё того хуже: глючит трекер. А именно, смена групп по 10. При такой смене происходит перезагрузка данных наверху, но сам трекер в нижнем фрейме почему-то остаётся прежним. А при попытке обновить его содержимое средствами браузера вообще происходит совершенно невероятное. Попробуйте)
И как это?!.. Там ведь стоит цикл на 10 итераций со счётчиком!
Вот... Собственно в этом и мой вопрос)