2012-01-04 50 views
0

我创建了3页-mainpage.php, post.php,display.php
主页面有一个div id为'chatbox'的主聊天界面,以及一个带有提交按钮的textarea。点击提交按钮,使用jQuery调用post.php &将用户的消息输入到数据库中。这没有问题。在使用PHP&jQuery ajax方法实现的聊天室中,我怎样才能表情符号/表情符号?

然后,我使用jQuery ajax方法(请参阅下文)调用display.php并将返回的内容放入chatbox 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 milliseconds-

这工作也没关系功能。

现在,在display.php,我用

echo PIPHP_ReplaceSmileys($chatdisp['Msg'], 'smileys/'); 

显示聊天中的表情图标。该代码,这是在这里: http://pluginphp.com/plug-in59.php

我的问题:既然我们刷新display.php每2500毫秒,表情图标闪烁每次显示的时间。这不会发生在文本上,因为文本快速,而图像需要时间加载。这并不理想。有没有办法来防止这种闪烁?

+0

为什么你会这么想? – Treffynnon 2012-01-04 13:46:57

+0

您不必大声喧哗,我们都听得很清楚 – kufi 2012-01-04 13:46:59

回答

3

尝试设置为背景的笑容。 1个拥有所有情绪的大文件。它会被加载一次,之后你可以很容易地用块定义类的定义。例如:<div class="emotion lol"></div>

+0

CSS Sprites似乎是一个很好的潜在解决方案。 – fredley 2012-01-04 13:49:58

+0

+1 - CSS sprites可能是此用例的最佳解决方案。 – FtDRbwLXw6 2012-01-04 13:59:13

+0

@EgorSazanovich哪个页面应该将背景设置为背景? – 2012-01-05 03:14:19