Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » Запрет кэширования Flash-файла в IE

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

Govoryashaya ryba



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Есть: динамически изменяющийся Флэш-файл: отображает текст из текстового файла. Текст переодически изменяется.
 
Проблема: IE загружает флэш со старым текстом, который был в первый раз.
 
В Opere такой проблемы не возникает.
Что сделать с IE? /убийство не предлагать/
 
Помогите, люди добрые.





Исправил название. — Svarga.

Всего записей: 35 | Зарегистр. 20-06-2003 | Отправлено: 18:28 24-07-2003 | Исправлено: Svarga, 04:05 25-07-2003
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Govoryashaya ryba
А в html странице, куда вставлен flash meta no cache не работает?
Или он сам по себе?

Цитата:
 
<meta HTTP-EQUIV="Pragma" CONTENT="no-cache">
 


----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 20:41 24-07-2003 | Исправлено: Cheery, 20:41 24-07-2003
Govoryashaya ryba



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Cheery

Цитата:
 <meta HTTP-EQUIV="Pragma" CONTENT="no-cache">  

Не помогает. В первую очередь попробовал.
Саму страницу он грузит заново, но .swf файл подгружает из кэша.
Может есть какая-то опция подбная pragma no-cash для объектов?

Всего записей: 35 | Зарегистр. 20-06-2003 | Отправлено: 22:59 24-07-2003
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Govoryashaya ryba
Вот..

Цитата:
 
Web browser caching
 
SWFs, like other documents and media retrieved by a Web browser, are often saved, or cached, locally on the user's hard drive. The next time that media is requested the Web browser may load the file from the cache instead of downloading it over the network. This might be desirable for a Flash movie whose content doesn't change often but undesirable for SWFs that are updated frequently with new content or information.
 
The Purpose of Caching
 
Caching is designed to speed up data loading. When a browser request data from a web server, it checks whether that data is already loaded previously and is still on the cache. If yes, then the browser might load from the cache instead of requesting the data again from the server (this avoids a re-downloading, which could be slow on a modem connection).  
 
The caching behavior is somewhat unpredictable. It depends on the browser, the user's cache-setting, and to some extent, the way the script is written, or even the server. For example, on Internet Explorer 5, user can set how large the cache is from Tools » Internet Options » Temporary Internet Files.  
 
For all practical purposes, it is impossible to predict whether a particular piece of data is being cached or not. Yes, we can use "pragma no-cache," and set the server to prevent caching, and so on. But these aren't reliable either, some browsers might still ignore these directives.
 
Using the following techniques, SWFs can be forced to expire immediately from the Web browser's cache or the browser can be forced to re-download the media upon every attempt to access it.
 
Note: The META tags used below will only work with browsers that support these tags.  
 
Use one or all of these methods to ensure SWF files are downloaded each time:  
 
Using the 'Expires' header.  
The Expires header of an HTML document tells a Web browser when a cached document should expire from the cache. Using a date in the past ensures the document will always be expired.Insert the text below between the <HEAD></HEAD> tags of the HTML document containing the embedded SWF.
 
<META HTTP-EQUIV="Expires" CONTENT="Mon, 04 Dec 1999 21:29:02 GMT">
 
Each and every time this document is requested the browser will notice that the cached version has expired and will download the file from it's server of origin.
Using the Pragma: No-Cache header. This code directs the browser to not cache the document at all.
Insert the following text after the closing </BODY> tag of the HTML page containing the embedded SWF.
 
<HEAD>
<META HTTP-EQUIV="PRAGMA" CONTENT="NO-CACHE">
</HEAD>
 
Note: the Pragma: No-Cache header does not work with Internet Explorer 5. Microsoft recommends using the Cache-Control header, instead. See Microsoft's article on this subject.
Simply place a query-string operator, ?, followed by a number on the end of the link URL. in your <OBJECT> tag
 
 
<OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0"
WIDTH="700" HEIGHT="300" id="remote" ALIGN="middle">
<PARAM NAME=movie VALUE="/sandbox/remotessas/remotessas.swf?23">
<PARAM NAME=quality VALUE=high>
<PARAM NAME=bgcolor VALUE=#FFFFFF>
<EMBED src="/sandbox/remotessas/remotessas.swf?23" quality=high bgcolor=#FFFFFF WIDTH="700" HEIGHT="300" NAME="remote" ALIGN="middle"
TYPE="application/x-shockwave-flash" PLUGINSPAGE="http://www.macromedia.com/go/getflashplayer"></EMBED>  
</OBJECT>  
You can also change the extension of your HTML page to ASP and add the following code at the very beginning of your ASP page:
 
<%
Response.Expires = 1
Response.ExpiresAbsolute = Now() - 2
Response.AddHeader "pragma","no-cache"
Response.AddHeader "cache-control","private"
Response.CacheControl = "no-cache"
%>
To ensure that pages or variables called from withing Flash are not cached versions:  
 
instead of:
getURL ("http://www.mxer.com/hello..asp");
 
do this:
unique=new Date().getTime() //will always be unique
getURL ("http://www.mxer.com/hello..asp?unique="+unique);  
 


----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 23:06 24-07-2003
Govoryashaya ryba



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Cheery
Вах, вах!  
Спасибо тебе, добр человек! Ща попробую!

Всего записей: 35 | Зарегистр. 20-06-2003 | Отправлено: 23:32 24-07-2003
SCBRIAN



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
хм...!  
 
а как это переделать под IB2.1.9??  
Буду рад за помощь!

----------
P4-631 3.0Mhz 2Mb/Intel D915GAV/2048Mb DDR400/154Gb Maxtor SATA/nVidia GF-7600GT 256Mb
Acer TravelMate 7720G-302G25Mi/T7300/HD2400XT/2048 Mb/250 GB SATA2

Всего записей: 288 | Зарегистр. 01-10-2003 | Отправлено: 22:13 12-12-2003
SHANDLE

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Микросовт совсем помешалась на своих кэшах. Интересно, зачем кэшировать то, что и так лежит на локальном компьютере?
 
Вот я сижу и делаю страничку с флешкой. Это все хозяйство лежит у меня на компьютере, а не где то на сервере. Иногда хочется посмотреть, как выглядит страничка в браузере. Оказалось, что Internet Explorer почему то лезет за флешкой в кеш. А там - старая версия флешки,  и никакие релоады не достают новую версию. Мне это быстро надоело. Забивать страницу всяким мусором для запрета кеширования флешки мне неохота, к тому же, как я понял, это мусор будет работать на сервере, а не на локальном компьютере. Постоянно лазить в настройки браузера для очистки кеша - тоже далеко и неудобно. Тогда я накатал расширение для IE. Оно добавляет в меню "Сервис" пункт "Удалить *.swf из кеша", который убивает все флешки в кэше. Теперь работать стало проще, когда мне хочется посмотреть в браузере новый вариант флешки, я чищу кеш и перезагружаю страницу.  
 
http://wgapatcher.ru/archives/IeCacheClean.rar

Всего записей: 928 | Зарегистр. 19-01-2007 | Отправлено: 04:41 17-05-2007
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
SHANDLE
есть такой хороший набор клавиш ctrl+f5 и все

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 04:44 17-05-2007
SHANDLE

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Cheery

Цитата:
есть такой хороший набор клавиш ctrl+f5 и все

Буду знать.  
 
Только проблема не только в этом. Браузер, во-первых не хочет сразу брать измененную флешку, а лезет в кэш. Во вторых, после перезагрузки флешки он требует чтобы на неё шелкнули для активации. Лишних и необоснованный движений никому не хочется делать, особенно если это нужно делать очень часто. Решение найдено, как убить двух зайцев сразу.
 
В то место, где на странице стоит код флешки <object>....</object> вместо него вставляется функция, которая делает document.write("<object>....</object>"); Функция выносится во внешний файл. А к url флешки в этой функции дописывается хвостик "flash.swf" + "?" + Math.random();
 
После этого при обычной перегрузке страницы браузер не лезет за флешкой в кэш, а берет новую. И после загрузки не просит её активировать.
 
 
 
 

Всего записей: 928 | Зарегистр. 19-01-2007 | Отправлено: 15:36 19-05-2007
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » Интернет » Web-программирование » Запрет кэширования Flash-файла в IE


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2025

LiteCoin: LgY72v35StJhV2xbt8CpxbQ9gFY6jwZ67r

Рейтинг.ru