Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #31 (permalink)  
Старый 25.09.2016, 19:07
Аватар для usesa
Аспирант
Отправить личное сообщение для usesa Посмотреть профиль Найти все сообщения от usesa
 
Регистрация: 30.09.2014
Сообщений: 32

Воу-воу, господа! Так. Я проникся всем что прочитал. Ещё раз повторю вопрос свой последний. Если я посылаю асинхронный ajax запрос, то до того, как он дойдёт до конца, другие скрипты на странице не будут выполняться, я верно понял? Например, тот же таймер. А если будут, могу ли я параллельно считывать данные из файла. Любого txt файла, например считать строку через 5 секунд после начала выполнения асинхронного ajax запроса?
Ответить с цитированием
  #32 (permalink)  
Старый 25.09.2016, 20:11
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

usesa,
просто начитать плясать от печки. Что есть некий индикатор? Этой шкале нужно знать что будем считать и какую величину взять за 100%.
Так как и с загрузкой файла, так и загрузкой POST данных проблем не будет - клиент знает размер отправляемых данных, скорость соединения, просчитать и отобразить это на индикаторе не составит труда.
Но загрузка ваших десятков тысяч строк, пусть это будет десятки/сотни Кб, это ведь при нормальном соединение малый промежуток времени. Если это отображать, то индикатор застынет где-то у конца. А что ему отображать далее, если клиент понятия не имеет через какое время ответит сервер? А это время у вас может достигать десятки секунд.
И что вы собираетесь отображать? Включайте гифку, и весь индикатор тогда.
А ведь можно и не ждать. Отправили данные, сервер подтвердил принято, клиент разорвал соединение. Вы как разработчик решаете прерывать ли работу серверного скрипта или нет. Можно продолжать работу, обрабатывая данные, можно их поставить в задачу для cron. Это не столь важно. Главное, что если обрабатываются строки и обрабатываются в цикле, то серверный сценарий уж точно может знать сколько ему по времени/процентах еще работать. Следовательно он может писать статус своей работы, а клиент после отправки данных уже в фоновом режиме опрашивает этот статус каждую секунду, отображая тот самый прогресс работы, который вы так хотите.
Ответить с цитированием
  #33 (permalink)  
Старый 25.09.2016, 21:41
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 08.07.2016
Сообщений: 1,332

Сообщение от usesa
Например, тот же таймер
Какой еще таймер?

Запрос потому и асинхронный, что функция ответа выполняется по событию. Пока этого события нет, все работает как обычно. Учи прерывания.

Времеми на ожидание ответа тебе за глаза хватит. Посылай по одной строке и все будет меееедленно.

Сообщение от usesa
через 5 секунд после начала выполнения асинхронного ajax запроса?
Переверни в голове свои представления о вебе. Все наоборот. Начало никого не колебет, всех интересует каков будет конец у бойца.

Устроено вот так.

1 Сделали объект
2 Запрограммировали событие ответа = функция
3 Сделали запрос

Все. Теперь когда ответ придет, та самая функция его и получит, когда придет. Обработает и запустит все снова, с строки 1.

https://developer.mozilla.org/en-US/...XMLHttpRequest

В лайбах вроде жиквери все уже уютненько.
Ответить с цитированием
  #34 (permalink)  
Старый 25.09.2016, 21:43
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 08.07.2016
Сообщений: 1,332

Сообщение от laimas
Включайте гифку
Ты выбрал уже одну из двух? )))
Ответить с цитированием
  #35 (permalink)  
Старый 25.09.2016, 21:50
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 08.07.2016
Сообщений: 1,332

Сообщение от laimas

Но загрузка ваших десятков тысяч строк

И что вы собираетесь отображать?

можно их поставить в задачу для cron
Щаз у него опять пукан бомбанет лол. На четвертой странице по-прежнему бредит гифками и уже до крона добрался.

Не пудри читателю мозг. У него банальная задача сделать очередь загрузки аяксом. Есть 10К строк, он поделил на 100, получил 100, отгрузил 100, php обработал, что-то там сохранил, ответил 200 ОК и закрылся. Браузер получил, передал в скрипт, скрипт сдвинул прогресс на 1%, взял следующие 100, отгрузил 100, php обработал, что-то там сохранил, ответил 200 ОК и так далее пока строки не кончатся. По 100 уезжает, по 1% продвигается. Элементарно. Просто сервер придется дергать 100 раз. Ну и что? Он все равно железный.
Ответить с цитированием
  #36 (permalink)  
Старый 25.09.2016, 21:55
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 08.07.2016
Сообщений: 1,332

Если ты открываешь страницу на которой 100 фоток, то сервер будет дернут 100 раз. Ну и пусть дергается хоть на каждую строку. Это же явно административная задача.
Ответить с цитированием
  #37 (permalink)  
Старый 25.09.2016, 22:05
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 08.07.2016
Сообщений: 1,332

Сообщение от laimas
писать статус своей работы, а клиент после отправки данных уже в фоновом режиме опрашивает этот статус каждую секунду
Куда писать? Запрос-1 откроет процесс-1, а запрос-2 откроет процесс-2. Еще найди фичу php, есть такая, которая процессами управляет, или писать/читать надо будет в файл, короче говоря ты мамкин теоретег когда бы взялся свои эти советы реализовать, сразу бы научился свободу любить по крону, лол.

Ну и главное, раз в секунду. То есть 60 раз в минуту дрыгать php, поднимать параллельный процесс, чтобы только файлик прочесть. Запросы по таймеру делаются когда данные поступают случайно и неизвестно откуда, скажем кто-то тебе написал привет, а он еще на сервере. В случае ТС данные конкретно все у него и все известно заранее. Сценарий выше.
Ответить с цитированием
  #38 (permalink)  
Старый 25.09.2016, 22:13
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 08.07.2016
Сообщений: 1,332

Поскольку ТС не колется о конкретике, то можно предполагать плохое. Например если для обработки важно получить все данные, какая-то статистика. Тогда прогресс будет показывать просто исход очереди на сервер, что и без таймеров заметно рендерится. Когда все строки из очереди отгрузятся, сервер запустит процесс обработки и тогда уже понадобится гифка с сиськами.

Вообще такая хрень через html не делается. Для этого есть shell и bash. Открыл консоль, запустил процесс и пялься себе на экран, смотри как он идет во всех подробностях.
Ответить с цитированием
  #39 (permalink)  
Старый 26.09.2016, 02:38
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от warren buffet
Есть 10К строк, он поделил на 100, получил 100, отгрузил 100, php обработал, что-то там сохранил, ответил 200 ОК и закрылся. Браузер получил, передал в скрипт, скрипт сдвинул прогресс на 1%, взял следующие 100, отгрузил 100, php обработал,
даже так!? А ничего что серверу нужно все, дабы что-то в нем выбрать?

Плыви мимо, опять написал поноса на целый роман.
Ответить с цитированием
  #40 (permalink)  
Старый 26.09.2016, 02:56
Аватар для usesa
Аспирант
Отправить личное сообщение для usesa Посмотреть профиль Найти все сообщения от usesa
 
Регистрация: 30.09.2014
Сообщений: 32

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



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Несколько запросов к php через AJAX Florens AJAX и COMET 7 25.07.2014 21:21
Живой поиск JQUERY + AJAX + PHP + MYSQL dimi007 AJAX и COMET 2 22.07.2014 13:50
Решение проблемы кодировок для AJAX и PHP без iconv (cp1251 в AJAX) Serge Ageyev AJAX и COMET 10 24.04.2013 20:48
Запуск php скрипта через ajax hagen3 AJAX и COMET 2 09.09.2011 03:51
php session а в ajax Sadist_dead AJAX и COMET 1 19.08.2011 18:35