Frage

Ich habe eine Lösung bemerkt, die Ihnen helfen könnte, das Caching von JavaScript-Dateien .

Es gibt eine Methode-Zutritts. makelowrowescacheafelayoutsurl . MSDN sagt diese Methode: < EM> gibt eine neue URL zurück, die nicht vom Browser zwischen dem Browser zwischengespeichert wird, wenn die zugehörige Datei ändert .

Es klingt großartig. Ich habe versucht, diese Methode wie so zu verwenden: generasacodicetagpre.

so funktionierte es. Es erzeugte das REV= {md5hash_of_my_file.js} Teil am Ende der URL. Aber nachdem ich diese .js-Datei geändert habe, wurde der neue MD5-Hash nicht generiert. Das REV-Teil blieb dasselbe. Ich habe IISRESET ausprobiert, umsteigen usw., aber nichts hat geholfen. Ich habe diese Methode mit dem Reflektor überprüft und gelernt, dass MakebrowscacheAfelayoutsurl nicht die ganze Zeit MD5-Hash generiert, sondern vom internen spvolitherecache-Objekt erhält.

Ich dachte, ich könnte diesen Cache löschen, indem ich alle Dateien in diesen beiden Ordnern löschte:

    .
  1. % appdata% \ Microsoft \ Webserver-Erweiterungen \ cache
  2. % userprofile% \ appdata \ local \ microsoft \ websitecache

    Deletion hat nicht helpft.Upility.makebrowscachesafelayoutsurl gibt immer noch den gleichen Wert zurück, nachdem die JavaScript-Datei geändert wird.

    Ich habe drei Fragen:

      .
    1. Wie erfrischen ich spvolitiLecache nach allem?
    2. Wie erzwingen Sie Sputilitys.MakebrowsCacheAfelayoutSurl Generieren? Neu? Rev= ohne Cache zu spülen?
    3. In Anbetracht dessen oben, macht es sogar sinnvoll, Sputilitys.MakeBrowscacheaFelayoutsurl zu verwenden?

      Alle zusätzlichen Informationen werden sehr geschätzt!

War es hilfreich?

Lösung

Ich habe es erneut überprüft und ich bestätige, dass diese Methode völlig praktikabel ist.Die URL einer Datei wird nach IISRESET erfrischt.Genau das wollte ich sehen.

Andere Tipps

Ich möchte dies nur als Kommentar hinzufügen, aber Steckexchange erlaubt das nicht. Also, hier ist meine Antwort: Für jeden, der das Problem von zwischengespeicherten Skriptelementen in einem Content Editor-Webpart (oder einem Jslink-in-A-Datei) löst eingebettet auf eine ASPX-Seite. Stellen Sie sicher, dass Sie verstehen, dass Sie den Code nicht nur in eine .js-Datei oder Ihren Content Editor-Webpart nicht einfach plupieren und funktionieren. Es wird nicht.

Das heißt, das Verfahren ist wirklich ziemlich wertlos, da Sie genauso gut das ScriptLink-Tag verwenden könnten. ScriptLink fügt das? Rev für Sie hinzu. Das einzige Mal, dass Sie möglicherweise versucht werden, diese Methode zu verwenden, ist, wenn Sie Skript-Tags in eine Seite einbetten, die Sie niemals tun sollten. Das geht total gegen den gesamten Grundrahmen und den besten Praktiken und wird wahrscheinlich nicht mit MDS arbeiten.

Der Grund, warum ich diese Seite gefunden habe, war, weil ich ein InfoPath-Formular-Webpart auf einer Seite habe, und der vorherige Entwickler verwendete eine separate .js-Datei, um einige Tasten dafür zu erstellen. Die .js-Datei für die Schaltflächen wird in einem Inhalts-Editor-Webpart referenziert. Dies ist wahrscheinlich ein gemeinsames Szenario, aber es ist problematisch, da die Dateireferenz nicht einen nachlaufenden REV hat? Ref, sofern nicht manuell hinzugefügt. Es sei denn, es gibt eine tatsächliche clientseitige Methode, die dazu beiträgt, eine Art von Art von? Rev zu generieren, und ich sehe nicht, wie es geben könnte, meine Stimme ist, dass diese Methode nutzlos ist.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit sharepoint.stackexchange
scroll top