聊天气泡按时间分组
Chat bubble grouping by time wise
im试图用node.js制作一个聊天应用程序。我想在10秒内将多条消息封装在一个div(气泡)中,比如facebook和gmail聊天。遵循我的代码。
var last_date= Date.now();
var cre_div = "<div class='row message'>new</div>";
function addMessage(msg, pseudo, date, self) {
Date.now = function() { return new Date().getTime(); }
if(self){
if( last_date!=null && last_date+10000<Date.now()) {
var chat = $("#chatEntries").append('<div class="row message"><p class="infos"><span class="pseudo">'+pseudo+'</span><time class="date" title="'+Date.now()+'">'+Date.now()+'</time></p><p>' + msg + '</p></div>');
console.log(chat);
//$("#chatEntries").append(cre_div);
last_date=Date.now();
}
$("#chatEntries").append('<div class="row message self"><p class="infos"><span class="pseudo">'+pseudo+'</span></p><p>' + msg + '</p></div>');
//$("#chatEntries").append(cre_div);
last_date=Date.now();
}
else {
$("#chatEntries").append('<div class="row message"><p class="infos"><span class="pseudo">'+pseudo+'</span></p><p>' + msg + '</p></div>');
//$("#chatEntries").document.createElement('cre_div');
last_date=Date.now();
}
time();
}
尝试一下对我来说有点有趣,我实际上更改了你的代码很多,希望你能明白这个想法,所以你可以使用
Date.now = function () {
return new Date().getTime();
}
var last_group = {
me: false,
time:Date.now()
}
var messages_count = 0;
function addMessage(msg, pseudo, date, me) {
messages_count++;
if(messages_count < 1){
console.log('first message');
createGroup(msg, pseudo, date, me);
last_group.me = me;
} else {
if(last_group.me == me){
if(last_group.time + 10000 > Date.now()) {
//console.log('adding to last group');
addToGroup(msg, pseudo, date, me);
} else {
//console.log('creating new group', last_group.me, me);
createGroup(msg, pseudo, date, me);
}
} else {
//console.log('creating new group', last_group.me, me);
createGroup(msg, pseudo, date, me);
}
}
}
function addToGroup(msg, pseudo, date, me){
$("#group-" + last_group.time).append('<div class="row message' + (me ? ' self' : '') + '">' + pseudo + '<p>' + msg + '</p></div>');
}
function createGroup(msg, pseudo, date, me){
last_group.time = Date.now();
var html = '<div class="group" id="group-' + last_group.time + '"><div class="row message' + (me ? ' self' : '') + '">' + pseudo + ' - ' + Date.now() + '<p>' + msg + '</p></div></div><br>';
//console.log(html);
$("#chatEntries").append(html);
last_group.me = me;
}
setInterval(function () {
addMessage('Hello', 'pseudo', new Date().getTime(), true);
}, 1000);
setInterval(function () {
addMessage('Hello 2', 'pseudo 2', new Date().getTime(), false);
}, 5000);
jsFiddle此处
相关文章:
- Java脚本时间添加
- Json数据包含日期和时间格式
- 如何根据时间运行不同的脚本
- 用每小时的差值填充数组/列表-从下拉列表中给定两个时间值
- 在wordpress一定时间后更改自定义字段
- 更改angularjs中的日期-时间格式
- 将当前时间添加到我的页面上的特定部分
- 门户网站:当地时间有多有用
- 显示时间的脚本
- 如何在窗体打开时从javascript倒计时计时器值中节省时间
- 通过JSON&比较时间
- Javascript时间轨迹
- 将日期时间作为 JSON 发送将无法在我的视图中正确显示
- 将日期时间从json转换为可读格式
- 高库存时期时间与时区不匹配
- Jquery如何检查今天的时间大于使用给定时间
- jquerydatetimepicker日期和时间应在框默认值中,而无需单击框
- primefaces日历可以禁用过去的日期和时间吗
- Jquery函数在错误的时间提交
- 聊天气泡按时间分组