Показать сообщение отдельно
  #3 (permalink)  
Старый 14.08.2011, 22:38
Профессор
Отправить личное сообщение для popov654 Посмотреть профиль Найти все сообщения от popov654
 
Регистрация: 22.09.2010
Сообщений: 217

Я прошу прощения
Но я тоже ровно ничего не понял.

Давайте я переформулирую вопрос корректнее, а Вы уточните, что Вы имели в виду) ОК?

"Селектор" - я немного некорректно употребил это слово. Пускай будет "трекер". Селектором я его назвал от слова "select" - он выбирает, какая часть файла будет анализировться, или, говоря на языке конечного пользователя, какую страничку обработанных данных покажет ему скрипт.

Насчёт onload - опять же ни в чём не уверен, но не думаю что дело именно в этом. Ведь событие и в первом и во втором случае вешается на onload. Более того, я вообще не уверен что проблема в JS (хотя ручаюсь, что PHP код абсолютно идентичен в обоих случаях). Понимаете, просто такое ощущение, что "висит" именно PHP. Причём во всех браузерах. И только в случае отдельного контейнера. Ну как такое возможно?

В принципе, есть у меня предположение... Только что сообразил. Возможно, проблема как раз-таки в том, что в случае с отдельным контейнером поле с файлом не очищается. Хоть я и сделал в PHP логику, чтобы при наличии загруженного файла на сервере и установленной куке в клиенте повторной загрузки не происходило, возможно, данные каким-то образом всё же утекают и передаются на сервер снова через форму. То есть такая огромная задержка вызвана тупо повторной загрузкой 5-мегабайтного файла. Но PHP судя по отладочной печати его не сохраняет. Может ли быть так, что данне передаются "вхолостую"? То есть послали, но не приняли?..

И если это так, то как с этим бороться? Каждый раз грузить весь огромный лог - Боже упаси, а очищать поле не хочется, т.к. для пользователя это единственный источник информации о том, какой лог он анализирует. Сделать отдельный "дисплей" с именем файла? Увы, у меня места на него нет, да и пустое поле загрузки смотрится не очень красиво...
Можно ли как-то обойти эту проблему через JS? Например, запретить загрузку на сервер части формы? Можно конечно вообще форму не сабмитить, я не спорю, а только пренаправлять верхний фрейм с PHP-скриптом. Это так, но что делать, если юзер-таки захочет загрузить новый лог? Надо вообще разделить процесс загрузки файла с логом и процесс переключения страниц. Но как это сделать органично? Тут ведь в чём была прелесть - нажал "Анализ" - и тут же получил результат, так как скрипт в конце стадии подготовки сам устанавливал текущую страницу в ноль и шёл работать дальше. Для пользователя всё было совершенно прозрачно. Кроме того, в ближайшие 10 минут пользователь мог нажать "Анализ" вообще не выбирая файл. Скрипт сам соображал, что файл уже загружен и брал его с сервера. Если сейчас эти процессы разделять - может выйти неудобно с точки зрения юзабилити

Последний раз редактировалось popov654, 14.08.2011 в 23:00.
Ответить с цитированием