«Lazyloading» информация из базы данных на странице PHP в процедурном - PullRequest
1 голос
/ 12 мая 2011

Я знаю, что правильная отложенная загрузка обычно требует использования объектов и шаблона прокси. Я еще не там, так как сайт нуждается в редизайне. Тем не менее, есть ли способ, которым я все еще могу буферизовать данные БД на страницу и немного ускорить загрузку?

Ответы [ 2 ]

2 голосов
/ 12 мая 2011

Этого можно достичь с помощью AJAX.

Когда вы впервые загружаете страницу, поместите заполнители туда, куда должен попасть тяжелый контент. Например, используйте div с характерным стилем и анимированным загрузочным изображением внутри, чтобы посетители могли четко сказать, что происходит дальнейшая загрузка. Вы можете сгенерировать знакомые изображения загрузки AJAX на ajaxload.info .

В нижней части страницы есть скрипт, который вызывает или связывает необходимые функции для загрузки дополнительного контента с использованием AJAX. Вы можете привязать AJAX-вызов к jQuery .ready(), например, чтобы начать загрузку, как только остальная часть документа будет готова, или .scroll(), чтобы начать, когда пользователь прокручивает определенный элемент (например, мимо определенных «ориентиров» на ваша страница, которая разделяет блоки контента).

При получении ответа AJAX, который содержит дополнительный контент (предпочтительно предварительно отформатированный как HTML в виде строки), замените содержимое заполнителя div на ответ AJAX, используя .innerHTML = или jQuery .html(). Измените стиль div при необходимости, используя setAttribute("class","newClass") или jQuery .attr("class","value"), чтобы заменить его класс CSS.

Посетитель сможет увидеть вашу полную страницу и прокрутить ее во время загрузки. Дополнительный контент появится, когда он будет готов, не прерывая работу посетителя. Вы можете сделать это немного приятнее для глаз, анимируя переходы после внедрения контента.

Если вам нужны дополнительные примеры использования AJAX для асинхронной выборки контента, взгляните на эти для классического подхода JavaScript или jQuery .ajax () docs .

2 голосов
/ 12 мая 2011

Вы можете использовать JavaScript, чтобы начать загрузку дополнительных данных, как только загрузится главная страница. Таким образом, ваша главная страница может просто наметить компоненты на странице, представить «счетчики», указывающие, что загружается больше данных, а затем перенести их в JavaScript, чтобы получить больше данных.

...