Показать сообщение отдельно
  #12 (permalink)  
Старый 26.04.2016, 18:56
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от St.
Как им пользоваться на *nix компах?
Ajax, это всего лишь технология взаимодействия клиент->сервер, и какой у вас сервер не имеет значения.

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

Если загруженные документы нужно связать с добавляемой записью, то нужно сперва добавить запись, получить ID, затем уже заниматься документами, а значит документы где-то должны быть временно храниться. Можно конечно их перенести в какой-то свой временный каталог, но возникает вторая проблема - следить за мусором.

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

Сервер с успехом может хранить документы временно в сессии, плюс в этом в том, что в случаях когда пользователь покинул страницу, не закончив все операции, весь мусор удалит сборщик мусора, при этом при Ajax продлевать время жизни сессии не составит труда, а значит и не пропадет уже загруженное.

То есть этот сценарий в любом случае должен присутствовать вне зависимости от того проверяет ли клиент условия загрузки.

На клиенте же можно также проверять условия, например, в случае если выбранное изображение не соответствует условию, то можно этому полю ввода (индексу в коллекции, если поле с мульти выбром) присвоить метку. А оправляя форму на сервер помещать в FormData() только те изображения, которые не имеют меток "плохой".

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