Достаточно ли хорошо кэширование изображений в браузере, чтобы исключить необходимость хранения на стороне сервера? - PullRequest
0 голосов
/ 25 марта 2019

У меня был вопрос по архитектуре, и мне приходилось переписывать название вопроса несколько раз, так как SO попросил меня об этом. Поэтому, пожалуйста, не стесняйтесь исправлять это, если вы так чувствуете. Я не эксперт в вопросах, связанных с кешем, поэтому я был бы очень признателен за понимание моего вопроса, связанного с архитектурой.

Так что ситуация такая. У нас есть приложение для веб-дизайна (внешний интерфейс Javascript, серверная часть PHP), которое предоставляет множество изображений клипартов нашим клиентам, которые используют его для создания онлайн-произведений искусства. Ранее наше приложение было загружено на компьютер AWS, и раньше у нас были изображения клипартов, которые также хранятся локально на том же сервере, чтобы не требовалось никакой передачи по сети для загрузки клипартов, и, следовательно, время загрузки приложения дизайна сокращалось. Созданные заказчиком проекты также сохранялись на внутреннем сервере MySQL, подключенном напрямую к веб-приложению для проектирования (в JSON и реляционной модели).

За некоторое время до того, как новая команда присоединилась к созданию мобильной версии этого приложения, и они настаивали на том, чтобы клипарты загружались из «центрального местоположения» как для нашего веб-приложения, так и для создаваемого ими мобильного приложения. Они также сказали, что дизайн также должен быть сохранен в «центральной базе данных», доступной для веб-сайтов и мобильных приложений (а также была проведена некоторая основная реорганизация структуры JSON)

Итак, наконец, архитектура изменилась так, что клипарты теперь находятся в централизованном месте (S3 Server). Кроме того, существует «Система доставки и хранения активов (ADS)», к которой наше приложение для разработки обращается с запросами на клипарты и получает обслуживание. (Обратите внимание, что хранилище клипартов очень велико, и обслуживается только подмножество изображений клипартов на основе различных параметров - таких как стиль дизайна, тип учетной записи клиента и т. Д.). Таким образом, эта задача теперь выполняется системой ADS (написана на python).

И поскольку наше приложение веб-дизайна больше не имеет ни локального хранилища клипартов, ни логики фильтрации клипартов (которое было делегировано ADS, поэтому больше не серверная часть PHP), оно также стало чисто веб-базированным (интерфейс Javasdcript) приложение без каких-либо требований к серверу и впоследствии было переведено на S3.

Теперь реальная проблема заключается в том, что наше веб-приложение кажется намного медленнее при начальной загрузке, чем когда мы хранили свои клипарты на сервере. Я читал, что если приложение запрашивает изображения, эти изображения кэшируются в браузере, и если клиент, например, загружает тот же заказ до истечения срока действия этого кэша, то повторного запроса на сервер не требуется (в в этом случае ADS).

Если это действительно так, могу ли я в какой-то момент заявить, что перенос изображений клипартов с сервера приложений дизайна в систему ADS и необходимость отправлять запросы и загружать их каждый раз при загрузке дизайна способствовали часть недавней медлительности дизайна приложения?

Также чаще всего я слышу ответ, что «мобильное приложение также делает то же самое и работает быстрее». Я не разработчик мобильных приложений. Могут ли быть некоторые хитрости мобильного кеша, которые помогают мобильному приложению быть намного более «кеш-эффективным», чем приложение для проектирования, основанное исключительно на веб-технологиях, так что даже при том, что архитектура одинакова для обоих (отправка запроса ADS для клипартов), мобильное приложение делает это лучше и эффективнее?

Конечное примечание: я понимаю, что не задаю конкретный вопрос программирования. Но из некоторых заметок, которые я прочитал здесь, SO - это сообщество программистов, и я не знаю ни одного другого сообщества, которое бы так хорошо отвечало на вопросы, связанные с программированием. Вопрос об архитектуре, с которым я сталкиваюсь, - это настоящий вопрос, связанный с программированием, с которым я сталкиваюсь на работе, и, к сожалению, я недостаточно квалифицирован, чтобы понять, есть ли у всех последних архитектурных изменений какие-либо недостатки, которые приводят к заметному снижению производительности нашего веб-приложения.

Спасибо за чтение, и я был бы очень признателен за любые указатели или даже ссылки на чтение для лучшего понимания.

1 Ответ

0 голосов
/ 25 марта 2019

В Chrome откройте инструменты разработчика и нажмите на вкладку сети. Оттуда вы можете определить медленный ресурс в 90% случаев.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...