AlenDelan

Рейтинг
73
Регистрация
30.12.2011
AlenDelan:
начинаю думать что на всех реальных проектах сделана именно такая тупая симуляция... что вот-вот "щас все будет".

сделал имитацию, на кривой Безье,... но вебсокеты ... запомню

фронтенд никак не узнает о том, сколько ещё осталось, если вы не научите фронтенд узнавать это отдельно, делая запросы.

не силен вообще, могу только на уровне примеров из интернета, ..... то есть на бэкенд первые байты приходят сразу, nginx или php их дожидается все, и только потом отвечает, видимо так. И как этот буфер поиметь?

---------- Добавлено 30.03.2020 в 23:45 ----------

Проверил на этом примере: https://learn.javascript.ru/article/...ress/progress/

вот именно так это тупо и работает, как по этой ссылке, непригодно для жизни. (выбирайте файл поменьше, у них медленный сервер).

---------- Добавлено 30.03.2020 в 23:55 ----------

Убрал сейчас вообще всякую обработку файла, просто вывод Ок оставил, картины не изменило.

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

danforth:
А что с файлами делается? И что за бекенд у вас? Если nginx - то он сначала буферизирует запрос, затем передает его на php.

nginx есть.

Убрал сейчас вообще всякую обработку файла, просто вывод Ок оставил, картины не изменило.

Не знаю какой вывод сделать, наверное такой, xhr (или браузер) выплевывает мгновенно все байты, дальше может только ждать ответ сервера, но что происходит между этими двумя моментами, он понятия не имеет.

danforth:
Ну тут два пути, либо симулировать загрузку, двигая прогресс бар. Например, тот же YouTube так делает, ползунок ползет по таймеру, а не по результатам загрузки или ответу от сервера.

начинаю думать что на всех реальных проектах сделана именно такая тупая симуляция... что вот-вот "щас все будет".

LEOnidUKG:
Тут например есть более расширенный пример:
http://know-online.com/post/javascript-indikator-zagruzki-faila

в этом примере ничего нового нет, просто рюшечки добавлены, а суть та же

---------- Добавлено 30.03.2020 в 22:31 ----------

AlenDelan:
делал я эту штуку, переключал на симуляцию 3G, байты ползут медленно и красиво, (то есть прогресс-бар можно строить) ...

о, и вот сейчас увидел (потестил еще раз), что когда отправлены все байты в таком режиме, то ответ сервера приходит мгновенно после отправки последних байтов, то есть, что делать? какая-то настройка для xhr есть?

потестил большее кол-во раз, и создается очучение, что симуляция 3G затрагивает только симуляцию (замедление) отображения переданных байтов, в то время как ответ сервера уже готов и пришел, и ждет пока эта симуляция закончится.

AlenDelan, если в хроме троттлинг скорости включить, тоже быстро пишет что загрузилось?

делал я эту штуку, переключал на симуляцию 3G, байты ползут медленно и красиво, (то есть прогресс-бар можно строить) ...

о, и вот сейчас увидел (потестил еще раз), что когда отправлены все байты в таком режиме, то ответ сервера приходит мгновенно после отправки последних байтов, то есть, что делать? какая-то настройка для xhr есть?

да ничего на самом сервере не делается 10-15-20 секунд, там файл обрабатывается мгновенно.

Но реально, временная схема выглядит так, еще раз:

- делаю по кнопке отправку формы с файлом (фото 3 мб например);

- тут же, мгновенно, объект xhr сообщает в консоли что он выплюнул все 3 мб из 3 мб;

- жду секунд 10 пока от сервера придет ответ, что файл получен и все ок (меньше файл по весу - жду меньше, больше файл по весу - жду больше).

... не смогу поверить что у вас файл 3 мб даже при очень хорошем интернете отправится за секунду,

да, вот именно, скрипт-обработчик на сервере тоже работает доли секунд,

я и говорю, что на форме, сразу после события submit, при тестировании, все байты отправляются мгновенно (это я увидел запустив скрипт который выше). Потом проходит секунд 10 прежде чем сервер ответит (что файл принят и скопирован).

То есть, еще раз, нажимаем submit, объект xhr со всеми его событиями при аплоад отрабатывает практически мгновенно (все, xhr сказал что он все байты отправил), потом ждем секунд 10-15-20 (когда файл большой, мегабайт 5 к примеру) и потом уже приходит коротенький ответ сервера что все ок, файл получен. То есть вот эти 10-15-20 секунд и есть реальное время ожидания при аплоад и непонятно как их измерить-прикинуть. И как строить прогресс-бар, на основании чего, ведь xhr все отправляемые байты уже выплюнул до начала этих 10-15-20 секунд.

svv:
Зачем сами себе хуже делаете?
Если нет желания делать адаптивную версию, сделайте для планшетов отдельную версию и перебрасывайте их туда. Много тестировал и в результате убедился в правильности того, что мобильная версия для планшетов слишком мала, а десктопная слишком насыщена - при отдаче планшетам своей версии ПФ улучшились.

- а хуже в каком моменте себе делаю?

- согласен про версии для разных устройств и про их насыщенность при этом... - а как вы поисковику указываете про то что существуют разные версии вашего сайта для разных устройств (десктопов, планшетов, смартфонов)? в верстке в блоке <head> ? можно ваш конкретный пример? заранее благодарю.

- что такое ПФ?

---------- Добавлено 16.10.2018 в 05:46 ----------

LEOnidUKG:
А у вас для мобильников там что вообще другое? Полностью другой дизайн или просто стили другие?

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

---------- Добавлено 16.10.2018 в 06:00 ----------

Sitealert:
Респонсив дизайн чем не устраивает?

оправдаюсь, считаю что случаи бывают настолько разные что не всегда подойдет респонсив или адаптив...тут долго можно ......вот допустим если на десктопной версии меню большое и сложное, то все уже, не сделаешь респонсив, другая верстка нужна полностью

---------- Добавлено 16.10.2018 в 06:04 ----------

DiKiJ:
Если мобильная версия не очень полная, владельцы планшетов вас возненавидят :)
Логично будет сделать для них кнопку "Полная версия".

существует кнопка, это же основа :)

---------- Добавлено 16.10.2018 в 06:16 ----------

<link rel="alternate" media="only screen and (max-width: 768px)" href="урл_моб_версии_страницы">

сейчас пока указал 768 вот здесь, было 640 ....но это все равно не гуд.....может 1024 указать) вроде нет планшетов с бОльшим значением ширины экрана

я нигде не указал что моб версия у меня на другом домене или поддомене, вообще моб.версия страниц у меня имеет вид /mob_aaaaaaa (каноническая версия страниц при этом выглядит так /ааааааа). По сути ничем не отличается от использования одного урл с get-параметром.

а суть вопроса вообще в другом.

---------- Добавлено 14.10.2018 в 21:39 ----------

Суть вопроса: хочу все планшеты (и смартфоны) перенаправлять на моб.версию сайта. Что тогда указать в блоке <head> в верстке? Сейчас у меня там вот так указано: <link rel="alternate" media="only screen and (max-width: 640px)" href="урл_моб_версии_страницы">

то есть это указывает что моб версия это для устройств с шириной экрана меньше 640. Но планшеты имеют разрешение (ширину экрана) почти как десктопные мониторы.

---------- Добавлено 14.10.2018 в 21:43 ----------

да и в интернете в примерах как устроен редирект по user-agent старательно избегают перенаправление планшетов на моб.версию, только смартфоны туда оправляют

Всего: 119