Ответы пользователя по тегу JavaScript
  • Прогресс выполнения php foreach в ajax запросе?

    @Fellowship
    Все варианты, предложенные здесь подразумевают установку дополнительного ПО или использования иных технологий.

    Но на самом деле можно обойтись и без них.

    Смотрите.
    У Laravel есть замечательный механизм кронджобов. Используйте его в связке с mysql.

    Допустим у нас есть таблица с тасками для выполнения в фоне с 4мя полями
    id, task, progress, result
    (я уже правда не помню структуру таблицы laravel у кроновых тасков)

    И ajax запрос первый будет лишь командой на вставку новой задачи, который на js возвращает лишь id таска.

    Далее на клиенте реализовываем второй запрос - проверка статуса. Сам запрос просто запрашивает из базы значение поля progress из базы, а Js, например, рисует красивый прогресс. И пускай он с интервалом раз в секунду или несколько секунд (в зависимости от задачи) опрашивает сервер.

    Далее реализовываем третий запрос - получение результата. Как только на второй запрос получили ответ, что таск выполнен на 100%, отправляем запрос на получение результата который берет его из базы (или из redis, или из сессии, короче из любого хранилища. Если сайт не нагружен можно и в базе хранить в сериализованном виде).

    А сам соответственно таск пускает выполняется себе в фоне и никого не трогает. Если это vds или dedicated то на такие процессы вообще можно поставить ограничения и по памяти и по нагрузки на проц, или вообще вынести на отдельный docker или виртуальный контейнер. Короче, поле для деятельности масса.

    Плюсы такого варианта:
    • не нужно использовать современные технологии типа websoket (по их незнанию или по нежеланию или просто отсутствию возможности)
    • Поддержка браузеров явно больше чем у WebSocket (wikipedia)
    • достаточно использовать только встроенные технологии laravel
    • не требует сторонних библиотек


    Минусы данного подхода:
    • Все таки действительно 21 век на носу и можно уже изучить WebSocket
    • Требует постоянного опроса сервера, хоть нагрузка и небольшая от них, но все таки нагрузка
    • Вопрос с хранением результатов остается открытым для очень больших запросов и при высокой нагрузке
    Ответ написан
    Комментировать
  • Каков секрет правильного ajax?

    @Fellowship
    Очень понравился вариант от DarkHole, но я бы вам на сервере, еще посоветовал, изучить GULP и просто миницифировать и собрать все css и js скрипты в один.
    Пользователь, зайдя на страницу всего лишь один раз скачает все CSS и JS, а вы дальше по варианту DarkHole просто подмените body.

    Это не самый лучший способ для очень крупных и разносторонних сайтов, но для небольших сайтов, где пользователь пройдя по 3-5 страниц и так скачает 80% всех стилей и скриптов, это просто сэкономит и вам время разработки и внешне сайт будет открываться быстрее, так как все уже будет лежать в кеше.
    Ответ написан
    2 комментария
  • Как в iframe приложении сделать бд?

    @Fellowship
    Есть вариант передать из сайта данные в iframe. Называется postMessage. Вот ссылка на документацию https://developer.mozilla.org/en-US/docs/Web/API/W...

    После того как вы получите в iframe необходимую информацию можете манипулировать ей как хотите через js.

    Связь двухстороняя, можно как отправлять, так и получать данные и внутри и вне фрейма
    Ответ написан
    Комментировать
  • Как применить стили?

    @Fellowship
    Приложите сюда пример таблицы стилей. Боюсь, что без примера, вам никто толком не ответит, так как вопрос очень размытый.
    Ответ написан
    Комментировать