2014-04-30 21 views
10

Ich benutze Phantom js, um den Zugriff auf eine Webseite zu testen, die etwa 350 mal in etwa einer halben Stunde läuft. Ich leite dann Webalizer gegen den Server, um Seitenzugriffe zu testen.PhantomJS Cache halten

Meine Phantom Js Clients sind in einer Instanz von Phantom Js, so dass es grundsätzlich in dem Sinne funktioniert, dass, sobald ein Client die Webseite geöffnet hat den nächsten Client, alle mit individuellen IP-Adressen und MAC-Adressen.

Aber was ich in Webalizer finde ist, dass, während ich 350 Treffer auf den Server bekomme ich nur 1 Treffer pro Instanz von Phantomjs bekomme ich auf einigen CSS-Dateien und andere laufen. Ich bin also auf die Idee gekommen, Kunden zusammen zu cachen.

Ich habe versucht, --max-disk-cache-size = 0 beim Aufruf der Phantom-js-Instanz zu starten, sehe aber immer noch, dass sie gleich wirkt.

Hat jemand schon einmal das gleiche erlebt?

Antwort

19

Run page.clearMemoryCache(); vor page.open kann Cache leeren.

Es gilt in this issue, und es funktioniert gut in PhantomJS 2.0.

+0

Das Problem erwähnt auch, dass das Problem bleiben kann - ist das wahr? –

+2

Funktioniert nicht. Ich bekomme '[TypeError: page.clearMemoryCache ist keine Funktion]' – TetraDev

-1

Es gibt keine Möglichkeit, den Cache (Speicher oder Datenträger) zu löschen. Ein Problem ist auf Github here seit ein paar Monaten offen und ich hoffe immer noch, dass dies in der Zukunft veröffentlicht wird.

Dies ist nur eine neue Instanz von Phantomjs ohne Festplattencache zu starten.

PhantomJs ist ein kopfloser Browser. Bitte betrachten Sie eine PhantomJS-Instanz als eindeutigen Benutzer. Wird 100 Mal die gleiche Webseite in Ihrem bevorzugten Browser geöffnet, werden 100 Mal alle Ressourcen Ihrer Webseite heruntergeladen? Nein, genau so funktioniert PhantomJS.

+3

Ich habe die Lösung gefunden, der Großteil des Codes wurde vollständig implementiert, aber die page.settings.clearMemoryCaches = true-Option folgte nicht dem [link] (https://github.com/ant0ine/phantomjs/commit/91cf016a1cd6e91a11a3516bb2366fd04ff235a9) Zugriff auf den Code, funktioniert ein Leckerbissen. Die Idee, dieselbe Instanz von Phantom zur Steuerung vieler Clients zu verwenden, benötigt weniger Speicher! – Charabon