Ajax - лучшая практика / подход для загрузки третичных данных - PullRequest
0 голосов
/ 28 августа 2011

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

Примером исключительного фрагмента может быть метатег описания / автора, тогда как фрагментом многократного использования может быть список ссылок.

Мой текущий подход заключается в загрузке важных данных, которые составляют основную часть страницы, например, Основное содержание, заголовок, слаг, даты (публикация / истечение срока / изменение). После того, как эта часть загружена и пользовательский интерфейс готов, я загружаю 2 дополнительных набора данных: коллекцию метатегов; коллекция фрагментов.

Мои присуждения: 1. Масштабируемость 2. Скорость 3. Ремонтопригодность

Мой подход обоснован или я должен рассмотреть другой подход?

1 Ответ

2 голосов
/ 28 августа 2011

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

Ваш подход звучит правильно?Ответ на ваш вопрос зависит от того, насколько быстро загружается вся страница (включая фрагменты).Ваша техника используется, когда мы хотим создать восприятие загруженной страницы, чтобы пользователю психологически не хотелось ждать,

Эта техника используется, когда вся страница считается слишком длинной для загрузки.Поскольку показатели «слишком долго загружать» субъективны, давайте рассмотрим 8 секунд в качестве примера.Если загрузка всей страницы занимает 8 секунд, а частичной страницы, такой как основное тело и т. Д., - 3 секунды, то целесообразно сначала загрузить эти части, чтобы психологически пользователю не хотелось ждать 8 секунд.

Что касается ваших 3 критериев:

  • Масштабируемость: отложенная загрузка увеличит количество обратных вызовов http на сервер и, таким образом, создаст дополнительные нагрузки с точки зрения общего количествазвонки на сервер, а также возможность принятия количества одновременных подключений.Таким образом, ленивая загрузка привносит дополнительную нагрузку на серверы.Однако, если ваша среда развертывания является кластеризованной должным образом, она не должна вызывать каких-либо серьезных проблем для вас.

  • Скорость: это возвращение к тому, что я говорил ранее.Если вся ваша страница загружается очень быстро, то ленивая загрузка фрагментов может фактически замедлить ее (с точки зрения общего количества секунд), поскольку вы делаете дополнительные HTTP-вызовы на сервер.В этом случае вы также не помогаете восприятию пользователей.Однако, если скорость загрузки всей страницы велика, то этот метод имеет смысл, поскольку он улучшает восприятие скорости пользователем, даже если общее время загрузки скорости, вероятно, больше.

  • Ремонтопригодность: Aхорошая реализация позволит выбирать между загрузкой всей страницы и фрагментов несколькими простыми кодами.Это будет означать, что вы написали обслуживаемый и гибкий код.

...