Хром сбросить кэш js
Мы развернули последний код JavaScript, но мы не можем получить последний код JavaScript.
От редакции. Этот вопрос частично дублируется в следующих местах, и ответ на первый из следующих вопросов, вероятно, является лучшим. Этот принятый ответ больше не является идеальным решением.
Это смущает меня: «Мы развернули последний код JavaScript, но мы не смогли получить последний код JavaScript» Я предполагаю, что вы имеете в виду, как заставить клиентские браузеры использовать вашу последнюю версию javascript, а не их кэшированную версию - в этом случае вам нужен ответ Грега. Если вы хотите знать, как это сделать в своем браузере, это ответ Дэвида Джонстона. Обычный подход заключается в том, чтобы прикрепить ?version=xxx файлы к связанным JS-файлам на этапе сборки. Каждая новая сборка будет запрашивать новую версию файла JS. @JuanMendes Это не всегда работает. Этот же шаг предлагается, когда люди сталкиваются с проблемами, пытаясь увидеть последний значок. Это просто не гарантировано работать.Вы можете вызвать window.location.reload (true), чтобы перезагрузить текущую страницу. Он будет игнорировать любые кэшированные элементы и получать новые копии страницы, CSS, изображений, JavaScript и т. Д. С сервера. Это не очищает весь кеш, но имеет эффект очистки кеша для страницы, на которой вы находитесь.
Однако вашей лучшей стратегией является создание версии пути или имени файла, как указано в различных других ответах. Кроме того, см. Revving Filenames: не используйте строку запроса по причинам, которые не следует использовать в ?v=n качестве схемы управления версиями.
Вау, спасибо! Это хорошо работает и для кеша приложений HTML5, загруженного из файла cache.manifest. У меня был старый манифест, который не удалялся из памяти, поэтому один браузер, в котором он был кэширован, просто не отображал новые файлы. Я набрал это в консоли javascript и работал нормально. Спасибо! но с изменением имени файла . разве вы не сохраните все предыдущие версии на месте? в противном случае вы получите много неудачных попыток от поисковых систем и что не читать старые версии (или закладки / связанные изображения) Это то же самое, что пользователь нажимает кнопку обновления? @Manuel Отключит доступ к странице только из кеша того URL, который вы назвали location.reload (true). Он никогда не удаляет исходную страницу из кэша, так как он просто добавляет метку времени к новому запросу, и если на этой странице выполняются другие вызовы, выполняемые асинхронно, эти запросы НЕ будут отключены. Например. Если вы обновите страницу с помощью reload (true), которая загружает некоторый html, и на этой странице есть скрипт, который выполняет второй вызов ajax для отображения большего количества html на той же странице, во втором запросе не будет отключено кэширование.Вы не можете очистить кеш с помощью JavaScript. Распространенным способом является добавление номера редакции или последней обновленной метки времени в файл, например так:
Однако обратите внимание, что многие прокси не будут кэшировать файл, когда у него есть строка запроса Смотрите ответ Кевина Хакансона . Как я могу очистить кеш, когда весь HTML был кэширован? Это не повлияет, даже если номер версии добавлен из-за кэшированного HTML. Помогите Если я не могу очистить элемент кэша, то почему MDN говорит, что я могу? Чего мне не хватает? Я попробовал то, что говорит MDN, но не повезло.Попробуйте изменить src файла JavaScript? Из этого:
Этот метод должен заставить ваш браузер загрузить новую копию файла JS.
это ничего не делает, кроме как быть чем-то другим. это может быть? 12345 или? Кайл Значит, имя файла тоже нужно менять? Или просто путь src, который нужно изменить?Помимо кэширования каждый час или каждую неделю, вы можете кэшировать в соответствии с данными файла.
или даже использовать время модификации файла:
Могу ли я проверить, правильно ли я понимаю? С опцией 1 при изменении файла изменяется хэш контрольной суммы md5, который затем изменяет URL-адрес. Браузер видит новый URL и запускает новую загрузку файла. Полученные данные, добавленные к URL, игнорируются сервером. Если это так, чертовски приятно. Кроме того, интенсивно ли использует MD5 весь файловый процессор? Я подумываю о том, чтобы сделать это для файлов css и js навсегда, но я не хотел бы видеть снижение скорости сервера из-за этого. Использование контрольной суммы - хорошая идея, но это должно быть сделано правильно. Вычисляя его, каждый запрос для каждого файла значительно снизит вашу производительность. Querystring не подходит для кеширования, смотрите другие ответы. Правильное использование - добавить контрольную сумму (часть?) Или номер версии к имени файла и использовать вместо этого это новое имя (вы можете использовать скрипт сборки, чтобы сделать это автоматически при развертывании). Смотри ворчание , рев и усмин .Вы также можете принудительно перезагружать код каждый час, например, в PHP:
@GMsoF - это просто дополнительный параметр get, который используется (в данном случае), чтобы сообщить браузеру, что это «другой» файл. Так что браузер откажется от кэшированной версии и загрузит эту. Это часто используется с «последней датой изменения» файла. Я надеюсь, что это имеет смысл ;-)поместите это в конце вашего шаблона:
пожалуйста, предоставьте некоторые объяснения вашего решения @GabrielEspinoza он перезагружает файлы с помощью javascript, что позволяет обновлять кэши.попробуйте использовать это
Вот фрагмент того, что я использую для своего последнего проекта.
Наш процесс публикации генерирует файл с номером ревизии текущей сборки. Это работает с помощью URL, кодирующего этот файл и использующего его в качестве кеша. В случае отработки отказа, если этот файл не существует, используются год и номер недели, чтобы кэширование продолжало работать, и оно будет обновляться не реже одного раза в неделю.
Кроме того, это обеспечивает очистку кеша при каждой загрузке страницы в среде разработки, поэтому разработчикам не нужно беспокоиться об очистке кеша для любых ресурсов (вызовов javascript, css, ajax и т. Д.).
или вы можете просто прочитать js файл сервером с помощью file_get_contets, а затем добавить в заголовок echo содержимое js
Возможно, «очистка кеша» не так проста, как должна быть. Вместо очистки кеша в моих браузерах я понял, что «касание» файла фактически изменит дату кеширования исходного файла на сервере (проверено на Edge, Chrome и Firefox), и большинство браузеров автоматически загрузят самую свежую свежую копию что на вашем сервере (код, графика и любые мультимедиа тоже). Я предлагаю вам просто скопировать самые последние сценарии на сервере и решить проблему "сделать что-то на ощупь" перед запуском вашей программы, поэтому она изменит дату всех ваших проблемных файлов на самую последнюю дату и время, а затем загрузит свежую копию в ваш браузер:
. остальная часть вашей программы .
Мне потребовалось некоторое время, чтобы решить эту проблему (поскольку многие браузеры по-разному работают с разными командами, но все они проверяют время файлов и сравнивают их с загруженной в браузере копией, если обновление даты и времени выполнят обновление), если вы не может идти по правильному пути, всегда есть другое полезное и лучшее решение. С наилучшими пожеланиями и счастливого кемпинга.
Мне нравится этот подход, но, возможно, я реализую это в неправильной области? Кто-нибудь знает, где добавить это в настройке WordPress? Я добавил его в файл functions.php с прямыми ссылками на файлы JavaScript и CSS, но мне все равно пришлось сделать перезагрузку, чтобы заметить изменения. То, что вам нужно сделать, находится в вашем главном html-каталоге WordPress, отредактируйте ваш index.php для вызова или выполните команду Touch () для файлов, которые вам нужно обновить и загрузить. У меня были проблемы с небольшими фото и js-файлами, которые застряли в кеше. Я пробовал большинство методов, описанных для освобождения из памяти, но лучший способ - загрузить текущий свежий правильный. Вы можете сделать это, просто выполнив «Touch Thing», так как он ничего не изменяет в файле, просто обновляет текущее время и дату, поэтому обманывает ваш браузер, думая, что его другая версия файла и проблема исправлены. Работает в большинстве браузеровУ меня были некоторые проблемы с кодом, предложенным yboussard. Внутренняя J-петля не работает. Вот модифицированный код, который я использую с успехом.
Большинство пользователей знакомо с понятием «кэш» память. Но далеко не каждый знает, где хранится кэш браузера Google Chrome на персональном компьютере или мобильном устройстве.
В сегодняшней инструкции вы сможете узнать, где именно находится папка с кэш данными браузера Гугл Хром, а так же, как посмотреть содержимое кэша. Сразу стоит сказать, что в зависимости от устройства и операционной системы расположение характерной папки будет разным.
Как просмотреть содержимое кэша
Просмотреть содержимое кэша браузера Google Chrome на персональном компьютере не так уж и сложно. Однако для этого потребуется сделать множество действий. Если быть конкретнее, то понадобится выполнить следующие шаги:
- Открываем любую страницу браузера Гугл Хром. Находим значок в виде трех точек, который располагается в правой верхней части экрана, и нажимаем прямо по нему левой кнопочкой мыши.
- Теперь, когда появится основное меню браузера, наведите курсор своей мышки на графу «Дополнительные инструменты». Сразу же после этого должно выдвинуться новое окошко, в котором необходимо заметить пункт «Инструменты разработчика» и щелкнуть по нему левой клавишей мышки.
- Изначально у вас откроется специальный раздел на вкладке «Elements». Вам потребуется найти иконку в виде двух стрелочек вправо и клацнуть по ней левой клавишей мышки. Данный значок располагается рядом со строкой «Perfomance».
- На вкладке появится маленькое окошко. Кликните левой клавишей мыши по разделу «Application».
- После чего, в левой части этого раздела появится список с основными подразделами. Найдите там графу «Cache Storage» и щелкните по ней несколько раз левой клавишей мыши.
- После этого появится ещё одна графа. Вам потребуется нажать по ней ЛКМ.
- Вот, собственно, и все. Таким образом, вы сможете открыть список с кэш данными браузера Google Chrome. При нажатии по любому представленному пункту, немного ниже появится та самая информация, что хранится в кэш памяти.
Где находится кэш
Выше вы узнали, как посмотреть содержимое кэша. Теперь имеет смысл разобраться, а где же именно хранится кэш браузера Гугл Хром на том или ином устройстве. Ниже будут разобраны основные виды устройств.
На компьютере
Начать стоит с персонального компьютера. Обратите внимание, что независимо от того, какая именно версия операционной системы Windows установлена на вашем персональном компьютере, алгоритм действий все равно будет один и тот же. Немного ниже будет предоставлен детальный порядок действий.
Windows 10 и Windows 7
Важно сразу понять, что путь к папке с кэшем браузера Google Chrome на персональном компьютере с операционной системой Windows 7 или Windows 10 достаточно длинный. Стоит заметить, что общий путь к подходящей папки выглядит примерно так: «C:\Users\Admin\AppData\Local\Google\Chrome\UserData\Default\Cache». Однако прежде чем перейти к нахождению папки, потребуется выполнить такие действия:
Отобразить все скрытые папки
- Щелкаем левой клавишей мышки по иконке пуска, либо же просто нажимаем по клавише «win». В поисковую строку набираем слова «Параметры папок». Когда в верхней части пуска появятся результаты поиска, найдите пункт с характерным названием и щелкните прямо по нему левой клавишей мышки.
- Когда вы это сделаете, перед вами должно появиться специальное окошко для настройки папок. Изначально будет открыта вкладка «Общее», но вам понадобится перейти на страницу «Вид». Делается это с помощью щелчка левой клавишей мышки.
- Теперь, обратите внимание на подраздел «Дополнительные параметры». Представленный в нем список понадобится пролистнуть в самый низ. Там должна быть графа «Показывать скрытые папки, файлы и диски». По данной строке придется клацнуть левой кнопочкой мыши.
- Для сохранения нажимайте ЛКМ по пункту «ОК».
Таким образом, вы сможете отобразить все скрытые папки на вашем персональном компьютере. Это просто необходимо чтобы найти папку с кэшем браузера Гугл Хром. Теперь переходим к поиску самой папки. Для этого, проделываем весь ряд действий:
Путь к папке
- Открываем «Мой компьютер». В разделе «Жесткие диски» находим «Локальный диск С» и клацаем по нему левой кнопкой мыши.
- Затем, среди представленных папок и файлов необходимо отыскать папку под названием «Пользователь» и нажать по ней левой клавишей мыши несколько раз.
- Вновь нажимаем несколько раз левой клавишей мышки по варианту «Пользователь».
На телефоне
Подводя небольшое заключение сегодняшней инструкции, можно отметить, что найти папку с кэш данными браузера Google Chrome на персональном компьютере возможно, однако для этого потребуется выполнить достаточно много действий. Безусловно, это не займет у вас много времени, если вы будете делать все действия в точности, как указано в инструкции выше.
Безусловно, функция автоматического сохранения индивидуальных сведений пользователя в браузере Google Chrome важна и полезно. Ведь далеко не всем хочется каждый раз вводить пароль для входа в личный профиль или заполнять какую-либо форму. Но, у кэш данных есть и отрицательные стороны.
Поэтому, многие пользователи задаются вопросом, а можно ли отключить кэш в Гугл Хром? Далее в инструкции я постараюсь дать четкое разъяснение, и продемонстрировать некоторые возможные способы по отключению кэша в Google Chrome.
На компьютере
Первый способ подразумевает то, что пользователю время от времени понадобится вручную переходить на специальную страницу браузера и производить очистку кэша. Более подробно узнать об этом вы можете в нашей инструкции по ссылке … .
О втором способе поговорим более подробно. В Гугл Хром есть специальный режим, благодаря которому приостанавливается сохранение кэш данных. Поэтому, если вы будете постоянно использовать режим «Инкогнито», то ваш персональный компьютер не будет захламляться лишней для вас информацией. Чтобы его активировать на полной версии браузера Google Chrome, вам потребуется выполнить такие действия:
- Открываем Гугл Хром на любой странице. Находим значок в виде трех точек, который располагается в правой верхней части вкладки, и нажимаем прямо по нему левой клавишей мышки.
- Указанное выше действие позволит вам вызвать основное меню браузера Google Chrome. Среди представленных строчек находите пункт «Открыть окно в режиме инкогнито» и щелкаете по нему левой клавишей мышки.
- Вот, собственно, и все. Всего лишь за несколько кликов мышки вы сможете открыть вкладку в специальном режиме «Инкогнито». Обратите внимание, что открывать страницу такого типа можно и сочетанием клавиш. Для этого потребуется одновременно нажать на три клавиши – «Ctrl» + «Shift» + «N».
- На скриншоте ниже вы можете увидеть перечень того, что не будет сохраняться. Если говорить кратко, то история браузера, файлы cookie , данные сайтов (кэш) и сведения, которые вы указываете в формах, больше не будут сохраняться.
Третий способ заключается в том, что понадобится отключить сохранение кэш данных в меню разработчика. Если говорить конкретнее, то от вас потребуется проделать следующий набор действий:
- Открываем браузер Гугл Хром на персональном компьютере. Нажимаем клавишу «F12». Это нужно для того чтобы открыть меню разработчика. Изначально раздел откроется на вкладке «Elements». Он вам не подходит. Найдите на главной панели с разделами пункт «Network» и нажмите прямо по нему левой клавишей мышки.
- Затем, прямо под строкой «Network» будет располагаться графа «Disable cache». Именно она вам и нужна. Клацните один раз по ней левой клавишей мыши.
- Вот, собственно, и все. По идее, кэш в браузере Google Chrome теперь не должен сохраняться. Но этот способ сложно назвать надежным.
Опытные пользователи нашли надежное решение вашей проблемы. Чтобы навсегда избавиться от кэш данных, потребуется предоставить браузеру Гугл Хром несуществующую папку или диск. Чтобы это осуществить в реальности, вам понадобится проделать такие действия:
На телефоне
Сразу стоит сказать, что на мобильных устройствах ситуация с отключением кэша в Гугл Хром обстоит примерно так же, как и на персональном компьютере. Официальной функции, которая бы позволила прекратить сохранение кэша на смартфоне, не существует.
Если у вас нет желания вручную удалять кэш браузера Google Chrome, то вы можете постоянно использовать режим «инкогнито». Ниже вы узнаете, как отключить кэш в Гугл Хром на устройстве с операционной системой Android или IOS.
Чтобы воспользоваться режимом «Инкогнито» в браузере Google Chrome, вам понадобится выполнить на своем гаджете с ОС Android или IOS следующие действия:
- Запускаем на мобильном устройстве браузер Гугл Хром. Нажимаем один раз по иконке в виде трех точек, которая располагается в верхней правой части любой страницы.
- Как только вы это сделаете, на действующей вкладке появится меню браузера. В верхней части данного меню должна быть графа «Новая вкладка инкогнито». Именно по ней и потребуется щелкнуть один разок.
- Готово! Благодаря предложенному выше порядку действий, вы сможете открыть вкладку Гугл Хром в режиме «Инкогнито». Таким образом, вы остановите сохранение истории браузера, файлов cookie, кэш данных и сведений, которые вводятся при заполнении каких-либо форм.
Теперь вы знаете, что администрация браузера не позаботилось о том, чтобы пользователь мог в любое время прекратить сохранение кэша в Гугл Хром. Но, тем не менее, выше вы смогли узнать способ, позволяющий временно отключить кэш в Гугл Хром. Безусловно, вы можете использовать режим «инкогнито» каждый раз, когда заходите в браузер. В таком случае, кэш данные никогда не будут появляться на вашем устройстве.
I will make a change to my JS files but it won't really change in the browser, I have to rename the files every time so that it reloads it. Is there some sort of .htaccess command I can add or something to make it stop caching?
It is even caching my html pages hard core. I need to reopen my entire browser just to see changes. Could it possibly be a server problem?
9,887 27 27 gold badges 100 100 silver badges 177 177 bronze badges Does enabling the ETag header in your web server cause Chrome to cache but correctly retrieve a new copy of the file when it has changed?14 Answers 14
You can click the settings icon on top right corner . | More Tools | Developer Tools | Network | Disable cache (while DevTools is open)
For windows, this is F12 or CTRL + SHIFT + I while on mac CMD + SHIFT + I opens up DevTools.
New path for Chrome Update Sept 2018:
Click settings icon on the top right corner . | Settings | Preferences | Developer Tools | Network | Disable cache (while DevTools is open)
635 1 1 gold badge 9 9 silver badges 25 25 bronze badges 18.8k 18 18 gold badges 84 84 silver badges 130 130 bronze badges Major failure by chrome to be caching things. even when the page is marked with No cache. Oh well at least this works, the users can suffer but at least I can develop Please note that the "Settings" are no longer in the bottom right! Click the three dots menu in the top right to get to settings. The location is: top right corner | ". " | settings | Preferences | Network | "Disable cache" (while DevTools is open). This is VERY BAD PRACTICE. No, you should not have a temporary hack for your use. you should have a PERMANENT solution for ALL of your users. The best way is a random query string at the end of the src. src="someJs.js?someRandomStringCreatedByInlineJsOrServerRenderedCode" which would make it so that it had a fresh version everytime. a good random string would be to grab todays date/time and throw it in there. you might have to turn it into a string since itll probably be a date object. It is really really bad that this was the chosen answer and upvoted so heavily. As of Chrome 61.0.3163.100, it seems that the option now lives under More Tools/Network Conditions. "Developer Tools" option no longer exists.A faster way to do this is by right clicking the refresh icon beside the address bar and choosing Empty Cache and Hard reload
Just make sure Chrome's dev tools is open. (Press F12) By the way. This trick only works on Chrome for Windows, Ubuntu, and Mac OS
FYI, I tried all of this, and absolutely none of it worked. On my machine (with default settings for Mountain Lion), F12 shows the dashboard. how is it much better than the accepted answer? You can reload normally with the accepted answer. I see the option, but in my case, the script was not refreshed.Hold Shift while clicking the reload button ( F5 ).
This forces the web browser to ignore the cached content and pull a new copy of the web page into the browser. Shift + F5 guarantees that the latest website content will be loaded. However, depending on the page size, it is usually slower than only F5 .
add Something like script.js?a=[random Number] with the Random number generated by PHP.
Have you tried expire=0, the pragma "no-cache" and "cache-control=NO-CACHE"? (I dunno what they say about Scripts).
1,829 2 2 gold badges 19 19 silver badges 33 33 bronze badges I stumbled across this question and was skimming through answers. This is a terrible idea, because: 1) generating the random number at every request will cause browsers to re-download the file at every visit. You want a build time value, so that browsers only regenerate the value when you make changes to the site. Since PHP is runtime interpreted, you might need to do it at deploy-time instead. and 2) generating a random number means that sometimes (with the probability increasing over time), the browser will some random old cached copy. If you must do it at request time, use a timestamp! I am doing this and using the build version number, with a decent timeout (1 day) on the header cache value- When you refresh your page in Chrome, do a CTRL+F5 to do a full refresh.
- Even if you set the expires to 0, it will still cache during the session. You'll have to close and re-open your browser again.
- Make sure when you save the files on the server, the timestamps are getting updated. Chrome will first issue a HEAD command instead of a full GET to see if it needs to download the full file again, and the server uses the timestamp to see.
If you want to disable caching on your server, you can do something like:
79.7k 47 47 gold badges 197 197 silver badges 305 305 bronze badges Had this but the pre-check=0, post-check=0 is the addition that made the difference for me.1) Open up the Developer Tools dashboard by going to the Chrome Menu -> Tools -> Developer Tools
2) Click on the settings icon on the right hand side (it's a cog!)
3) Check the box "Disable cache (when DevTools is open)"
4) Now, while the dashboard is up, just hit refresh and JS won't be cached!
The problem is that Chrome needs to have must-revalidate in the Cache-Control` header in order to re-check files to see if they need to be re-fetched.
You can always SHIFT-F5 and force Chrome to refresh, but if you want to fix this problem on the server, include this response header:
This tells Chrome to check with the server, and see if there is a newer file. IF there is a newer file, it will receive it in the response. If not, it will receive a 304 response, and the assurance that the one in the cache is up to date.
If you do NOT set this header, then in the absence of any other setting that invalidates the file, Chrome will never check with the server to see if there is a newer version.
Читайте также: