[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: progressbar записи в БД
arbuzmaster
Подскажите пожалуйста - как сделать progressbar записи в БД?
Есть скрипт который отправляет XMLHttpRequest в файл на php который в свою очередь сканирует сторонний сервер и сохраняет в БД порядка 800 записей в цикле, как сюда прикрутить progressbar не могу понять, так как onreadystatechange срабатывает только по конечному результату, то на него соответсвено ничего такого не повесить не получится. Пните в правильном направлении.

_____________
Мой первый сайтик

Посмотри на свой XBMC под другим углом
AllesKlar
до записи в таблице N строк
стартанули запись...

аяксом читаем количество строк в таблице.

( (текущее количество строк) - N ) / (количество строк для записи) * 100 = % готовности



_____________
[продано копирайтерам]
arbuzmaster
Цитата (AllesKlar @ 13.09.2015 - 00:48)
до записи в таблице N строк
стартанули запись...

аяксом читаем количество строк в таблице.

( (текущее количество строк) - N ) / (количество строк для записи) * 100 = % готовности

Спасибо я уже нашел что это через таймер делается
как то так?

function timer(){
ajaxFunction();
setTimeout('timer()',1000);
}

Но есть одна проблема при нажатии на кнопку сканировать отправляется и число до которого нужно сканировать - например 800 , но не факт что записей будет 800 так как пустые ответы от стороннего сервера отсекаются и записей может быть например 745, тогда как быть?

_____________
Мой первый сайтик

Посмотри на свой XBMC под другим углом
arbuzmaster
Можно ли создать какую то переменную в которую записывать номер цикла , что бы к ней был доступ из javascript? Или писать значение в БД и делать отдельный скрипт на php который будет отдавать ответ AJAX запросу?

_____________
Мой первый сайтик

Посмотри на свой XBMC под другим углом
sergeiss
Цитата (arbuzmaster @ 13.09.2015 - 00:02)
сохраняет в БД порядка 800 записей в цикле

Во-первых, цикл при записи в БД - зло!
А во-вторых, я бы сделал простую "крутилку". Типа того, что "идет запись данных, ждите".

Цитата (arbuzmaster @ 13.09.2015 - 01:00)
Спасибо я уже нашел что это через таймер делается

Совершенно не понятно, что ты собираешься по этому таймеру делать.

И вообще, ты можешь в сессионной переменной хранить промежуточные данные. Один раз передал "800" и всё, сидят там, только читаешь каждый раз, когда нужно. Даже если их будет меньше в итоге, то у тебя просто с какого-то момента индикатор прыгнет на 100%.

Цитата (arbuzmaster @ 13.09.2015 - 01:06)
что бы к ней был доступ из javascript?

localStorage()

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
arbuzmaster

Во-первых, цикл при записи в БД - зло!
А как правильно сделать?
По таймеру отправлять AJAX запрос на кол-во записей в БД

_____________
Мой первый сайтик

Посмотри на свой XBMC под другим углом
sergeiss
arbuzmaster, почему они вообще в цикле у тебя пишутся в БД?

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
arbuzmaster
Цитата (sergeiss @ 13.09.2015 - 01:20)
arbuzmaster, почему они вообще в цикле у тебя пишутся в БД?

curl - запрос к серверу (api.films.net/ от 1 до 800), ответ записываю в БД id name url

_____________
Мой первый сайтик

Посмотри на свой XBMC под другим углом
arbuzmaster
То есть можно сделать так например

start_session();
$_SESSION['value']=$count;


А как в javascript его считать?

_____________
Мой первый сайтик

Посмотри на свой XBMC под другим углом
sergeiss
Не совсем понял - ты по курлу получаешь данные для одной записи, которые тут же пишешь в БД?

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
arbuzmaster
Цитата (sergeiss @ 13.09.2015 - 01:30)
Не совсем понял - ты по курлу получаешь данные для одной записи, которые тут же пишешь в БД?

Как то так ! А как нужно делать?

_____________
Мой первый сайтик

Посмотри на свой XBMC под другим углом
sergeiss
Цитата (arbuzmaster @ 13.09.2015 - 01:37)
Как то так ! А как нужно делать?

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

Далее... Может быть, получится сделать вот такой "финт ушами", для передачи инфы с сервера клиенту. Я (вспомнил) так делал, когда долго формировался файл по команде (и он передавался клиенту), то при этом было установлено соединение сервер-клиент. И я менял куку у клиента. Которая читалась средствами JS и на экране что-то там показывалось.
С аяксом не пробовал, не буду утверждать, что получится. Но попробовать можно.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
arbuzmaster
Суть понята. Спасибо за ответы!!

_____________
Мой первый сайтик

Посмотри на свой XBMC под другим углом
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.