2013-03-07 10 views
7

Próbuję zapobiec buforowaniu 2 plików JavaScript przez przeglądarkę.Zapobieganie buforowaniu w plikach JavaScript

Próbowałem użyć <META HTTP-EQUIV="CACHE-CONTROL" CONTENT="NO-CACHE"> bez powodzenia. Oto mój kod :

<head> 

<meta charset="UTF-8"> 
<meta http-equiv="Cache-control" content="NO-CACHE"> 

<link type='text/css' href='/files/theme/popup_basic.css' rel='stylesheet' media='screen' /> 

<!-- JavaScript Start --> 
<script type="text/javascript" src="/files/theme/gohome.js"></script> 
<script type="text/javascript" src="http://192.168.0.149/redirect.js"></script> 
<!-- JavaScript End --> 

</head> 

Z mojego zrozumienia, powinno to zadziałać. Ale plik redirect.js nadal jest zapisywany w pamięci podręcznej!

Ktoś wie, co robię źle?

+2

Dlaczego chcesz zapobiec buforowaniu pliku? Jeśli generujesz kod HTML na serwerze, możesz dołączyć identyfikator GUID do atrybutu src, co spowoduje powstanie wyjątkowego "pliku" w następujący sposób: '' –

+0

Ponieważ ten plik jest przekierowaniem i należy go przekierować tylko wtedy, gdy serwer jest w trybie online. Gdy jest offline, użytkownik pozostanie na tej stronie. –

Odpowiedz

11

, dyrektywa CACHE-CONTROL: NO-CACHE wskazuje, że informacje w pamięci podręcznej nie powinny być używane, a zamiast tego żądania powinny być przekazywane do serwera źródłowego.

Aby zapobiec buforowaniu przy każdym żądaniu, może być konieczne dodanie losowego ciągu w url. Poniższy przykład to javascript do dynamicznego tworzenia tagu skryptu i dodawania losowej liczby w adresie URL, a następnie dołączania.

<script language="JavaScript"> 
var s=document.getElementsByTagName('script')[0]; 
var sc=document.createElement('script'); 
sc.type='text/javascript'; 
sc.async=true; 
sc.src='http://192.168.0.149/redirect.js?v' + Math.random(); 
s.parentNode.insertBefore(sc,s); 
</script> 

Jeśli chcesz tylko zapobiec 1 razowi, po prostu dodaj jakiś ciąg do src.

<script src="http://192.168.0.149/redirect.js?12345678"></script> 
+0

Nie musisz generować liczby losowej, może to być statycznie napisana liczba przy użyciu czystego HTML. (Zobacz moją odpowiedź). –

+0

Rozważam przypadek, który chce zapobiec buforowaniu pliku przy każdym żądaniu. – Derek

+0

Próbowałem już statycznych numerów przed i nie działają. Dlatego zwykle używam PHP do używania daty. Losowe liczby to naprawdę to, czego potrzebujesz. (Zgaduję.) –

Powiązane problemy