suchen

Heim  >  Fragen und Antworten  >  Hauptteil

Ajax-Polling führt dazu, dass der Browserspeicher jedes Mal erhöht wird

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.

2. Ich verweise auf http://blog.csdn.net/mlx212/a... Dieser Artikel nimmt geschäftliche Änderungen an diesem Code vor und hat keinen Einfluss auf die Logik.

我想大声告诉你我想大声告诉你2783 Tage vor883

Antworte allen(4)Ich werde antworten

  • 大家讲道理

    大家讲道理2017-05-24 11:35:53

    题主你这不是轮询了,是无限递归,会爆机的;轮询是有定时间隔的, setInterval。

    Antwort
    0
  • 仅有的幸福

    仅有的幸福2017-05-24 11:35:53

    你的代码有问题,轮询对服务端才有压力,前端和平时你访问接口一样

    Antwort
    0
  • 我想大声告诉你

    我想大声告诉你2017-05-24 11:35:53

    看啦你给的链接 ,不管error还是success都会执行自身 这不是无限递归吗?

    Antwort
    0
  • PHPz

    PHPz2017-05-24 11:35:53

    不用递归,用setInterval

    Antwort
    0
  • StornierenAntwort