Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Общие вопросы о Flash (не затрагивающие ActionScript) (http://www.flasher.ru/forum/forumdisplay.php?f=60)
-   -   Flash и кеширование (http://www.flasher.ru/forum/showthread.php?t=115580)

iNils 04.11.2008 19:56

Цитата:

Сообщение от Dizainoff (Сообщение 774299)
Вы меня конечно извините но как такой бред можно советовать — Такой метод засоряет папку с временными файлами. Контроль над кэшированием должен быть со стороны сервера по средствам php, asp и т.д. Тем более в сети есть бесплатные хостинги с потдержкой php, да и платные сейчас не проблема.

P.S. На один пост может бы я и закрыл глаза но этот метод вы суете везде даже в FAQ - ЖУТЬ

Вы меня конечно извините, но перед "но" ставится запятая. Как этого это не знать - просто жуть :D

Я конечно согласен, что контроль должен быть со стороны сервера, однако...

1. Большинство задающих такие вопросы, либо о пхп не знают, либо не имеют возможности его использовать, либо не имеют возможности контролировать, что и как заказчик будет использовать.

2. Вопросы сервер-сайда должны решаться серверными программистами. А флеш клиентское приложение, поэтому в первую очередь здесь предполагают решение проблемы на стороне клиента.

3. Я разместил ваш код в денвере, а в ответ получил следущее
Код:

<!--error--><br />
<b>Notice</b>:  Undefined index:  HTTP_IF_MODIFIED_SINCE in <b>s:\home\ihome\test\refresh\filename.php</b> on line <b>8</b><br />
<script language=JavaScript src='/errors__/phperror_js.php'></script><!--error--><br />
<b>Warning</b>:  Cannot modify header information - headers already sent by (output started at s:\home\ihome\test\refresh\filename.php:8) in <b>s:\home\ihome\test\refresh\filename.php</b> on line <b>22</b><br />
<script language=JavaScript src='/errors__/phperror_js.php'></script><!--error--><br />
<b>Warning</b>:  Cannot modify header information - headers already sent by (output started at s:\home\ihome\test\refresh\filename.php:8) in <b>s:\home\ihome\test\refresh\filename.php</b> on line <b>23</b><br />
<script language=JavaScript src='/errors__/phperror_js.php'></script><!--error--><br />
<b>Warning</b>:  Cannot modify header information - headers already sent by (output started at s:\home\ihome\test\refresh\filename.php:8) in <b>s:\home\ihome\test\refresh\filename.php</b> on line <b>24</b><br />
<script language=JavaScript src='/errors__/phperror_js.php'></script><!--error--><br />
<b>Warning</b>:  Cannot modify header information - headers already sent by (output started at s:\home\ihome\test\refresh\filename.php:8) in <b>s:\home\ihome\test\refresh\filename.php</b> on line <b>25</b><br />
<script language=JavaScript src='/errors__/phperror_js.php'></script><!--error--><br />
<b>Warning</b>:  Cannot modify header information - headers already sent by (output started at s:\home\ihome\test\refresh\filename.php:8) in <b>s:\home\ihome\test\refresh\filename.php</b> on line <b>26</b><br />
<script language=JavaScript src='/errors__/phperror_js.php'></script><!--error--><br />
<b>Warning</b>:  Cannot modify header information - headers already sent by (output started at s:\home\ihome\test\refresh\filename.php:8) in <b>s:\home\ihome\test\refresh\filename.php</b> on line <b>27</b><br />
<script language=JavaScript src='/errors__/phperror_js.php'></script><!--error--><br />
<b>Warning</b>:  Cannot modify header information - headers already sent by (output started at s:\home\ihome\test\refresh\filename.php:8) in <b>s:\home\ihome\test\refresh\filename.php</b> on line <b>28</b><br />
<script language=JavaScript src='/errors__/phperror_js.php'></script>CWS‚

Я знаю, что у денвера базовые настройки расчитаны на максимальную безопасность, однако, где гарантия, что на хостинге не случится подобных проблем? Собственно поэтому на факе, не столь изящное, но 100% рабочее решение проблемы. Если вы представите код, который проглотит мой денвер, то я с радостью размещу его в факе.

Dizainoff 04.11.2008 21:18

Так как это не форум пхпешников я существенно сократил предложенный мною код для общего понятия. И перед публикацией я его проверил на своем сервере. После вашего сообщения установил Denwer3_Base_2008-01-13_a2.2.4_p5.2.4_m5.0.45_pma2.6.1 и на нем проверил - проверил даже на VS Php for Visual Studio 2008 - работает везде.

В полном коде присутствуют $HTTP_SERVER_VARS, ['HTTP_IF_NONE_MATCH'],['SERVER_SOFTWARE'], ['HTTP_ACCEPT_ENCODING'] да и isset() не забываю использовать.
----------------
Кстати, если флеш программисты и пхпешники не найдут общего языка, то грош цена такой команде да и проекту тоже.
----------------
Перед нами стоит задача помочь нуждающимся, а не пичкать их второсортной информацией.
----------------
По поводу запятой.
Я программист а не лингвист — и это мне не мешает заниматься своим любимым делом.
----------------

iNils 04.11.2008 21:42

Цитата:

Кстати, если флеш программисты и пхпешники не найдут общего языка, то грош цена такой команде да и проекту тоже.
----------------
Перед нами стоит задача помочь нуждающимся, а не пичкать их второсортной информацией.
Перечитайте пункты 1 и 2.

Цитата:

После вашего сообщения установил Denwer3_Base_2008-01-13_a2.2.4_p5.2.4_m5.0.45_pma2.6.1 и на нем проверил - проверил даже на VS Php for Visual Studio 2008 - работает везде.
Я меня стоит Денвер-2 2006-10-04. Меня собственно интересует не версия, а почему пошли эти ошибки.

Dizainoff 04.11.2008 22:16

Так как это не форум пхпешников я существенно сократил предложенный мною код для общего понятия. В полном коде присутствуют $HTTP_SERVER_VARS, ['HTTP_IF_NONE_MATCH'],['SERVER_SOFTWARE'], ['HTTP_ACCEPT_ENCODING'] да и isset() не забываю использовать.
------------------
Другими словами, из за отсутствии в предложенном мною коде проверок.
Поняв общую концепцию данного кода любой программист сможет его доработать под свои нужды.

Wolsh 04.11.2008 23:02

Цитата:

Перед нами стоит задача помочь нуждающимся, а не пичкать их второсортной информацией.
Цитата:

Так как это не форум пхпешников я существенно сократил предложенный мною код для общего понятия.(...) Другими словами, /не работает/ из за отсутствии в предложенном мною коде проверок.
Вы уж определитесь, помогаете или пичкаете? Зачем мне помощь, которая не работает? Зачем мне, не пхп-программисту, код который я должен дописать строками, выходящими за пределы моего понимания, чтобы он начал работать? Какаято странная у Вас логика. Дайте пожалуйста полностью рабочее решение? Спасибо.

alex_past 04.11.2008 23:06

Цитата:

Сообщение от iNils (Сообщение 774772)
Я конечно согласен, что контроль должен быть со стороны сервера, однако...

1. Большинство задающих такие вопросы, либо о пхп не знают, либо не имеют возможности его использовать, либо не имеют возможности контролировать, что и как заказчик будет использовать.

2. Вопросы сервер-сайда должны решаться серверными программистами. А флеш клиентское приложение, поэтому в первую очередь здесь предполагают решение проблемы на стороне клиента.

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

- Разработчик флешек знает, когда он флешку переделал и перезаливает на хост? Знает.
- Кто ему мешает ручками или простейшим bat-файлом у себя на локальном компе до заливки на хост к имени файла дописывать суффикс (например, циклически меняя цифру от 0 до 3? То есть, версии файла game.swf называть по очереди game_0.swf, game_1.swf, game_2.swf, game_3.swf, и опять game_0.swf...) Никто не мешает. Наоборот, это ему же жизнь облегчит, и путаницу с одними и теми же файлами разных версий уменьшит. Диапазон значений суффикса будет зависеть от прогнозируемой частоты перезаливок - так, чтобы полный "оборот" проходился заведомо дольше экспайра этого файла.
При заливке нового файла на хост - старую, уже ненужную версию обязательно удаляем. Обращаю на это внимание потому, что теперь имена не совпадают и сама она не убъется.
- А в корневой флешке грузим не game.swf, а пытаемся в цикле грузить
for (i=3; i>=0; i--) ... ("game_"+i+".swf"), пока не перестанем получать 404.

Вот и все. Если файл менялся - он скачается с хоста. Если нет - браузер его из локального кеша отдаст.

P.S. Цикл for (i=3; i>=0; i--) выглядит необычно. Дело в том, что они с циклом номеров версий должны идти "в разные стороны". Это принципиально, иначе кривые браузеры вроде safari и не почешутся стукнуть на сервер, а просто пошарят в локальном кеше, найдут там предыдущую, не успевшую устареть (в смысле, с непросроченным экспайром) версию и радостно втюхают нам вместо новой, которую мы на сервер положили :)
[Да, я знаю, что браузер обязан кеш сверить с сервером, хотя бы на предмет наличия файла, перед тем как нам совать кешированный файл. Но я сто раз видел, как сафари на это правило плюет :)]

Dizainoff 04.11.2008 23:52

Ну ну. Чувствую люди закипают.
------------------------------

Цитата:

/ не работает /
Свой код я проверял на своем сервере, в денвере3, на PHP for VS2008 уже и на valuehost.ru — все работает. В более старых версиях увы не проверял — стараюсь идти в ногу со временем.

Цитата:

зачем мне помощь, которая не работает?
Вы проверяли?

Цитата:

Зачем мне, не пхп-программисту, код который я должен дописать строками, выходящими за пределы моего понимания
Для ответа на это высказывание можно вести очень долгий диалог.
Если вкратце то:
Я начал программировать с 1990 г. - начинал еще с Бейсика.
Сейчас основная моя деятельность - это программирование на C++, но за все мое общение с компьютером я получил азы работы с такими программами как
3DMax, Maya, SoftImage, AfterEffect, SoundForge, Cubase, FlashMX – FlashCS4,Photoshop, вплотную работал с J2ME, PHP, AS1-AS3. Все эти знания мне нужны только для того, чтобы стать действительно хорошим программистом, использующий язык C++. Ну и т.д. и т.п.
Ссылка на мои работы, чтобы вы не подумали что я выпендриваюсь
http://www.free-lance.ru/users/actionscript

Другими словами я считаю, что программист должен иметь представление о многих вещах.

Wolsh 05.11.2008 00:16

Цитата:

Вы проверяли?
В смысле? Вы же сами признали, что этот кусок не работает, "из за отсутствии в предложенном мною коде проверок" и нужен только для понимания.
Цитата:

(...много...) Другими словами я считаю, что программист должен иметь представление о многих вещах.
Я думаю, описанный Вами программист и сам прекрасно справится. Спасибо за помощь нам, нуждающимся.

Dizainoff 05.11.2008 00:29

Цитата:

В смысле? Вы же сами признали, что этот кусок не работает
Данный кусок не работает у iNils — скорее всего из за настроек самого сервера. А чтобы предусмотреть все варианты, необходимо данный код доработать.

Слегка полазил по просторам интернета
http://www.ddvhouse.ru/articles/text/8/
Конечно проще всего сказать — что ты нам тут подсунул — это все не работает, вместо того чтобы слегка полазить по инету. КОД РАБОЧИЙ

iNils 05.11.2008 00:41

Уважаемый Dizainoff, вы совершаете одну маленькую ошибку, начинаю думать, что тут все программисты вашего уровня. К сожалению, на форуме большое количество начинающих программистов или вообще не программистов, а дизайнеров (это все такие флеш), которым сделать кнопку перехода на другой сайт уже подвиг. Будете проводить здесь много времени, поймете. Вот для них фак когда то и делался (хотя все равно не читают).

Цитата:

скорее всего из за настроек самого сервера.
Настройки я не трогал, денвер у меня для решения оперативных вопросов стоит. А вот на хостинге все работает.

Цитата:

Конечно проще всего сказать — что ты нам тут подсунул — это все не работает, вместо того чтобы слегка полазить по инету. КОД РАБОЧИЙ
Еще раз повторю, здесь много людей, который ваш код вообще не поймут. Вот это им вы потом и объясните.

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


Часовой пояс GMT +4, время: 19:20.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.