2012-02-13 16 views
19

Korzystanie z require.js Zauważyłem, że często zależności są buforowane przez przeglądarkę i nie są aktualizowane, nawet jeśli zmuszę stronę do pełnego przeładowania (command + shift + R).Debugowanie podczas korzystania z pamięci podręcznej require.js

Aby mieć zawsze zaktualizowany plik, poprosiłem o plik require.js z pytaniem o dodanie "? Datestamp" po adresie URL. Jedyny problem z tym podejściem polega na tym, że punkty przerwania nie pozostają w chromie ani firebugie po ponownym załadowaniu, co sprawia, że ​​debugowanie jest bolesne.

Masz jakieś sugestie?

+0

Czy masz dostęp do konfiguracji serwera sieciowego lub serwera aplikacji lub znasz swój serwer '.htaccess'? – fyr

+0

Mogłem uruchomić Apache na komputerze lokalnym podczas debugowania – Ghigo

Odpowiedz

16

Faktycznie istnieją pewne rzeczy można zrobić:

Albo wyłączyć buforowanie przeglądarka całkowicie go przetestować. Łatwy sposób na przykład w Chrome ma otworzyć okno Incognito Window (CTRL + SHIFT + N) podobne do trybu przeglądania prywatnego w przeglądarce Firefox. Jednak bardziej idealne rozwiązanie dla Ciebie powinno być wymienione tutaj: Disabling Chrome cache for website development

Lub możesz nakazać serwerowi WWW, aby nie wysyłał nagłówków pamięci podręcznej dla javascript lub niektórych plików javascript. Jedną z możliwości jest użycie mod_expires z apache.

+0

Tryb incognito może działać dla prostych projektów, ale nie dla wszystkich. Wyłączenie pamięci podręcznej lub edycja .htaccess jest w rzeczywistości lepszym rozwiązaniem. Dziękuję Ci. – Ghigo

3

myślę, że można użyć urlArgs na required.config

cytatem z http://requirejs.org/docs/api.html#packages urlArgs: dodatkowe zapytania argumentów typu String załączone do adresów URL, które RequireJS wykorzystywanych do pobierania zasobów. Najbardziej przydatne do buforowania biustu, gdy przeglądarka lub serwer nie jest poprawnie skonfigurowany. Przykład ustawienia cache biust dla Urla

+3

Jak napisałem w pytaniu, to rozwiązanie spowoduje bolesne debugowanie. – Ghigo

9

użyłem

require.config({ urlArgs: "v=" + (new Date()).getTime() }); 

to rozwiązać mój problem, ale trzeba pamiętać, aby go usunąć, zanim ty goto produkcji.

+0

Awesome! Może to być 'app.myDevModeVariable && require.config ({urlArgs:" v = "+ (new Date()). GetTime()});' – zsitro

Powiązane problemy