Чем быстрее отработает скрипт на сервере и отдаст в клиент контент - тем лучше. Скрипт - который ничего не делает 3 секунды - тем не менее потребляет массу ресурсов, начиная от сетевого соединения и заканчивая памятью, выделенной интерпретатору... Ну и так далее...
Если никак не проверять что пришло в запросе с клиента, то залётный хакер сможет зачотно порезвиться, пытаясь угадать названия классов-методов, не имеющих отношения к позволенному функционалу. Для неавторизованных пользователей я бы вообще обработку запросов жестко ограничил.
Для удобства нужно не опрашивать сервер раз в 30 секунд, а подписать клиент на сервер-сайд события, тогда любые изменения на сервере будут пробрасываться на клиентов максимально оперативно...
Напрашивается резонный вопрос - а к чему такие изыски?
Бразуеры совершенно оправданно регулирует доступ к файловой системе посредством JS, иначе зашел чел на страничку, а его ценные данные ррраз и улетели аяксом в неизвестном направлении...
Если надо картинку бабахнуть на сервер, то ее можно сериализовать через canvas, и передать напрямую аяксом, как POST (в GET существенно жестче ограничения на размер передаваемых данных).
Если картинка здоровая, то надо будет пошаманить над конфигом веб-сервера и пхп, или что там на бэкенде принимает запросы...
href="javascript:void(0);" вот это вот везде в ссылках лишнее. Достаточно preventDefault() навесить в одном месте. Ну и в целом переопределять функциональность стандартных элементов таким образом не айс на мой взгляд...
Я бы в массивчик сложил все что надо вывести, а потом уже массивчик 1 раз вывел... В частности console.table умеет красиво показывать разнообразные массивы. В случае с id+email можно очень удобно это все увидеть... Вот урл для погружения в матчасть https://developer.mozilla.org/ru/docs/Web/API/Cons...
Диверсифицировать надобно, я считаю... Смежные ниши осваивать... Логотипы дизайнятся не так часто, в основном при создании проекта или при редизайне/ребрендинге. Как вариант не циклиться на конкретной бирже и искать множество источников. Например наваять себе онлайн портфолио и как-то его прдвигать. Если верить вордстату, в яндексе в месяц всевозможные запросы с формулировками со смыслом "дизайн/разработка логотипа" проходят десятки тысяч раз...
В каждом монастыре свой устав. Либо заходишь в иерархию сверху и диктуешь устав на свой лад, либо заходишь снизу и подстраиваешься под существующий. Если иерархия большая, сложная и старая, то там все сложнее, но суть та же...
Не дам гарантию на 100%, но вроде во время блокирующих операций рендеринг не производится. Соответственно необходимо переписать AJAX запросы на неблокирующий асинхронный манер.