Ajax - лучшая практика / подход для загрузки третичных данных
У меня возникли некоторые трудности при выборе подхода для загрузки дополнительных данных в приложение, которое я создаю. Приложение представляет собой CMS, в которой одна страница состоит из множества фрагментов - некоторые могут быть использованы повторно, другие - исключительными.
Примером исключительного фрагмента может быть метатег описания / автора, тогда как повторно используемый фрагмент может быть списком ссылок.
Мой текущий подход состоит в том, чтобы загрузить основные данные, которые составляют основную часть страницы, например, основное содержание, заголовок, фрагмент, даты (публикация / истечение срока / изменение). После того, как эта часть загружена и пользовательский интерфейс готов, я загружаю 2 дополнительных набора данных: коллекцию метатегов; коллекция фрагментов.
Мои рекомендации: 1. Масштабируемость 2. Скорость 3. Ремонтопригодность
Оправдан ли мой подход или я должен рассмотреть другой подход?
1 ответ
Я предполагаю, что вы используете AJAX для отложенной загрузки, упомянутой выше.
Ваш подход здоров? Ответ на ваш вопрос зависит от того, насколько быстро загружается вся страница (включая фрагменты). Ваша техника используется, когда мы хотим создать восприятие загруженной страницы, чтобы пользователю психологически не хотелось ждать,
Этот метод используется, когда вся страница считается слишком длинной для загрузки. Поскольку показатели "слишком долго загружать" субъективны, давайте рассмотрим 8 секунд в качестве примера. Если загрузка всей страницы занимает 8 секунд, а частичной страницы, такой как основное тело и т. Д., - 3 секунды, то целесообразно сначала загрузить эти части, чтобы психологически пользователю не хотелось ждать 8 секунд.
Что касается ваших 3 критериев:
Масштабируемость: отложенная загрузка увеличит количество обратных вызовов http на сервер и, таким образом, создаст дополнительные нагрузки с точки зрения количества общих вызовов к серверу, а также возможности принятия количества одновременных подключений. Таким образом, ленивая загрузка привносит дополнительную нагрузку на серверы. Однако, если ваша среда развертывания является кластеризованной должным образом, она не должна вызывать каких-либо серьезных проблем для вас.
Скорость: это вернулось к тому, что я сказал раньше. Если вся ваша страница загружается очень быстро, то выполнение отложенной загрузки фрагментов может фактически замедлить ее (с точки зрения общего количества секунд), поскольку вы делаете дополнительные HTTP-вызовы на сервер. В этом случае вы также не помогаете восприятию пользователей. Однако, если скорость загрузки всей страницы велика, метод имеет смысл, поскольку он улучшает восприятие скорости пользователем, даже если общее время загрузки скорости, вероятно, больше.
Поддерживаемость: хорошая реализация позволит выбирать между загрузкой всей страницы и фрагментов несколькими простыми кодами. Это будет означать, что вы написали обслуживаемый и гибкий код.