2010-04-01 2 views
0

Иногда мне нужно нажимать CTRL + REFRESH BUTTON (или просто КНОПКУ REFRESH), чтобы страницы обновлялись. Я думал, что это может быть проблемой с использованием панели обновления AJAX и т. Д., Но это также происходит на страницах, где нет частичного рендеринга AJAX. Я также удалил if (! IsPostBack), и все же мне нужно обновить страницу для содержимого, которое будет обновляться.Страница не удаляет кеширование в ASP.NET C#

Это связано с кешем?

Кто-нибудь знает об исправлении этого вопроса? Я считаю, что это происходит только с IE 7 (который я использую). Я пробовал ту же функцию с Chrome, и она работала так, как предполагается.

EDIT: Это не так просто, как настроить кеширование заголовка на 0 или в IE, восстанавливая последнюю страницу всегда при загрузке страницы. Я сделал это, и эта проблема возникает.

Например, на одной части моего сайта вы можете изменить изображение профиля. Если я решила удалить изображение профиля (которое затем должно быть установлено на изображение по умолчанию), оно удаляет только изображение (но не отображает изображение по умолчанию). Страница загружается снова, но она по-прежнему ссылается на фотографию, которую я удалил (так что я получаю X для изображения). Мне нужно перейти на другую страницу, а затем вернуться к странице профиля, чтобы увидеть изображение по умолчанию. CTRL + REFRESH также работает.

Обратите внимание, что эта проблема возникает во всех браузерах (включая Chrome).

Если это помогает, я использую страницы содержания, которые находятся на главной странице.

ответ

0

Ctrl + ref заставляет вас IE перезагружать страницу с сервера вместо использования локальной кешированной версии. Сначала проверьте настройки вашего браузера: Настройки - Общие - Просмотр истории. «Проверить новые версии сохраненных страниц» следует установить на «Автоматически». Затем проверьте, добавляете ли вы заголовок «expires» на свои страницы.

1

Изменение параметров кэша браузера будет решить эту проблему на местном уровне, но чтобы исправить это для общего случая, добавьте заголовок «Истекает: 0» на вашу исходящую страницу, что не позволит браузеру вообще кэшировать его.

Чтобы сделать это в C#, добавьте этот код к событию загрузки страницы:

Response.AddHeader("Expires", "0"); 
+0

Пытался, но не работает. см. обновленный вопрос – waqasahmed

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