Fehler beim Löschen des temporären Speichers

Lesezeit: 4 Minuten

Benutzer-Avatar
Sahil Kore

Fehler beim Löschen des temporären Speichers: Es wurde festgestellt, dass bestimmte Dateien für den Zugriff innerhalb einer Webanwendung nicht sicher sind oder dass zu viele Aufrufe an Dateiressourcen erfolgen. Sicherheitsfehler

Ich bekomme diesen Fehler in der Konsole. Ich habe einen Skriptnamen script.js, der Ajax-Aufrufe ausführt, um Daten aus PHP abzurufen.

Irgendeine Idee warum?

Hier ist mein jQuery-Skript

$(document).ready(function() {

  var loading = false;
  var docHeight = $(window).height();

  $('.timeline').css({minHeight: docHeight});

  function get_tl_post() {

    if (loading==false) {

      loading = true;

      $.ajax({
        type:"POST",
        url:"timeline.php",
        data:"data=instagram",
        beforeSend:function(){
           $('.loader').fadeIn("slow");
        },
        complete:function(){
          loading = false;
          $('.loader').fadeOut("slow");
        },
        success:function(data) {
          if(data=="error")
          {
            get_tl_post();
          }
          $(data).hide().appendTo(".timeline").fadeIn(1000); 
        }
      });
    }
  }

  $(window).scroll(function(){
    if ($(window).scrollTop() == $(document).height() - $(window).height()) {
      get_tl_post();
    }
  });
});

  • Können wir das Drehbuch sehen?

    – ZeroBased_IX

    11. Juli 2015 um 16:32 Uhr

  • @Jezzabeanz Sicher, in der Beschreibung hinzugefügt. Irgendeine Idee?

    – Sahil Kore

    13. Juli 2015 um 5:36 Uhr


  • Anstatt von if (data=="error"){ get_tl_post(); }Versuchen console.log(data) & sehen Sie, was in der Konsole Ihres Browsers abgemeldet ist. Sie könnten in einer Endlosschleife stecken.

    – Jon sah

    14. Juli 2015 um 5:31 Uhr


  • Führen Sie diese Seite von einem Webserver aus? Auch wenn ein Fehler auftritt, wird die Funktion weiter ausgeführt. Sie sollten diese Rekursion möglicherweise noch einmal überdenken. Fügt möglicherweise einen Zähler hinzu, sodass er nur versucht, eine bestimmte Anzahl von Malen zu laufen.

    – ZeroBased_IX

    14. Juli 2015 um 16:04 Uhr

  • Sollte nicht Ihr $(document).ready(function() { end with …)}; Das sehe ich hier nicht. Es sieht aus wie ein einfaches Rekursionsproblem. Ich denke, get_tl_post() wird möglicherweise immer wieder aufgerufen.

    – Schneesturm

    16. Juli 2015 um 1:01 Uhr

Dies liegt an der Netzwerkzuordnung Ihrer Ressourcen.

Mit anderen Worten, Sie könnten Workspace-Ordner hinzugefügt in Ihren Chrome-Entwicklungstools. Wenn Sie nun versuchen, Änderungen an einigen Dateien vorzunehmen, wird die Anforderung an das Dateisystem gestellt. Das funktioniert eine Weile gut. In einigen Szenarien entfernen Sie jedoch Ihre Netzwerkzuordnung.

Wenn Sie dann versuchen, diese Webseite im Browser zu öffnen, werden Sie möglicherweise nach einer Neuzuordnung von Netzwerkressourcen gefragt und versuchen dennoch, das Dateisystem zu aktualisieren. Und das ist, wenn Sie diesen Fehler erhalten. An deinem Skript ist nichts auszusetzen.

Jetzt könnte die einzige Lösung dafür sein, den Cache zu entfernen und dann das System neu zu starten. Wenn das Problem weiterhin besteht, können Sie Chrome einfach neu installieren und dies sollte behoben sein.

Darüber hinaus kann die Netzwerkzuordnung manchmal auch mehrere andere Probleme verursachen. Zum Beispiel die Größe der CSS-Datei auf 75 MB oder mehr erhöhen. Sie müssen also Vorsichtsmaßnahmen treffen, wenn Sie mit der Netzwerkzuordnung spielen.

Optional, wenn Sie auf einem Mac … oder sogar auf Windows sind und sh-Befehle verfügbar haben.

sudo find / -type f -size +50000k -exec ls -lh {} \; | awk '{ print $9 ": " $5 }'

Drücken Sie dies in Ihrem Terminal, um die einzelne Datei des Täters zu finden, die über 50 MB groß ist. dann könntest du sie entfernen.

Hinweis: Was der obige Befehl bewirkt, findet alle einzelnen Dateien, die mehr als 50 MB groß sind, und druckt sie einzeln auf Ihrem Terminal aus.

Benutzer-Avatar
Jaylen

Wenn ich raten müsste, würde ich deine sagen timeline.php Das Skript gibt immer “Fehler” zurück, sodass Sie zu viele Aufrufe rekursiv machen und der Browser sie blockiert.

Versuchen Sie, den rekursiven Funktionsaufruf zu eliminieren, und prüfen Sie, ob das Problem dadurch behoben wird.

Entfernen Sie die folgenden 3 Zeilen und versuchen Sie es erneut:

if (data == "error")
{
    get_tl_post();
}

Wenn Ihr Ajax-Aufruf aus irgendeinem Grund fehlschlägt, kann dies zu zu vielen rekursiven Aufrufen der führen get_tl_post();.

Ich schlage vor, dass Sie die verwenden error -Eigenschaft für die Fehlerbehandlung und um Situationen zu vermeiden, in denen Ihre Funktion rekursiv aufgerufen wird. Eine Idee könnte sein, eine Richtlinie festzulegen wie „Wenn die Anfrage fehlgeschlagen ist/Daten fehlerhaft sind, warten Sie eine gewisse Zeit und versuchen Sie es dann erneut. Wenn X Wiederholungen durchgeführt werden, zeigen Sie einen Fehlercode und beenden Sie die Anfrage“.

Unten ist ein Beispiel für ungetestet Code, um Ihnen die Idee zu zeigen:

var attempts = 0;
$.ajax({
  //Rest of properties
  success: function(data) {

    if(data == "error") {
      if(attempts < 3) {
        setTimeout(function(){
          get_tl_post();
          ++attempts;
        }, 2000);
      } else {
        //output failure here.
      }

    }

    //Rest of code....
  }
});

1225230cookie-checkFehler beim Löschen des temporären Speichers

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy