Руслан, по-моему вы перемудрили и сами запутались. Получилось похоже на рисунки на доске после лекции, которую ты пропустил: сами по себе они ничего не объясняют, надо было слушать, что говорит профессор, проводя каждую линию.
Во-первых, неясно, какое такое «условие» обозначает пунктир. Сами условия-то нигде не записаны. Пунктир вот у вас ведёт от вывода в кнопку закрытия окна, это как трактовать? При выводе и некотором неизвестном условии нажимается крестик? Или пользователю следует его нажать?
Во-вторых, когда стрелки переходят из клиента в сервер и наоборот, то хотя бы ясно, что из этого запрос, а что — ответ. А вот что происходит с кешем можно догадаться только если и без схемы это знать. Например, условная стрелка слева от него, по всей видимости, означает «спрашиваем → у кеша, есть ли там ответ», а вот точно такая же (а почему она условная-то?) стрелка справа от кеша уже, надо полагать, означает «кладём → в кеш данные».
В-третьих, в схеме у вас присутствуют «места» (кеш, БД) и «действия» (ввод, обработка). То есть не только стрелки, но и то, что с ими соединено, не имеет конкретного смысла. Стрелка между действиями вообще не означает ни запрос, ни ответ, а просто означает «сначала происходит вот это, а потом → вот это»
Странно, что сервер вернул в браузер сразу и ХТМЛ, и скрипт, и стили. По-настоящему ведь это всё отдельные запросы от браузера. Если вы решили упростить этот момент, зачем было конкретизировать, какие именно файлы были переданы? Странно и то, что вы кладёте в кеш уже «обработанные» данные, однако после того, как читаете их из кеша, зачем-то «обрабатываете» заново.
Я считаю, что из слов лучше составлять предложения:
Пользователь переходит на сайт
Браузер запрашивает страницу у сервера →
← Сервер возвращает её в браузер
Браузер отображает загруженную страницу
Веб-приложение в браузере готово к работе
Пользователь выбирает операцию на странице, вводит данные
Приложение проверяет, нет ли ответа в его кеше:
Если ответ есть в кеше :
Ответ читается из кеша
Если ответа в кеше нет:
Операция и данные отправляются на сервер →
Сервер обрабатывает данные и готовит ответ, при необходимости обращаясь к БД
← Сервер возвращает ответ в браузер (приложению)
Приложение обрататывает ответ и кладёт его в кеш
В любом случае:
Ответ выводится в интерфейсе приложения
Приложение готово к дальнейшей работе
|