Обнаружение, если кэш браузера полон

Мы определили, что полные кэши браузера являются причиной проблемы на нашей экстранет. Это только влияет на небольшое количество наших пользователей, но мы хотели бы предупредить их к проблеме и дать им некоторые указания на то, как решить проблему для себя.

Мы хотели бы использовать аналогичную систему для той, которую использует Gmail. То, когда это обнаруживает, что кэш Вашего браузера полон, не ведет себя, как это должно, это показать предупреждающее сообщение, говоря пользователям, что их кэш полон и что это может вызвать проблемы с Gmail, наряду со ссылкой на страницу справки Gmail при очистке кэша Вашего браузера.

Кто-либо знает, если там какие-либо ресурсы там или примеры того, как использовать JavaScript, чтобы обнаружить, что кэш браузера является полным поведением плохо?

Спасибо.


Разъяснение: То, что мы на самом деле пытаемся обнаружить, я предполагаю, не, полон ли кэш, а скорее повторно требуют ли сценарий, который мы настроили серверную сторону, которая будет сохранена в кэше, от сервера - таким способом, которым браузер ведет себя странно, или как будто его кэш не ведет себя, как это должно.


Дальнейшее Разъяснение: Спасибо всем за обновления на кэшировании. Наши сценарии отправляются с корректными заголовками, и мы только видим эту проблему в IE6 и IE7 - Mozilla и браузеры WebKit, кажется, незатронуты - но я все еще не уверен в том, как точно мы пошли бы об использовании JavaScript и/или XmlHttpRequest для проверки, чтобы видеть, был ли объект получен от кэша, таким образом позволив нам проверку, ведет ли кэш себя плохо.

7
задан abitgone 18 May 2010 в 10:16
поделиться

3 ответа

Кэш браузера не вызовет проблем, если он заполнен ... с несколькими незначительными примечаниями.

  1. Если кеш браузера заполнен, браузер просто должен загрузить свежий контент, а не извлечь его из локального кеша. (например, работает медленнее)
  2. Если кеш браузера содержит недопустимые данные (например, старая копия файла JavaScript), тогда да, у вас могут возникнуть проблемы.(не из-за переполнения кеша, а из-за того, что вы не предоставили пользователю новый файл (Google для: истекает срок действия заголовков ] и как изменить URL-путь к вашим файлам, когда вы вносите изменения скрипта в убедитесь, что вы «сломали» кеш))
  3. В Internet Explorer, когда вы отправляете загружаемый файл (например, электронную таблицу Excel) пользователю, он должен попасть в кеш для работы (ошибка IE) - я не уверен , если файл больше, чем общий кеш пользователя, если это вызывает проблемы с файлом, который сохраняется и, следовательно, загружается (укладчики, пожалуйста, не стесняйтесь подтвердить, если это так или иначе)

Обновление: На основании вашего разъяснения вам необходимо убедиться, что любой сценарий, который вы отправляете клиенту, надлежащим образом кэширован ... что означает:

  • Измените URL-адрес ваших сценариев, если вам нужна новая версия для загрузки (например)
    • http://example.com/scripts/latestThing.js?ver=3425
    • где "ver" извлекается из вашей системы управления версиями чтобы вы всегда s заставляет браузер загружать новую копию в любое время, когда вы меняете сценарий.
  • Убедившись, что URL-адрес изменяется, вы можете отправлять заголовки кеша, которые сообщают браузеру о необходимости кэширования файлов на очень долгое время (например, ваши файлы библиотеки JS (например, jQuery), скорее всего, не меняются каждый час, день, неделя или даже месяц)
5
ответ дан 7 December 2019 в 12:16
поделиться

Это, вероятно, не будет работать как есть. Но это всего лишь идея:

var img = new Image();
(new Image).src = "imageWithFarFutures.png";
window.onload = function(){
    document.getElementById("someIframe").src = "imageWithFarFutures.png";
    // NOW if the server DOES get a FRESH request for "imageWithFarFutures.png"
    // wouldn't it mean that the browser has kicked it out of its cache?
};
0
ответ дан 7 December 2019 в 12:16
поделиться

Рассмотрите возможность отправки заголовка, чтобы ваше приложение никогда не кэшировало содержимое, а срок его действия истекал немедленно.

0
ответ дан 7 December 2019 в 12:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: