feat:add auto pollTimer

This commit is contained in:
leeliforever 2026-03-07 20:24:40 +08:00
parent 3b2e32d07d
commit d361f44517
2 changed files with 13 additions and 65 deletions

View File

@ -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<existList.length;j++){
if(existList[j].content===c && Math.abs(existList[j].time-t)<=3000) return true;
}
return false;
}
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(isDuplicate(item)) continue;
if (item["mes_type"] == "kefu") {
item.is_kefu = true;
item.avator=item["kefu_avator"];

View File

@ -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<newMsgs.length;i++){
_this.msgList.push(newMsgs[i]);
}
_this.scrollBottom();
}
});
},5000);
},
scrollBottom:function(){
var _this=this;
this.$nextTick(function(){
@ -765,12 +715,6 @@
this.scrollBottom();
},
},
beforeDestroy:function(){
if(this.pollTimer){
clearInterval(this.pollTimer);
this.pollTimer=null;
}
},
mounted:function() {
document.addEventListener('paste', this.onPasteUpload)
document.addEventListener('scroll',this.textareaBlur)