Jump to content
  • 0

Запретить кешировать файл JS


Spavel_74
 Share

Question

<script language='JavaScript' type='text/javascript' src='test.js'>

test.js - меняется на сервере , каждый раз при перезагрузке - туда пишутся массивы с данными.

Нужно чтобы клиенту кидался всегда новый файл. С первого раза кешируется и вс? :)

Link to comment
Share on other sites

19 answers to this question

Recommended Posts

  • 0

я обошел так:

в js-файле пишем версию (для простоты можно ипользовать дату+время) - var lastver = 20071204;

в хтмл-файле, куда прилинкован скрипт суем маленькую функцию -

<script type="text/javascript" language="javascript">

ну и вызываем функцию по body onload

Link to comment
Share on other sites

  • 0

Вариант конечно - alert неподходит (зачем пользователю знать вообще это)

Интересно брауз. гдето хранит таблицу(файлик) с инфой кешированных файлов.

Можно ли туда залездь через JS и поуберать нужные .js А потом браузер сам дошарит что нужно с сервера подгрузить.

То что он гдето хранит что то типа тодо (test.js=yegcc_6354.js) это точно.

Link to comment
Share on other sites

  • 0
Можно же просто подключать файл с рандомным параметром.

мм... спасибо за идею, только тогда параметр надо не рандомный - ни к чему каждый раз перегружать файл, а менять его при изменении содержимого

Link to comment
Share on other sites

  • 0
Можно же просто подключать файл с рандомным параметром.

мм... спасибо за идею, только тогда параметр надо не рандомный - ни к чему каждый раз перегружать файл, а менять его при изменении содержимого

Идея так себе - как всегда палка о двух концах.

1. если сравнивать файлы в php то результат пустой, 1 файл (1+3=4) и 2 ф. (4+2=6) , по размеру такие файлы равны, а суть у файлов разная.

2. если сравнифать файлы по контенту , то придется сначало читать файл, это скажится на скорости выполнения скрипта, это плохо.

Поэтому мне и пришлось всегда создавать новый файл, а старый тереть.

А вот идея с залезанием в кеш-файл браузера довольно саблознительная.

Link to comment
Share on other sites

  • 0

to Spavel_74:

WingedFox имел ввиду так: <script language='JavaScript' type='text/javascript' src='test.js?рандомный_параметр'>. То есть файл то один, а вот запрос к нему каждый раз меняется и, соответственно, браузер каждый раз будет загружать новый.

Link to comment
Share on other sites

  • 0
to Spavel_74:

WingedFox имел ввиду так: <script language='JavaScript' type='text/javascript' src='test.js?рандомный_параметр'>. То есть файл то один, а вот запрос к нему каждый раз меняется и, соответственно, браузер каждый раз будет загружать новый.

Мы про одно и тоже говорим. Я уточнял про создание файла test.js

Поэтому мне и пришлось всегда создавать новый файл, а старый тереть.

создаю файл test23-10-02.js а test23-10-00.js удаляю

Link to comment
Share on other sites

  • 0
Зачем создавать, проверять и удалять, если можно просто генерировать файл заново какждый раз, а браузер уже сам будет с ними разбираться?

:) Удалять чтобы на сервере свалки небыло

Link to comment
Share on other sites

  • 0
Можно положить в папку с JS .htaccess

AddType application/x-httpd-php .js

Тогда js-файлы будут выдаваться через php с его заголовками и не будут кэшироваться.

По завершении отладки, htaccess убрать

а зачем это делать чтобы потом htaccess убрать. :/

Link to comment
Share on other sites

  • 0
Spavel_74

Откуда будет свалка, если генерируется файл с одним и тем же именем?

Потому что генерируется файл с разными именами , если используется с тем же именем, то он кешируется, и браузеру до фоноря что там написасано. , Скешировал первый раз и вс?...

Link to comment
Share on other sites

  • 0
Spavel_74

Откуда будет свалка, если генерируется файл с одним и тем же именем?

Потому что генерируется файл с разными именами , если используется с тем же именем, то он кешируется, и браузеру до фоноря что там написасано. , Скешировал первый раз и вс?...

Прочитайте топик ещ? раз. Вам ведь говорят что название файла можно оставить test.js, а вот в запросе к этому файлу добавлять случайный параметр. То есть так: test.js?случайный_параметр. При этом при каждом запросе будет скачиваться новый файл.

Теперь ответьте на вопрос: зачем генерировать файлы с разными именами?

Link to comment
Share on other sites

  • 0
1. если сравнивать файлы в php то результат пустой, 1 файл (1+3=4) и 2 ф. (4+2=6) , по размеру такие файлы равны, а суть у файлов разная.

2. если сравнифать файлы по контенту , то придется сначало читать файл, это скажится на скорости выполнения скрипта, это плохо.

нет, имел в виду два варианта:

пхп - сравниваем по дате изменения через filemtime

<script src="script.js?<?php echo(filemtime('script.js')); ?>">

статика - в коде страницы прям в строке script src="script.js?123" можно менять 123 при изменении файла вручную - ведь все равно по фтп загружать будем, так тут уже не принципиально перезалить тоько скрипт или хтмлку тоже

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy