Debugger писал(а):записываю в скрытые textarea
Debugger писал(а):Chrome при отправке формы ест ГИГАБАЙТ памяти
Полагаю, что textarea и не рассчитывался на такое использование (~4Мб текста).
Видимо проблема связана с тем, что полученный base64 текст не содержит разрывов и это каким-то образом приводит к проблемам с отрисовкой (и по-видимому даже для скрытых элементов отрисовка производится).
Иные варианты в голову не приходят.
И да, кажется уже где-то сталкивался с тормозами при отрисовке огромного абзаца. И тут, предполагаю, происходит следующее:
для textarea отрисовываются целиком абзацы (текстовые блоки), попадающие в область просмотра (непроверенная гипотеза). Если при текущем скролле большой неразрывный абзац (без пробелов, табуляции и разметки) попадает в видимую (ну или "видимую") пользователем область, то он отрисовывается полностью (ну и как часто бывает с обработкой текста, зависимость между объемом текста и потреблением ресурсов нелинейна, т.к. на 4Мб бинарных данных (пусть даже преобразованных в BASE64, это никак не облегчает отрисовку) хромиум всяко не рассчитывался).
Ну и ещё предполагаю такой вариант: скрытые поля не отрисовываются, но при простое начинается какая-нибудь отрисовка в кэш, чтобы ускорить отрисовку в том случае, если скрытое поле будет отображено в дальнейшем (полагаю на этом уровне браузер уже не видит отличий между элементом с "display:none" в css, input с параметром type="hidden" (который скорее-всего всё же совсем никогда не отрисовывается) или ещё как-то скрытым элементом).
Ну а вот использование "visibility:hidden" напротив явно приведёт к полной отрисовке текста, т.к. здесь это как минимум потребуется для оценки размеров элемента. Ну и гигантский 4MiB абзац вполне может привести к неприятностям.
PS. Даже если я ошибаюсь насчет отрисовки абзаца целиком, то тем не менее в textarea окажется одно огромное слово. И если даже абзацы не отрисовываются целиком, то слова наверняка не могут быть разбиты при отрисовке. Если даже просто 4MiB данных многократно копируются в памяти, то это уже затратно по времени. А если представить себе обработку растра, полученного из 4MiB текста, вместо ожидаемой обработки растра пофрагментно из слов по 60-70 символов, то явно почва для непредвиденных трудностей имеется.
PPS. Хотя наверняка все так делают и мои предположения относительно ограничении размера для устоявшейся практики беспочвенны (я с веб разработкой мало сталкиваюсь).