Ajax-Polling führt dazu, dass sich der Browserspeicher jedes Mal erhöht. Ich habe auch die relevanten Informationen überprüft und es wurde im vollständigen Abschnitt erwähnt
Vollständiger Ajax-Code:
var Timer_getlastLog,ajax_flag;
Timer_getlastLog = setInterval(function () {
if(ajax_flag==true){
getLastLog(lastMsgId);
}
}, 1000);
function getLastLog(msgid) {
ajax_flag = false;
$.ajax({
type: 'post',
dataType: 'json',
url: 'url.html',
data: {msgid: msgid},
success: function (a) {
//此处省略其他的业务逻辑
lastMsgId=a.msgid;
ajax_flag = true;
},
});
}
So, aber der Speicheraufwand steigt immer noch,
Jetzt laufe ich fast 2 Gs. Sie kennen keine Lösung? Ignorieren Sie Steckdosen vorerst.
Ergänzung:
1. Auf der Serverseite verwende ich das TP-Framework und habe dann überlegt, eine Weile (wahr) und dann einen Ruhezustand (1) einzugeben. Dies führte jedoch dazu, dass der Speicheraufwand von Apache nach wiederholtem Aktualisieren erheblich anstieg Seite, was dazu führt, dass die Seite aufgrund einer Überlastung nicht normal geladen und angezeigt werden kann. Das bereitet mir auch Kopfschmerzen.
题主你这不是轮询了,是无限递归,会爆机的;轮询是有定时间隔的, setInterval。
你的代码有问题,轮询对服务端才有压力,前端和平时你访问接口一样
看啦你给的链接 ,不管error还是success都会执行自身 这不是无限递归吗?
不用递归,用setInterval