2013-03-07 3 views
7

Я пытаюсь запретить кэширование 2 файлов JavaScript в браузере.Предотвращение кеша в файлах JavaScript

Я старался использовать <META HTTP-EQUIV="CACHE-CONTROL" CONTENT="NO-CACHE"> без успеха. Вот мой <head> элемента кода:

<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> 

С моего занижения, это должно работать. Но файл redirect.js хранится в кэше!

Кто-нибудь знает, что я делаю неправильно?

+2

Почему вы хотите предотвратить кеширование файла? Если вы создаете HTML-код на сервере, вы можете добавить GUID к атрибуту src, в результате получится уникальный «файл», подобный этому: '' –

+0

Потому что этот файл является перенаправлением, и его нужно перенаправить, только когда сервер находится в сети. Когда он находится в автономном режиме, пользователь останется на этой странице. –

ответ

11

<meta http-equiv="Cache-control" content="NO-CACHE">, директива CACHE-CONTROL: NO-CACHE указывает, что кешированная информация не должна использоваться, и вместо этого запросы должны быть отправлены на исходный сервер.

Чтобы предотвратить кеш при каждом запросе, может потребоваться добавить некоторую случайную строку в URL-адрес. В приведенном ниже примере используется javascript для динамического создания тега сценария и добавления случайного числа в URL-адрес, а затем добавьте его.

<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> 

Если вы хотите только 1 раз, просто добавьте строку в src.

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

Вам не нужно создавать случайное число, это может быть статически типизированный номер с использованием чистого HTML. (См. Мой ответ). –

+0

Я рассматриваю случай, который хочет предотвратить кеширование файла при каждом запросе. – Derek

+0

Ну, я уже пробовал статические числа, и они не работают. Вот почему я обычно использую PHP для использования даты. Случайные числа действительно то, что вам нужно. (Я предполагаю.) –

Смежные вопросы