"не SPA", это вам о чем-нибудь говорит, на что-нибудь намекает?
Тред довольно специфически написан. Для меня в нем смешались кони, люди. Если у автора действительно нет клиента в виде фронта, то на этом мои полномочия всё
Роман Юрьевич Ипатьев, если я понял вас и автора, то расклад следующий. Нужно, что бы после авторизации, некоторое время был в доступе бэк. Соответственно, предлагается решение, на каждый запрос отправлять пару логин пароль. Значит их нужно где-то хранить, иначе, при релоаде страницы нужно будет заново авторизовываться
Genri_Rus, да, но удаление картинок затратная операция, которая в перспективе потребует дополнительных ресуров на оптимизацию. Возможно у них это происходит по времени, возможно не происходит, возможно что-то еще. Вы можете написать им и узнать)
Genri_Rus, ничего не думаю, как они получают изображение для превью, это неважно. Важно что инпуты содержат данные приходящие с сервера, как минимум поле с url.
Genri_Rus, да, не вопрос.
Сначала рассмотрим случай как у них и предполагаемые причины.
Картинки грузятся на сервер сразу и в ответ приходит объект с данными по изображению, на основе которых формируется разметка в html, которая потом используется для единовременного формирования объекта по форме (сериализации) и отправки на сервер.
Тут есть ряд плюсов.
1. одиночный запрос с данными на сервер имеет шанс быть успешно отправленным равным равный аптайму сервера
2. отсутствует необходимость собирать очередь из отправляемых данных вида сначала изображения, потом данные.
3. для пользователя сокращается время ответа сервера с успешным статусом, по понятным причинам.
4. упрощается процесс проверки валидности на бэкенде изображений и если какое-то не подходит, то пользователю будет сообщено об этом до того, как он отправит форму
Минусы
1. нужно что-то делать с изображениями, которые были загружены, но не были связаны с сообщением.
2. Нужно разбираться с фрагментацией диска, если таковая будет иметь место быть
Альтернативный вариант:
Плюсы:
1. На сервер попадают только те изображения, которые пользователь решит добавить.
2. Нет проблем с фрагментацией
Минусы:
Достаточно отзеркалить плюсы у предыдущего способа
Тут вообще непонятно, особенно это:
Это касалось того, что они встраивают инпуты с метаинформацией в дом страницы, а не держат объект или массив с пришедшей с сервера информацией о загруженном изображении. Соответственно если бы они не помещали данные в дом и не сериализовали их разом, а склеивали данные формы с данными о изображениях, то при удалении превью, безотносительно того было залито изображение или нет, его нужно удалить из объекта js, что бы не склеивать с данными формы
При выборе второго варианта ничего предварительно обрабатывать не нужно, т.к. при сабмите формы удаленные превьюшки просто не попадут на сервер
Да, они не попадут, но пришедший ответ от сервера, а я напомню у нас обычно запрос на сохранение файлов отдельный, потребует склеивания с данными формы. И обрабатывать вам нужно будет не предварительно, а между отправкой изображений на сервер и отправкой формы.
Genri_Rus, мне сложно судить, но кажется, что лучше создавать отдельную таблицу с загруженными изображениями и лениво или по таймеру удалять при отсутствии совпадения, после чего очищать таблицу, либо сохранять изображения во временную папку, а после отправки формы перемещать изображения в постоянную папку, а временную дропать
Genri_Rus, нет, и честно, это выглядит как плохая практика. Проще уж заморочиться с очередью, сохраняя только те изображения, что есть в форме, чем городить, что-то такое. Опять же, вам нужно будет удалять и изображение.
Genri_Rus, скорее всего у них реализовано простое хранилище и именно по этому добавляется возвращается урл, а не id. Опять же это вызвано оптимизацией. Дешевле наращивать дисковое пространство, чем мощности сервера для огромной базы и работы с ней. А так как у них файловое хранилище, то они и не хотят заморачиваться с удалением, либо просрали это во время выкатки фичи. Могут быть и другие варианты, вплоть до выделенного под графику серврера, на котором, по соображениям сохранения данных запрещены все операции по удалению. А возможно это происходит в ленивом режиме раз в несколько дней/недель