Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Индикация выполнения скрипта php

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Jenstel
Отправлено: 09 Февраля, 2016 - 10:20:18
Post Id



Новичок


Покинул форум
Сообщений всего: 7
Дата рег-ции: Февр. 2016  


Помог: 0 раз(а)




Доброго времени суток.
Есть несколько тяжелых скриптов на php, которые через PDO дергают данные из БД и выполняются от 10 до 30 секунд. Хотелось бы как-нибудь анимировать этот процесс визуально, чтобы пользователю отображалась индикация выполнения запроса и загрузки страницы. Нашел пару решений на JS, но проблема в том, что они выполняют индикацию именно загрузки страницы, т.е. при открытии страницы сначала на протяжении выполнения запроса к базе браузер думает, а потом непосредственно перед показом уже готовой страницы происходит анимация ее загрузки. Есть ли решения, которые анимируют именно процесс выполнения скрипта, а не загрузку и построения страницы.
 
 Top
Viper
Отправлено: 09 Февраля, 2016 - 12:31:49
Post Id



Активный участник


Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007  
Откуда: Симферополь


Помог: 98 раз(а)




По нормальному никак. Через костыли можно, но не нужно.

(Отредактировано автором: 09 Февраля, 2016 - 12:32:14)



-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
Jenstel
Отправлено: 09 Февраля, 2016 - 13:02:37
Post Id



Новичок


Покинул форум
Сообщений всего: 7
Дата рег-ции: Февр. 2016  


Помог: 0 раз(а)




Viper пишет:
По нормальному никак. Через костыли можно, но не нужно.


Пусть будет костыль, проект не особо глобальный, но пользователей приличное количество и каждый день в нем работают, хотелось бы как-то добавить прогресс выполнения их операций, а то кто-то не дождавшись начинает обновлять страницы или вообще закрывает ее, думая что она зависла. А скоро нужно будет добавить еще несколько отчетов, а там время выполнения и до минуты может доходить
 
 Top
bear9
Отправлено: 25 Февраля, 2016 - 05:55:46
Post Id


Новичок


Покинул форум
Сообщений всего: 17
Дата рег-ции: Июль 2011  


Помог: 0 раз(а)




Jenstel пишет:
Нашел пару решений на JS, но проблема в том, что они выполняют индикацию именно загрузки страницы, т.е. при открытии страницы сначала на протяжении выполнения запроса к базе браузер думает, а потом непосредственно перед показом уже готовой страницы происходит анимация ее загрузки

ну это зависит от того как код написан....
На мой взгляд, наиболее оптимальным в таких задачах, является обращение к "тяжелому" скрипту не при открытии страницы, а через ajax предварительно сообщив пользователю о том, что "идет загрузка данных, ждите" и добавив к ней еще какую-нибудь крутящуюся гифку. Это 100% работает.
 
 Top
Ismail
Отправлено: 27 Июня, 2016 - 00:12:07
Post Id



Новичок


Покинул форум
Сообщений всего: 46
Дата рег-ции: Сент. 2012  


Помог: 0 раз(а)




Можно вызывать функцию, которая пытается аяксом загрузить данные. Пока она их грузит, выводится, например, гифка:

CODE (javascript):
скопировать код в буфер обмена
  1. function loading() {
  2.         $.ajax({           
  3.                 type: "GET",
  4.                 url: "путь_до_обработчика.php",
  5.                 beforeSend: function() {
  6.                         $('#id_DOM_элемента').html('<img src="путь_до_гифки/loadinfo.gif">');
  7.                 },
  8.                 success: function(html){
  9.                         console.log(html); // вывести например что загрузка окончена
  10.                 },
  11.                 error: function(e) {
  12.                         console.log(e); // ошибка при загрузке
  13.                 }
  14.         });
  15. }

(Отредактировано автором: 27 Июня, 2016 - 00:12:57)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« HTTP и PHP »


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



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB