Ich habe diese generische Liste, die im Speicher zwischengespeichert wird. Wie kann ich während des Tests dieses Objekt manuell aus dem Cache freigeben? Ich habe den Cache im Browser gelöscht, aber immer noch, wenn ich ihn aktualisiere, bekomme ich den gleichen Satz von Produkten, weil er mein zwischengespeichertes Objekt in meiner Datenbankabrufmethode überprüft.Wie Sie Objekte aus dem Speicher freigeben
Antwort
coffeeaddict Sie Cache-Ablauf und die Entfernung zu implementieren, um benötigen für Ihre App, um aktualisierte Daten zu verwenden. Wenn Sie Ihre eigene Caching-Implementierung verwenden, stellen Sie sicher, dass Sie diese zwischengespeicherten Daten jedes Mal ungültig machen, wenn Sie die permanente Caching-Datei aktualisieren. Wenn Sie sie also das nächste Mal anfordern, wird sie den vollständigen Pfad durchlaufen und erneut im Speicher zwischengespeichert.
Try Cache.Remove() -Methode zu entfernen, um ein Objekt von ASP.NET-Cache: sind
Cache.Remove("CacheKey");
Da die zwischengespeicherten Elemente in Serverspeicher gespeichert, kann man nicht klar Anwendungscache durch den Browser-Cache zu löschen.
Sie verwechseln den Cache des Browsers (auf dem Clientcomputer) mit serverseitigem Caching.
Ihre Datenbankabrufmethode wird auf dem Server ausgeführt, was nichts mit Ihrem Browsercache zu tun hat (weshalb das Löschen des Cache Ihres Browsers nichts bewirkt).
Ihre Frage ist nicht zu klar, aber ich nehme an, dass Sie das ASP.Net Cache-Objekt für Ihr Caching verwenden.
Sie müssen der Datenbankabrufmethode Code hinzufügen, um das Element im ASP.net-Cache zu aktualisieren. Es würde helfen, wenn Sie den Code schreiben könnte, die Sie haben, aber im Grunde wäre es wie folgt aussehen:
var data = DatabaseFetchStuff....
Cache["databaseInfoKey"] = data;
- 1. Java verliert Speicher beim Freigeben von Threads aus dem Heap
- 2. Temporäre COM-Objekte freigeben
- 3. Wie kann ich Ruby unreferenzierten Speicher freigeben?
- 4. ODBC-Objekte korrekt freigeben?
- 5. Freigeben von zugewiesenem Speicher
- 6. Freigeben von lpsolve-Speicher
- 7. Wird View.removeAllViews() Speicher freigeben?
- 8. Wie Speicher in Try-Catch-Blöcke freigeben?
- 9. Konnte ein Objekt seinen Speicher freigeben?
- 10. Warum muss ich diese Objekte nicht freigeben?
- 11. Entfernen Sie stdClass Objekte aus dem Array
- 12. Muss ich diese Objekte freigeben?
- 13. Entfernen Sie ähnliche Objekte aus dem Array
- 14. Speicher aus C# -Wörterbuch in einem statischen Objekt freigeben
- 15. Löschen Sie mehrere Objekte aus Google Cloud-Speicher mit node.js
- 16. Mehrere Objekte in Delphi freigeben
- 17. Wie verwendet Java-Objekte Speicher?
- 18. Wann Speicher in einer PHP-Erweiterung freigeben?
- 19. Node.js Haufen aus dem Speicher
- 20. android wie man aus dem speicher ausnahme
- 21. So führen Sie eine heruntergeladene Datei aus dem Speicher aus?
- 22. Löschen Sie nur aus dem Speicher nicht aus der Datenbank
- 23. Scrapy Spider nicht Artikel Speicher freigeben
- 24. Selen Objekte aus dem Bildschirm
- 25. Wie löscht man eine dynamisch erstellte Ansicht aus dem Speicher?
- 26. Können wir 'malloced' Speicher mit 'löschen' freigeben?
- 27. Wie kann ich Objekte aus dem Ruhezustand und in den Speicher ziehen. Ich treffe Sitzung Probleme
- 28. Muss ich noch Speicher freigeben, wenn Sie ARC verwenden?
- 29. Muster zum Freigeben von Speicher in C?
- 30. UIView und NSTimer nicht freigeben Speicher
Also ich habe eine BL-Methode. Zuerst überprüft es eine generische Liste, die wir für die Liste der Datensätze füllen. Wenn das zwischengespeicherte Objekt null ist, fährt es mit dem Aufruf unserer DB-Layer-Methode fort, um die Liste aus der Datenbank abzurufen. Das Problem für mich ist, wenn die zwischengespeicherte Liste bereits gefüllt ist, ruft sie nie meine DB-Methode auf. Ich möchte, dass es meine DB-Methode aufruft, weil ich die zugrunde liegende parametrisierte SQL dahinter geändert habe und die Ergebnisse testen möchte. Ich könnte die Prüfung für das zwischengespeicherte Objekt auskommentieren und es zwingen, meine DB-Methode aufzurufen, um die Aufzeichnungen zu erhalten, aber nur neugierig auf einen anderen Weg, dies zu tun. – PositiveGuy
Ich benutze nicht das asp.net Cache-Objekt. Wir erklären ein Objekt, das im Speicher erstellt wurde, einfach so. Auch hier überprüft unsere BL-Methode das Objekt im Speicher, um festzustellen, ob es zuvor mit Daten gefüllt wurde. So überprüft es beispielsweise eine generische Listeninstanz für die Daten. Wenn null, gehen Sie die Daten aus der Datenbank holen und füllen Sie dann das zwischengespeicherte Objekt erneut, damit die nächste generische Listeninstanz im Speicher die Daten zwischenspeichert. – PositiveGuy
Sie müssen wirklich den Code veröffentlichen. Wenn dies ASP.Net ist, wird ein Objekt im Speicher zwischen Seitenanforderungen nicht beibehalten. – womp