Доброго дня! Есть html страница с полями и прочими контролами, а также выбранными файлами на компе пользователя. Рассматривается идея использовать отдельные запросы для передачи каждого значения поля, списка и т.п. Файлы передаются поштучно. Сериализация не используется. Темный момент: не слишком ли много запросов к серверу и вообще, не проще ли сериализовать? Опыта не имею, прошу снисхождения.
Конечно проще сериализовать. Либо одна строчка сериализации, либо хрен знает сколько строчек с поштучным выбором. А на стороне сервера уже можно просто не использовать то. что вам не нужно. И, хотя, если бы вам было что-то не нужно, то и в форме быть этого не должно. В общем я не понимаю, зачем вы хотите делить.
Да попросту, сериализовать я еще не пробовал, а вот JS объект с возможностью отправки как файлов, так и текста уже есть. А кроме того, при таком способе мне проще разбирать ответы сервера. Целостность связки, хороший вопрос, должной проработки еще не получил. Собственно оттого и пост.
Если форма отправляется единовременно, всё должно уходить одним запросом. Если у в форме или формах на странице происходит асинхронная загрузка файлов отдельной от других формы с текстовыми данными, то они, понятно дело, уходят отдельными запросами. Если есть асинхронная загрузка файлов, отдельно от основной формы, соответственно вяжете их по сессии или иному генерируемому ключу для формы: это уже зависит от специфики вашей реализации.
Данные на сервер должны приходить одним массивом, иначе не представляю как их сохранять в БД. Возвращать ID записи в каждом ответе? Зачем такие сложности? Благодарю за помощь, для меня вопрос ясен.
Ещё раз повторю, специфика вашей реализации нам не известна. Может возникнуть ситуация когда к примеру асинхронно отправляются файлы связанные с нодой (к примеру картинки к объявлению). У пользователя форма с десятком полей и асинхронная загрузка картинок. Вы приняли, обработали 5 картинок, при этом саму заполненную форму объявления о недвижимости пользователь ещё не отправил (более того, он может вообще её закрыть или обновить страницу). При этом файлы вы должны у себя принять, обработать и связать с нодой (объявлением) которая ещё только будет создана (а возможно и не будет). Соответственно "такие сложности" обусловлены в числе прочего тем, чтобы, как в приведенном примере, принимать и обрабатывать файлы/поля асинхронно, а не десятками разом.
Вы не поверите: http://php.ru/forum/viewtopic.php?f=13&t=53200 Все типично: это объявление и несколько картинок. Да, картинки передаются асинхронно. Хотите сказать, такие сложности избежать не удастся?
Я реализации вашей не вижу, ещё раз вам повторяю. Если в требованиях к реализации нет асинхронной загрузки картинок, то можете отправить всю форму разом. Тут во-первых нужно отдавать себе отчет в том, что файлы де факто у вас всё-равно будут передаваться отдельно друг от друга (независимо от того асинхронно их передаем или нет). Если стоит задача показать пользователю сразу после загрузки превью картинки, то лучше давать загружать их последовательно а не десятками разом (интерфейсные ограничения: перетаскивание по одному в область загрузки, и/или искусственные задержки: асинхронно шлем на сервере файл только после того как был обработан предыдущий о чем получили ответ сервера. Независимо от того какое количество файлов выбрано пользователем для единовременной загрузки). Это в целом упростит и ускорит их ускорит обработку на сервере (что обусловлено банально временными задержками со стороны клиента при поочередной отправке этих файлов) Чтобы упростить себе жизнь, если это позволяет тз, можно сделать сначала загрузку формы объявления, а только потом разрешить загружать картинки (раз уж у тс задача с объявлениями). В этом случае вы сразу создадите ноду и картинки будут привязаны при загрузке к ней. В противном случае, когда ноды у вас нет их придется хранить либо во временном хранилище, либо в постоянном хранилище для изображений вашей бд, но с привязкой к сессии или временному ключу ноды. В последнем случае, нужно не забыть эти записи удалить (вместе с файлами) в том случае, если объявление не было создано и переписывать связи, если оно было создано.
я извиняюсь, но в посте, ссылка на который немного выше, в принципе, ответ получен. благодарю за внимание, рад был по-общаться!