Ищу постепенную загрузку блоков div

DMax

Гуру форума
Регистрация
11 Июн 2014
Сообщения
252
Реакции
54
Здравствуйте уважаемые друзья!
Подскажите пожалуйста, есть ли такой скрипт который бы загружал блоки div по отдельности?
Не могу никак найти что-то подобное...

Хочется ускорить загрузку страницы с информерами, и хотелось бы загружать блоки по истечению некоторого времени.
Например, каждому блоку с ID <div id="block-1"> время загрузки 4 сек, а блоку <div id="block-2"> время загрузки 6 сек и т.д.
Кто-то что-то подобное встречал?
Заранее спасибо!
 
Можно сделать по разному например грузить через аякс. Но думаю проще всего будет сделать асинхронную загрузку содержимого этих блоков (инфометров)

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

дали бы хоть пример, что у вас за код или линк на страницу
Линк дать не могу, страница пока на локалке, большинство информеров выводятся через фреймы
 
Хочется ускорить загрузку страницы с информерами, и хотелось бы загружать блоки по истечению некоторого времени.
Линк дать не могу, страница пока на локалке
Возможно оффтоп, возможно рекомендация:
Здесь надо быть аккуратным - на локалке вы ускорите, но на локалке вы один тестите, а на продакшене на сайт могут зайти одновременно 20-30 посетителей и каждый и них пошлёт параллельно 20-30 запросов на инфоблоки. Если инфоблоки реально долго формируются, получится DDOS. И не забываем, что есть еще статический контент (картинки, CSS).
Видел реальный пример где разбитие загрузки на небольшие блоки загружало средний мощности дедик буквально на нескольких посетителях.
Выходом оказалось добавление кеширования и отказ от загрузки частями.
 
Добавлю оффтоп...
Загрузка частями хороша на Varnish (но делается на стороне сервера, а не через JS). Т.е. мы делим страницу довольно чётко на статику и динамику.
Если текст статьи у нас статический, а просмотры - нет, то просмотры выносятся в отдельный файл.
Но это особенность архитектуры Varnish. И писать под него CMS то ещё удовольствие...

В других вариантах разбитие загрузки не всегда приводит к хорошему. Вы не забывайте про лимит сессий, одновременных запросов к серверу...
Да, 1 большой скрипт PHP не всегда способен быстро отработать. Но 10 скриптов = 10 сессий. Это 10 сессий к MySQL, это 10 сессий Apache, это 10 авторизаций пользователя...

AJAX хорош для обновления чего-либо. Да, когда нам надо обновить рейтинг - нам не надо заново грузить 100500 модулей, мы просто авторизовали пользователя, обновили циферку и вернули новую.
Но вот для вывода контента эта схема не работает.

Дело вот в чём: основной скрипт при генерации контента уже авторизовал пользователя, определил его права, обновил дату просмотра и т.д.
Когда ты делаешь AJAX на показ ещё куска текста - все эти проверки идут по новой => это дополнительная нагрузка.

Если у Вас не кластерная архитектура, где за каждый инфоблок отвечает свой сервер/сервис - прироста производительности ожидать не стоит...

P.s. я бы советовал делать предгенерацию инфо-блоков... Генерировать их по крону, к примеру, а пользователю отдавать как статику.
Так же можно вынести обновление счётчиков и тд. в LOW PRIORITY для БД и выполнять их после отдачи контента и разрыва связи между PHP и Apache.
 
ТС следовало бы уточнить, что за информеры вы выводите? В смысле контент для этих информеров формируют внешние сервисы - по типу погода (Гисметео), котировки (investing.com) и т.д.? Или таки ваши скрипты генерируют данные для этих информеров?
 
пользуясь случаем хочу спросить, а как называется скрипт который грузит не сразу все страницу а к примеру 10 новостей, после скроллинга вниз подгружается еще 10 и так далее, по типу подгрузки постов в vk?
 
Возможно оффтоп, возможно рекомендация:
Здесь надо быть аккуратным - на локалке вы ускорите, но на локалке вы один тестите, а на продакшене на сайт могут зайти одновременно 20-30 посетителей и каждый и них пошлёт параллельно 20-30 запросов на инфоблоки. Если инфоблоки реально долго формируются, получится DDOS. И не забываем, что есть еще статический контент (картинки, CSS).
Видел реальный пример где разбитие загрузки на небольшие блоки загружало средний мощности дедик буквально на нескольких посетителях.
Выходом оказалось добавление кеширования и отказ от загрузки частями.

параллельно 20-30 запросов послать не сможет, т.к. в браузере существует ограничение пула соединений 2-6, одновременных в зависимости от браузера
 
Назад
Сверху