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
Форумы портала PHP.SU :: Версия для печати :: Индикация выполнения скрипта php
Форумы портала PHP.SU » » HTTP и PHP » Индикация выполнения скрипта php

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

1. Jenstel - 09 Февраля, 2016 - 10:20:18 - перейти к сообщению
Доброго времени суток.
Есть несколько тяжелых скриптов на php, которые через PDO дергают данные из БД и выполняются от 10 до 30 секунд. Хотелось бы как-нибудь анимировать этот процесс визуально, чтобы пользователю отображалась индикация выполнения запроса и загрузки страницы. Нашел пару решений на JS, но проблема в том, что они выполняют индикацию именно загрузки страницы, т.е. при открытии страницы сначала на протяжении выполнения запроса к базе браузер думает, а потом непосредственно перед показом уже готовой страницы происходит анимация ее загрузки. Есть ли решения, которые анимируют именно процесс выполнения скрипта, а не загрузку и построения страницы.
2. Viper - 09 Февраля, 2016 - 12:31:49 - перейти к сообщению
По нормальному никак. Через костыли можно, но не нужно.
3. Jenstel - 09 Февраля, 2016 - 13:02:37 - перейти к сообщению
Viper пишет:
По нормальному никак. Через костыли можно, но не нужно.


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

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

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. }

 

Powered by ExBB FM 1.0 RC1