2015-07-21 24 views
7

Pracuję nad systemem, w którym wiele plików szablonów html jest używanych w całym systemie.

Problem polega na tym, że wdrażam aktualizacje, użytkownicy nie mogą zobaczyć zmian html, ponieważ ich przeglądarki używają ich wersji buforowanej. Do tej pory jedynym sposobem, w jaki mogę zachęcić użytkowników do oglądania aktualizacji html, jest zmuszenie ich do szybkiego przeładowania przeglądarki.

Z oczywistych powodów nie jest to idealne rozwiązanie. Gdy użytkownicy migrują do tego systemu, stało się to żmudnym obowiązkiem, upewniając się, że wszyscy wykonują tę czynność. Czy istnieje sposób, w jaki mogę zmusić przeglądarki do dostępu do systemu, aby wyczyścić pamięć podręczną szablonów zgodnie z moim poleceniem? Może ręcznie wyczyścić go po zalogowaniu się do systemu?

+1

$ templateCache nie odpowiada za buforowanie między ładowaniami stron. Rozwiąż go po stronie serwera lub wysyłaj żądania czasowe/wersjonowane, np. "template.html? v = 123". – estus

Odpowiedz

6

$templateCache.removeAll() jest dobry do usuwania szablonów cache

przykładowy kod

myApp.run(function($rootScope, $templateCache) { 
    $rootScope.$on('$viewContentLoaded', function() { 
     $templateCache.removeAll(); 
    }); 
}); 
+0

możesz użyć dowolnego innego zdarzenia zamiast 'viewContentLoaded', to jest tylko na przykład :) –

+1

Pytanie dotyczy pamięci podręcznej przeglądarki, $ templateCache nie ma nic wspólnego z problemem, pomimo tego, co mówi tytuł. – estus

+0

@estus, Powiedział, użył "dużo plików szablonu html"? Czy w pełni przeczytałeś pytania? –