mikuskov

Рейтинг
26
Регистрация
06.04.2021
webinfo #:

Нормально вроде работает и ничего не захламляет. Но я изменял бы GET-параметр только при изменении самого файла, а не при каждом запросе.

Ну заголовки отправляет сервер - либо энджинкс, либо апач. Так что "без всякого" не получится. Либо формировать отправку файла вместе с заголовком через PHP.

GET - надо подставлять не случайное число, а MD5 или, например, дату и время. Это отличная идея, спасибо! Так лишних файлов в кэше будет поменьше. А отправлять файл вместе с заголовком через PHP - это, как я опять-таки прочитал, здорово сильно нагружает оперативную память и для медиа-файлов просто неприемлемо. Видимо, это не вариант. А ещё у меня закрадывается мысль, что я зря пытаюсь бороться с кэшем. Ну есть, ну и пусть будет. Никому от этого не плохо. Только когда я тестирую правки в своей разработке, постоянно обновляя страницу, браузер со временем перестаёт проигрывать файл, зависает. Вот я и решил, что это кэш. Консоль при этом - чиста, и только курсор мигает одиноко. Вот и не могу ошибку отловить, приходится домысливать.

Я вижу все прослушанные файлы в кэше. Все, до последнего. И какое мне дело до лимитов трафика после этого? Но лимиты кэша клиентов - это интересно. И если это так, то это хорошо. Изучу тему.
SeVlad #:
Первый раз слышу про "захламление" HTTP-заголовков. Это что за новая религия?

Честно говоря, я уже не могу найти, где я об этом читал. Но это было упомянуто в развёрнутой статье о кэшировании, и у меня больше доверия сказанному там, чем вами здесь (это естественно, согласитесь). А глубокий смысл запрета кэширования громоздких медиафайлов на самом деле лежит на поверхности и заключается в том, что иначе все они остаются в памяти, и если бы, например, Youtube не удалял их каким-то образом из кэша (я не уверен, что он это делает, но подозреваю), то компьютер у меня давно бы разорвало на шестерёнки во все стороны от избытка сохранённых данных. У меня аудиоплеер, и всё, что пользователь прослушает, останется в кэше браузера. Это не дело.

Что-то это не про то... Чтобы передать команду браузеру (т.е. пару слов заголовка) для файла - не копировать его в кэш, нужно передать сам файл... Какая-то казуистика.

lutskboy #:

HTTP-заголовки отправляет либо nginx либо apache. соответственно нужен или nginx config править или htacces.

хотите контролировать по другому. то отдавайте их с помощью php . но так нагрузка на сервер

Я бы с удовольствием отдал через PHP, но не знаю как.

lutskboy #:

к файлу как сказали выше добавьте в конце че нибудь

например music.mp3?abc

на php

скорее всего файлы отдаются с помощью nginx 

.htaccess не поможет

Слушайте, я весьма признателен за желание помочь, но почему-то никто не обращает внимание на п. 3 - я умею добавлять случайное число к ссылке, но это не то. У меня вполне конкретный вопрос про HTTP-заголовки. Которые работают везде, без всякого nginx. Сервера у всех разные, об этом я тоже написал... Я не в том разделе что-ли вопрос разместил... А в каком, не пойму.

Dram #:
Добавляйте к названию файла какой-нить уникальный хеш при каждой загрузке страницы

К сожалению, я не понимаю что это значит. Но разве это не то же, что и в п. 3 неподходящих вариантов? Мне не нужно "обманывать" браузер, это неверный подход. Мне нужно не давать ему кэшировать. И поскольку, как я понял, не существует надёжных способов этого сделать, кроме передачи HTTP-заголовков, то ни к чему рассматривать другие варианты, тем более что я уже указал на них как на нерабочие.

webinfo #:

У Вас проблемы с восприятием информации. Вам следует внимательнее читать то что Вам пишут чётче формулировать проблему не предлагая вместо проблемы собственные домыслы, и терпимее относиться к критическим замечаниям, раз уж Вы хотите получить ответ.

1. Никто не видел не знал, что Вы с какой-то стати решили смотреть содержимое файла через  AJAX   - это сообщение появилось гораздо позже. 
2. Именно целостность файла и его содержимое имеют отношение к проблеме кодировок, о которой Вы заявили  с самого начала. Насчёт кодировок был Ваш личный вывод, и не надо обижаться, что обсуждение пошло именно в этом русле.
3. Вам уже несколько раз написали, что пустая строка - это браузерная обработка, но Вы упорно отказываетесь это видеть. И я Вам написал, как это решается.

Я уже извинялся за домыслы и неправильную формулировку. Здесь вы безусловно правы. Мне особенно совестно перед Евгением - человек заморочился, скрины выкладывал, а я вёл его по ложному пути...
Проблема была решена уже до того, как вы мне написали.
Браузерная обработка - об этом говорили тоже уже после решения проблемы. Не раньше! Перечитайте. Я не думаю, что у меня проблемы с восприятием информации.

timo-71 #:

Я так не умею🤣


Исходный код документа


5 минут для доказательства, что ничего никуда не теряется. 

Я не очень понял код - я новичок. Может быть, я ошибаюсь, но у меня получается так:
< - на выходе пустая переменная
gfg< - на выходе gfg
<gfg> - на выходе <gfg>
То есть, корректно передаётся только последний вариант. Попробуйте.

Ilya74 #:
Это не даст через AJAX переменную без ничего

alert(itog.length) - выдаст 0. То есть, переменная без ничего. Конечно, нужно преобразовывать и т.д., но это я теперь знаю, когда jkm мне подсказал верный путь.

Всего: 49