2012-03-26 4 views
0

Soweit ich weiß, es ist unmöglich, die folgenden zu erreichen, aber nur ein Experte kann dies bestätigen:Cache die Ausführung einer Javascript-Datei

Ich habe Seitennummer 1 bekam, die für einige Benutzer und Anwendungsdaten verlangen, Sobald die Seite geladen wird, verwendet Seite 2 das gleiche Skript und es wäre verschwenderisch, nach denselben Informationen zu fragen.

Ich weiß, dass die Browser das Skript zwischenspeichern, meine Frage ist, ob es auch die Ausführung (Daten) zwischenspeichert.

Die Seiten haben nicht das gleiche Layout, daher ist es nicht möglich, Seite 2 über Ajax neu zu laden.

+1

Browser können (und können nicht wirklich) Ergebnisse zwischenspeichern; es macht im Allgemeinen keinen Sinn. Sie könnten jedoch die Ergebnisse einiger Berechnungen in einem Cookie oder im lokalen Speicher im Browser ablegen. – Pointy

Antwort

2

Der Browser (ernsthaft komisch sein, dass würde) nicht automatisch das Ergebnis des Skripts zwischenzuspeichern, aber Sie kann, indem Sie (und Überprüfung auf) cookies, die neuen local storage stuff auf modernen Browser, etc. Hinweis bei Cookies jedoch, dass sie bei jeder Anfrage an den Server gesendet werden, was zu einer erhöhten Größe der Anfragen führt; Wenn Sie lokalen Speicher verwenden können, tun.

+1

Ich würde hier keine Cookies empfehlen, da diese bei jeder zukünftigen Anfrage übertragen werden.Abhängig von der Form der zu speichernden Daten kann dies zu unnötigem Datenverkehr führen. – Sirko

+0

@Sirko: Ich würde sagen, wir haben nicht genug Informationen, um zu wissen, ob sie eine angemessene Wahl sind oder nicht - aber es ist ein guter Punkt, um für das OP zu verstärken. –

1

Sie können Ihre Daten "zwischenspeichern", wenn Sie eine Art von clientseitigem Speicher wie localStorage verwenden (siehe MDN docu für weitere Details).

Der Browser selbst kann Ihre Anfrage auch intern zwischenspeichern, da sich die Ajax-Anfrage nicht von anderen Anfragen des Browsers unterscheidet (HTML-Dokumente, Bilder usw.). Abhängig von Ihrer genauen Anfrage (einschließlich aller Parameter) kann der Browser eine zwischengespeicherte Version Ihrer Anfrage verwenden, um unnötige Anrufe zu vermeiden. Hier gelten jedoch die üblichen Einschränkungen und Eigenschaften des Cachings, so dass Sie sich auf dieses Verhalten verlassen können: nicht!

1

Der Browser speichert Ihre Daten nicht automatisch, wenn Ihre "Seite" eine neue URL ist.

Aber es ist sicherlich möglich, dass Sie es auf verschiedene Weise One zu implementieren, ist die lokale Speicherung in neuen Browser zu verwenden, die HTML5 unterstützen

Ein weiterer Grund ist die App so zu schreiben, dass es sich um eine einzelne Seite mit mehreren Ansichten ist und Übergänge Verwenden Sie AJAX, um Teile Ihrer Seite (Ansichten) zu ersetzen.

Diese Technik wird immer beliebter.

Ich empfehle "Javascript Web Applications" von Alex MacCaw zu lesen, um Javascript MVC zu verstehen und wie man Javascript verwendet, um eine clientseitige (browserbasierte) Controller zu erstellen und Caching, Status usw. im Browser anzuzeigen und zu verwalten. bei Frameworks sehen auch wie Backbone.js

http://www.amazon.com/JavaScript-Web-Applications-Alex-MacCaw/dp/144930351X/ref=sr_1_1?s=books&ie=UTF8&qid=1332771002&sr=1-1

1

ich vermeiden würde, die Daten zwischenspeichert, es sei denn, es gibt ernsthafte Performance-Probleme (und dann eher die Performance-Probleme beseitigen, als es das Caching). Es ist premature optimization.

Wenn die Daten zwischengespeichert werden, müssen alle Arten von Szenarien (veraltete Daten, gelöschte Daten) berücksichtigt werden (außer wenn die Daten statisch sind, aber dann sind sie sowieso nicht relevant).

Verwandte Themen