From d361f44517c8e8326415df7d2cc2708ee66d485d Mon Sep 17 00:00:00 2001 From: leeliforever Date: Sat, 7 Mar 2026 20:24:40 +0800 Subject: [PATCH] feat:add auto pollTimer --- static/templates/chat_main.html | 22 +++++++------ static/templates/chat_page.html | 56 --------------------------------- 2 files changed, 13 insertions(+), 65 deletions(-) diff --git a/static/templates/chat_main.html b/static/templates/chat_main.html index a399bdb..180b0df 100644 --- a/static/templates/chat_main.html +++ b/static/templates/chat_main.html @@ -738,22 +738,26 @@ } $.get("/2/messagesPages",params,function(res){ let msgList=res.result.list; - let existKeys={}; + let existIds={}; + var existList=[]; for(let i=0;i<_this.msgList.length;i++){ var m=_this.msgList[i]; - if(m.id){ - existKeys['id_'+m.id]=true; - } - if(m.time && m.content){ - existKeys[m.time+'_'+m.content]=true; + if(m.id) existIds[m.id]=true; + if(m.time) existList.push({time:new Date(m.time).getTime(),content:m.content}); + } + function isDuplicate(item){ + if(item.id && existIds[item.id]) return true; + var t=new Date(item["create_time"]).getTime(); + var c=replaceContent(item["content"]); + for(var j=0;j=0;i--){ let item=msgList[i]; - var key1=item.id?'id_'+item.id:''; - var key2=item["create_time"]+'_'+replaceContent(item["content"]); - if((key1 && existKeys[key1]) || existKeys[key2]) continue; + if(isDuplicate(item)) continue; if (item["mes_type"] == "kefu") { item.is_kefu = true; item.avator=item["kefu_avator"]; diff --git a/static/templates/chat_page.html b/static/templates/chat_page.html index b1be921..b06ba38 100644 --- a/static/templates/chat_page.html +++ b/static/templates/chat_page.html @@ -238,7 +238,6 @@ isIframe:false, kefuInfo:{}, showLoadMore:false, - pollTimer:null, messages:{ page:1, pagesize:5, @@ -463,59 +462,10 @@ } if(_this.messages.page==1){ _this.scrollBottom(); - _this.startPollMessages(); } _this.messages.page++; }); }, - startPollMessages:function(){ - let _this=this; - if(_this.pollTimer) return; - _this.pollTimer=setInterval(function(){ - if(!_this.visitor||!_this.visitor.visitor_id) return; - let params={ - page:1, - pagesize: 20, - visitor_id: _this.visitor.visitor_id, - } - $.get("/2/messagesPages",params,function(res){ - let msgList=res.result.list; - let existKeys={}; - for(let i=0;i<_this.msgList.length;i++){ - var m=_this.msgList[i]; - if(m.id){ - existKeys['id_'+m.id]=true; - } - if(m.time && m.content){ - existKeys[m.time+'_'+m.content]=true; - } - } - let newMsgs=[]; - for(let i=msgList.length-1;i>=0;i--){ - let item=msgList[i]; - var key1=item.id?'id_'+item.id:''; - var key2=item["create_time"]+'_'+replaceContent(item["content"]); - if((key1 && existKeys[key1]) || existKeys[key2]) continue; - if (item["mes_type"] == "kefu") { - item.is_kefu = true; - item.avator=item["kefu_avator"]; - } else { - item.is_kefu = false; - item.avator=item["visitor_avator"]; - } - item.time = item["create_time"]; - item.content=replaceContent(item["content"]); - newMsgs.push(item); - } - if(newMsgs.length>0){ - for(let i=0;i