Функциональный подход:
2.x
>>> x = [1,2,3,2,2,2,3,4]
>>> filter(lambda a: a != 2, x)
[1, 3, 3, 4]
3.x
>>> x = [1,2,3,2,2,2,3,4]
>>> list(filter((2).__ne__, x))
[1, 3, 3, 4]
или
>>> x = [1,2,3,2,2,2,3,4]
>>> list(filter(lambda a: a != 2, x))
[1, 3, 3, 4]
Нажатие Ctrl + F5 (или Ctrl + Shift + R) для принудительной перезагрузки кеша. Я полагаю, что Mac использует Cmd + Shift + R.
В PHP вы можете отключить кеш, установив дату истечения срока в прошлом с заголовками:
header("Expires: Tue, 01 Jan 2000 00:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
Кэш Chrome можно отключить, открыв инструменты разработчика с помощью F12, щелкнув значок шестеренки в правом нижнем углу и выбрав Отключить кеш в диалоговом окне настроек, например:
[/g5] Изображение взято из этого ответа .
Тип about:config
в строке URL затем найдите запись под названием network.http.use-cache
. Установите это на false
.
Если вы хотите быть уверенным, что эти файлы были должным образом обновлены Chrome для всех пользователей, вам необходимо иметь must-revalidate
в заголовке Cache-Control
. Это заставит Chrome перепроверить файлы, чтобы проверить, нужно ли их повторно использовать.
Рекомендовать следующий заголовок ответа:
Cache-Control: must-validate
Это говорит Chrome проверить с сервером и посмотреть, есть ли новый файл. Если есть новый файл, он получит его в ответе. Если нет, он получит ответ 304 и уверенность в том, что тот, который находится в кеше, обновлен.
Если вы НЕ устанавливаете этот заголовок, то в отсутствие каких-либо других настроек, которые делают недействительными файл, Chrome будет never проверить с сервером, чтобы узнать, есть ли более новая версия.
Вот сообщение в блоге , в котором рассматривается проблема далее.
<script src="foo.js?<?php echo date('YmdHis',filemtime('foo.js'));?>"></script>
Он обновится, если будет изменен.
Точка зрения разработчика. Если вы находитесь в режиме разработки (например, в исходном вопросе), лучший способ - отключить кеширование в браузере с помощью метатег HTML. Чтобы сделать этот подход универсальным, вы должны вставить как минимум три метатега, как показано ниже.
<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />
<meta http-equiv="Pragma" content="no-cache" />
<meta http-equiv="Expires" content="0" />
Таким образом, вы, как разработчик, должны обновить страницу, чтобы увидеть изменения. Но не забывайте комментировать этот код при производстве, ведь кэширование - это хорошо для ваших клиентов.
Режим производства. Поскольку в производстве вы разрешаете кеширование, а вашим клиентам не нужно знать, как заставить полная перезагрузка или любой другой трюк, вы должны гарантировать, что браузер загрузит новый файл. И да, в этом случае наилучшим подходом, который я знаю, является изменение имени файла.
Если вы хотите избежать этого на стороне клиента, вы можете добавить что-то вроде ?v=1.x
в ссылку css-файла, когда содержимое файла будет изменено. например, если <link rel="stylesheet" type="text/css" href="css-file-name.css">
вы можете изменить его на <link rel="stylesheet" type="text/css" href="css-file-name.css?v=1.1">
, это будет обходить кеширование.
Вы можете отключить кеширование с помощью панели инструментов веб-разработчика Firefox.
проверить плагин CSS Cache Buster - это автоматически добавляет случайный номер в URL-адрес таблицы стилей, как и ответ от loler. v = нужно различать каждый раз, когда вам нужен свежий взгляд на css.
http://www.alistercameron.com/2008/09/12/wordpress-plugin-css-cache -buster /
Это также гарантирует, что ваши пользователи получат последний файл CSS, если вы меняете что-либо вживую.
Попробуйте следующее:
link href="styles/style.css?=time()" rel="stylesheet" type="text/css"
Если вам нужно что-то после «?» каждый раз, когда страница обращается к ней, она будет работать time()
. Если оставить это в своем коде навсегда, это не очень хорошая идея, так как это только замедлит загрузку страницы и, вероятно, не понадобится.
Я обнаружил, что принудительное обновление таблицы стилей полезно, если вы внесены значительные изменения в макет страницы и доступ к новой таблице стилей имеет жизненно важное значение для того, чтобы на экране появилось что-то разумное.
Это расширение Firefox было единственным решением, с которым я мог бы работать: https://addons.mozilla.org/en-us/firefox/addon/css-reloader/
Если вы можете написать php, вы можете написать:
<script src="foo.js<?php echo '?'.mt_rand(); ?>" ></script>
<link rel="stylesheet" type="text/css" href="foo.css<?php echo '?'.mt_rand(); ?>" />
<img src="foo.png<?php echo '?'.mt_rand(); ?>" />
Он всегда будет обновляться!
EDIT: Конечно, это не очень практично для всего веб-сайта, поскольку вы не добавили бы это вручную для всего.
Убедитесь, что этого не происходит из вашего DNS. Например, Cloudflare имеет его, где вы можете включить режим разработки, где он принудительно очищает ваши таблицы стилей и изображения, поскольку Cloudflare предлагает ускоренный кеш. Это отключит его и заставит его обновлять каждый раз, когда кто-то посещает ваш сайт.
Правильный ответ выше. Если, однако, вы хотите периодически перезагружать кеш, и вы используете Firefox, инструменты веб-разработчика (в пункте меню «Инструменты» по состоянию на ноябрь 2015 года) предоставляют параметр «Сеть». Это включает кнопку перезагрузки. Выберите перезагрузку для сброса кэш-памяти.