Frage

Ich benutze Django mit jqGrid und lade Seiten über AJAX.Manchmal sind Abfragen sehr komplex und das Laden von Seiten ist sehr langsam, da ferne Seiten viel langsamer sind (was zu erwarten ist, dass die Ergebnisse häufig 100.000 Objekte überschreiten).Ich dachte, dass das Zwischenspeichern von Ergebnissen das Problem lösen wird, indem das Laden der ersten Seite etwas länger dauert, das Laden nachfolgender Seiten jedoch stark beschleunigt wird.

Stattdessen wurde das Laden der ersten Seite unglaublich langsam und selbst nachfolgende Seiten nehmen viel Zeit in Anspruch (11 Sekunden auf einem Standard-PC).Ich verwende das Locmem-Cache-Backend. Irgendwelche Ideen?Ich habe zum Vergleich versucht, die Ergebnisse im globalen Wörterbuch zu speichern, und das war VIEL besser (nachfolgende Seiten dauern nur 1 Sekunde), aber ich habe gehört, dass dies kein sicherer Weg ist.

Irgendwelche Ideen?

War es hilfreich?

Lösung

Sie könnten versuchen, Ihren Cache zu erwärmen.Dies kann manuell oder mithilfe eines Warteschlangen-Frameworks wie Sellerie erfolgen, damit nachfolgende Seiten oder Abfragesätze nach dem erneuten Laden einer Seite zwischengespeichert werden.

Schauen Sie sich Johnny-Cache an, der transparentes Queryset-Caching ausführt.Dies kann (ich wiederhole, kann ) alle Ihre Probleme lösen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top