Announcement

Collapse
No announcement yet.

Speicherfreigabe bei DIV .remove()

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Speicherfreigabe bei DIV .remove()

    Hallo

    Ich suche seit Tagen ein lösung:

    Ich hab eine Seite, wo ich mit jQuery in weitere unterseiten (DIV's) nachlade.
    Teilweise große Komplexe seiten, mit weiteren DIV's zum nachladen.

    Code:
    function ajaxAufruf($elementname, $dateinamePHP, $sendOptionen) {
        document.getElementById($elementname).innerHTML = 'Abfrage läuft ...';
        $.post($dateinamePHP,
               $sendOptionen,
        function( result,status ) {
        $( "#"+$elementname ).html( result );
      });
    }

    jetzt will ich für weitere Navigation die geladenen Elemente wieder löschen.
    Wenn ich jetzt
    Code:
    $('.loeschen').remove();
    aufrufe wird das DOM zwar gelöscht (lt. DOM Explorer), der speicher wird aber nicht freigegeben (hauptelement bzw. auch unterlemente bekommen die klasse 'loeschen').

    jedesmal, wenn ich ein DIV erstelle und über die funktion ajaxAufruf befülle, erhöht sich der RAM-Verbrauch im Browser (IE11) um ca. 150 MB

    Code:
        var neuesElement = document.createElement("DIV");
        neuesElement.setAttribute("id","hauptelement");
        neuesElement.setAttribute("style","left: 5px; top: "+(oben+40)+"; width: 1800px; height: 800px; position: absolute; border: 1px dotted blue");
        neuesElement.setAttribute("class","loeschen");
        document.getElementById("but_zieleauswahlliste").parentElement.appendChild(neuesElement);
    Hat jemand eine Idee, wie ich den speicher wieder freibekomme ??? Nach mehrmaligen laden/Navigieren bin ich bereits auf 1GB ram, und da macht der Browser bald schlapp.

    lg S.

  • #2
    Du hast clientseitig keinen Einfluß auf den Speicher.
    Eher deine Navigation überdenken.....
    Christian

    Comment


    • #3
      Hi

      hmmm, macht mich nicht sehr glücklich :-(
      Da ich dem nutzer ein schnelles Ergebnis (Endlos Listenformular mit aktuell ca. 70 Einträgen) geben will, hab ich ein paar Felder mit weiteren Ajaxrequests gemacht.
      So wird das php schnell abgearbeitet und ausgegeben.

      plan A war eigentlich möglichst alles von PHP zu erstellen, da hängen aber zu viele SQL-Abfragen dran und würde länger dauern, deshalb bin ich zu Plan B übergegangen und lade (aktuell 2 elemente) in dem Endlosforular nach (= ca. 140 zusätzliche ajaxAufrufe)

      Kann ich das für den GarbageCollector nicht irgendwie kennzeichnen ???

      lg S.

      Comment


      • #4
        Kann ich das für den GarbageCollector nicht irgendwie kennzeichnen ???
        Nein
        PlanB klingt nicht so toll...140 Ajaxaufrufe.....
        Christian

        Comment

        Working...
        X