Любое приложение — это набор последовательных инструкций. Чтобы выполнить следующую инструкцию, нужно дождаться окончания выполнения предыдущей. Время выполнения всей программы — это суммарное время выполнения всех инструкций. А это значит, что медленная часть программы будет делать медленной всю программу.
Когда речь идет о генерации ответа пользователю от Web приложения, многие операции можно “откладывать”. Имеет смысл откладывать тяжелые операции, которые могут отнять кучу времени:
Все эти операции могут быть выполнены позже, а пользователь получит быстрый ответ от системы и продолжит ее использование:
Чтобы использовать асинхронные операции в Web приложениях важно понять одно их ограничение. Они не могут генерировать ответ пользователю.
Т.е. перенося операцию в асинхронное выполнение, Вы должны убрать из нее всю логику взаимодействия с пользователем.
Системы очередей позволяют внедрить асинхронную работу в любое приложение. Принципиально все работает довольно просто. Вместо выполнения тяжелого участка кода, Вы направляете сообщение на сервер очереди. А сам тяжелый участок переносите в отдельный обработчик, который будет работать независимо от основного приложения.
В PHP есть удобная возможность использовать фоновую работу для завершения медленного скрипта с помощью fastcgi_finish_request() в PHP-fpm.
Использовать преимущества асинхронной работы можно также и на клиентской стороне. В этом случае, Вам следует разделить загрузку страницы на загрузку нескольких компонент, происходящую независимо друг от друга.
Например, у Вас на странице используются данные от внешнего API. Чтобы скорость загрузки страницы не зависела от скорости работы API, Вы можете создать отдельную страницу, которая будет содержать только логику получения данных от API.
Асинхронные операции в приложениях позволяют сделать его более эффективным, а главное быстрым для пользователя. Это одна из самых важных методик оптимизации и масштабирования Web приложений.
Сегодня мы поговорим о том, как выбрать лучшие курсы Power BI в Украине, особенно для…
В 2023 году во всех крупнейших регионах конкуренция за вакансию выросла на 5–12%. Не исключением…
Unicorn Hunter/Talent Manager Лина Калиш создала бесплатный трекер поиска работы в Notion, систематизирующий все этапы…
Edtech-стартап Mate academy принял решение отправить своих работников в десятидневный отпуск – с 25 декабря…
Служба безопасности Украины задержала в Киеве 46-летнего программиста, который за деньги устанавливал шпионские программы и…
IT-специалист Джордан Катлер создал и выложил на Github подборку разнообразных ресурсов, которые помогут достичь уровня…