Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 22.09.2014, 10:02
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Прогресс и заголовки
Файлы закачались - прогресс добежал до 100% и замер - потому что сервер начал жевать огромные картинки делая из них два варианта поменьше.

Я пробовал передавать в js заголовки вместе с данными. Например если юзер ввел капчу неправильно - она убивалась в сессии - а картинка у него оставалась старая. Чтобы окольными путями не ходить - прямо из модели капчи по факту убиения переменной в сесии посылал абстрактный заголовок Pragma:no-captcha Нормально все ловилось в js, js щелкал по ссылке обновить - картинка обновлялась, в сессию записывался новый код.

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

То есть возможно ли и насколько трудно реализовать обратную связь для отображения не только процесса загрузки, но и процесса обработки, записи файлов.
Ответить с цитированием
  #2 (permalink)  
Старый 30.09.2014, 23:59
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Ладно, фиг с заголовками, подумал можно имитировать, а сделать не смог.

Общие условия выше, а в конце по-другому: когда закачка прошла надо сделать из determinate -- indeterminate, то есть заставить его изображать ход мыслей туда-сюда как это происходит когда у прогресса нет value. А оно изначально есть. Я пробовал ставить 0 в мах и валуе - не помогло. Поиск не дал результата, не юзает народ html5-ные фичи активно. Может кто все-таки знает как?
Ответить с цитированием
  #3 (permalink)  
Старый 01.10.2014, 00:37
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

При чем тут капча? Капчу никто не сохраняет. Она вот так изображается
<label>Введите код с картинки&nbsp;<a id="reload_captcha" style="color:#aaaab4;" 
			onclick="{var image=document.getElementById('captcha'); 
				image.src=image.src.split('?')[0]+'?'+Math.random();
				document.getElementsByName('captcha')[0].value='';}">(обновить)</a>
		</label>


Потом еще поле для ввода и все такое. Ну вот, скрипту надо только щелкнуть по <a> и капча обновится. php скрипт сгенерит новую, а чтобы не кешировалось - в конец файла как видите добавляется search string с числом текущей даты.

ЗЫ В хтмле вот так
http://example.ru/captcha/captcha.jpeg?0.3151792328609583


Дело не в капче, они все одинаково устроены - дело в том что принято давать 200 ОК, а потом разбирать что там прилетело, какие ошибки, а меж тем все это можно сообщить конкретно заголовками. Через заголовки авторизацию даже некоторые реализуют.

Последний раз редактировалось kostyanet, 01.10.2014 в 00:39.
Ответить с цитированием
  #4 (permalink)  
Старый 01.10.2014, 00:45
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Не сразу понял про строку - а зачем тут строка? Есть картинка - показывайте ее и все.
Ответить с цитированием
  #5 (permalink)  
Старый 01.10.2014, 08:02
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Надо у прогресса отрезать value через .removeAttribute() и он сразу станет idle.

Конечно придется проверять отрезано ли чтобы добавить для повторного запуска. Я сделал проверку по документации

if(_.bar.hasAttribute('value'))

но разве это обязательно? Если просто сделать

_.bar.value=0;

атрибут же появится если не было?
Ответить с цитированием
  #6 (permalink)  
Старый 01.10.2014, 08:19
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Непотеме. Действительно капчи так и делаются - не надо там строки. Просто вы можете сделать так img src="captcha.php", а можете точно так же, но красиво, типа настоящая картинка у нас залинкована. Если посмотреть заголовки то можно понять что красивый Src капчи в том примере выше вот такой http://example.com/index.php/captcha/captcha.jpg - где первый путь это модель где делается капча, а второй элемент - для красоты. Он может быть любым, но я проверяю чтобы был именно таким и, если не такой то пишу Not found. Типо круто.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Прогресс бар для загрузки нескольких файлов через XHR Ваяс AJAX и COMET 0 04.12.2013 13:03
Прогресс загрузки большого изображения или файла - как сделать Почемучкин Events/DOM/Window 7 19.10.2012 21:03
Прогресс бар Jmunb Events/DOM/Window 3 01.12.2011 23:01
Цикл For и заголовки Element.all Общие вопросы Javascript 2 09.02.2011 20:55
Прогресс бар загрузки страницы bis AJAX и COMET 1 03.08.2009 10:24