PHP.SU

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


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

> Описание: Не могу разобраться с выводом анимации во время ajax запроса к БД
alexdarh
Отправлено: 05 Мая, 2017 - 20:14:22
Post Id


Новичок


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


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




Здравствуйте! Есть следующая проблема:

CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2.  <div id="content"></div>      
  3.  <div class="cssload-loader" id="loader">
  4.         <div class="cssload-inner cssload-one"></div>
  5.         <div class="cssload-inner cssload-two"></div>
  6.         <div class="cssload-inner cssload-three"></div>
  7. </div>  
  8.      
  9.     <script>
  10.                 var GIF = $('#loader');
  11.  
  12.        function show()  
  13.        {  
  14.            $.ajax({  
  15.                url: "get.php",  
  16.                cache: false,
  17.                                 beforeSend : function(){ GIF.show(); },                        
  18.                success: function(html){$("#content").html(html);},
  19.                                 complete: function(){GIF.hide();}              
  20.                
  21.            });  
  22.        }  
  23.      
  24.        $(document).ready(function(){  
  25.            show();  
  26.            setInterval('show()',3000);  
  27.        });
  28.  
  29.                        
  30.    </script>  
  31.  
  32.  


Этот код должен выводить анимацию до тех пор пока не получит ответ из БД. Но на практике анимация мелькает на секунду и пропадает, оставляя белый экран. Помогите сделать правильно Улыбка Заранее спасибо Улыбка
 
 Top
andrewkard
Отправлено: 06 Мая, 2017 - 12:54:24
Post Id


Частый посетитель


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


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




Функция show не должна посылать запрос на сервер, это не ее дело. Ее дело поставить css класс display. Когда пришел ответ от сервера в success, вызывайте функцию unshow например, которая изменит картинке display
 
 Top
alexdarh
Отправлено: 06 Мая, 2017 - 13:11:54
Post Id


Новичок


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


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




Запрос должен уйти после того, как загрузится пустая страница, причем он должен выполняться раз в 3 секунды, пока не получит результат (тоже пока не знаю как), пока результата нет должна крутиться анимация. Профан совсем я в программировании на javascript, только учусь, не могли бы Вы хоть примерно набросать на основе моего кода, правильный? Заранее спасибо )

(Отредактировано автором: 06 Мая, 2017 - 13:17:23)

 
 Top
andrewkard
Отправлено: 07 Мая, 2017 - 12:07:59
Post Id


Частый посетитель


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


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




Не совсем я понял Ваш замысел, но по коду как то так:
CODE (javascript):
скопировать код в буфер обмена
  1.  
  2.     var gif = $('#loader');
  3.     var url = 'get.php';
  4.    
  5.     function show(el){
  6.         $(el).css('display','block');
  7.     }
  8.     function hide(el){
  9.         $(el).css('display','none');
  10.     }
  11.     function send(data){
  12.         $.post(url,data,function(){
  13.             hide(gif);
  14.             return data;
  15.         });
  16.     }
  17.     function doSomething(){
  18.         show(gif);
  19.         var data = send({});
  20.         console.log(data);
  21.     }
  22.  
  23.     $(function(){
  24.         doSomething();
  25.         var intID = setInterval(doSomething, 300);
  26.     })
  27.  
  28.  
 
 Top
alexdarh
Отправлено: 07 Мая, 2017 - 13:22:48
Post Id


Новичок


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


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




andrewkard пишет:
Не совсем я понял Ваш замысел, но по коду как то так:


Спасибо, замысел простой...есть БД где должны появиться данные удовлетворяющие условиям запроса, страница раз в три секунды посылает запрос к БД. Если данные получены они должны вывестись на экран. А пока данных нет, должна крутиться картинка Улыбка Сейчас попробую Ваш код )
(Добавление)
Попробовал, на секунду появляется и все, хотя запрос не находит в бд ничего.
 
 Top
andrewkard
Отправлено: 07 Мая, 2017 - 13:57:43
Post Id


Частый посетитель


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


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




alexdarh пишет:
страница раз в три секунды посылает запрос к БД

зачем? Данные за это время будут меняться? Как Вы себе представляете мелькание картинки раз в 3 секунды на странице? Насколько я понимаю, гифка нужна для визуального подтверждения работы сервера.
1) Показываем картинку
2) Отправляем запрос
3) Прячем картинку когда пришел ответ.
 
 Top
alexdarh
Отправлено: 07 Мая, 2017 - 15:24:33
Post Id


Новичок


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


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




andrewkard пишет:
alexdarh пишет:
страница раз в три секунды посылает запрос к БД

зачем? Данные за это время будут меняться? Как Вы себе представляете мелькание картинки раз в 3 секунды на странице? Насколько я понимаю, гифка нужна для визуального подтверждения работы сервера.
1) Показываем картинку
2) Отправляем запрос
3) Прячем картинку когда пришел ответ.


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


То есть схема работы такая: человек на сайте заполняет форму и отправляет ее кнопкой submit, по этой кнопке срабатывает пхп скрипт, который отправляет данный в ПО менеджера. Там он обрабатывает данные и при сохранении они выгружаются в БД mysql, откуда вышепиведенный код их и получает после появления и выводит на страницу (

(Отредактировано автором: 07 Мая, 2017 - 15:27:06)

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


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB