Всем доброго и продуктивного времени суток.
Проблема в следующем... Имеется изображение (GIF), которое должно отображаться при ожидании ответа от сервера. Запрос делается с помощью HttpRequest.
Вот часть кода, где находится само изображение(div в dive):
CODE (
htmlphp):
скопировать код в буфер обмена
<div style="onclick="autosuggest();spoiler_toggle(this);" onmouseover="div(\''.$key.'\');">
</div>
<div style="display: none;" onmouseover="div(\''.$key.'\');">
<img src="img/ajaxloader.gif" name="gifloader'.$key.'" id="gifloader'.$key.'" />
<div name="'.$key.'" id="'.$key.'"></div>
</div>
При клике на "спойлере" осуществляется запрос к бд и полученый результат выводится в див, которы при этом меняет свое состояние с "none" на "block", т.е. становится видимым.
При небольшом количестве совпадений\строк, все происходит достаточно быстро, но если их число превышает 200-300, то задержка порядка 1,5-2 секунд происходит. Было решено отображать для пользователя анимированный GIF, который бы извещал, что запрос в процессе. Привожу часть кода, которая, собственно, и отображает скрытый див:
CODE (
htmlphp):
скопировать код в буфер обмена
function autosuggest() {
var q = document.getElementById('divid').value;
var orderby = document.getElementById('jsorderby').value;
var jsasc = document.getElementById('jsasc').value;
// Set te random number to add to URL request
nocache = Math.random();
http.open('post', 'advanced_search_ajax.php?q='+q+'&orderby='+orderby+'&jsasc='+jsasc+'&nocache = '+nocache);
http.onreadystatechange = autosuggestReply;
http.send(null);
}
function autosuggestReply() {
if(http.readyState == 4){
var response = http.responseText;
var d = document.getElementById('divid').value;
var gif = 'gifloader'+document.getElementById('divid').value;
var e = document.getElementById(d);
if(response!=""){
document.getElementById(gif).style.display="none";
e.innerHTML=response;
e.style.display="block";
} else {
e.style.display="none";
document.getElementById(gif).style.display="block";
}
}
}
Собственно проблема: все отображается, но без анимации. И также при закрытии дива и повторном открытии, GIF уже не отображается. Я понимаю, что под РНР это в какой-то степени не подходит, но кажется мне, что проблема именно в HttpRequeste, что-то не учтено, что именно без понятия.
P.S.: в принципе задача стоит отобразить картинку ожидания ответа от сервера и где она будет находиться - в самом диве или по центру страницы поверх всех других не принципиально. Просто не нашел, как отобразить див по центру страницы поверх всего остального. Может быть знающие люди подскажут?!
P.P.S.: если материал не соотвествует тематике ветки,то в таком случае приношу свои извинения.