Я создал 3 страницы- mainpage.php
, post.php
, display.php
.
. Главная страница имеет основной интерфейс чата с идентификатором div 'chatbox' и текстовое поле с кнопкой отправки.При нажатии на кнопку отправки, используйте jQuery для вызова post.php
и введите сообщение пользователя в базу данных.В этом нет проблем.
Затем я использую метод jQuery ajax (см. Ниже) для вызова display.php
и помещаю содержимое, возвращаемое в div чата.Вот код:
function loadLog(){
if(counter>1)
delaytime=2500;
counter++;
var oldscrollHeight = $("#chatbox").attr("scrollHeight") - 20;
var id=$("#ID").val();
var _url='display.php?Id='+id;
$.ajax({
url:_url,
cache: false,
success: function(html){
$("#chatbox").html(html); //Insert chat from DB into the #chatbox div
var newscrollHeight = $("#chatbox").attr("scrollHeight") - 20;
if(newscrollHeight > oldscrollHeight){
$("#chatbox").animate({ scrollTop: newscrollHeight }, 'normal');
}
},
});
}
Примечание: эта функция вызывается с интервалом 2500 миллисекунд -
setInterval (loadLog, delaytime);
Это тоже отлично работает.
Теперь,в display.php
я использовал
echo PIPHP_ReplaceSmileys($chatdisp['Msg'], 'smileys/');
для отображения смайлов внутри чата.Код для этого здесь: http://pluginphp.com/plug-in59.php
Моя проблема: поскольку мы обновляем display.php
каждые 2500 миллисекунд, смайлики мигают каждый раз, когда они отображаются.Это не происходит с текстом, так как текст быстрый, а загрузка изображений занимает много времени.Это не идеально.Есть ли способ предотвратить это мигание?