- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Тренды маркетинга в 2024 году: мобильные продажи, углубленная аналитика и ИИ
Экспертная оценка Адмитад
Оксана Мамчуева
VK приобрела 70% в структуре компании-разработчика red_mad_robot
Которая участвовала в создании RuStore
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Возник вопрос по поводу разбивки на страницы спарсенных из xml данных.
Знаю что общее количество выводимых элементов можно получить так:
И например положить в переменную желаемое количество элементов, которые будут выводится на одной странице.
А вот что с ними делать дальше ума не приложу. Смотрел как реализовано в cms, но для меня это слишком сложный код. Понимаю, что за меня писать никто не будет. Подскажите псевдокодом или может быть есть какая нибудь хитрая функция заточеная под эту задачу.
$i=0;
foreach ($xml->folder->file as $item) {
if ($i > $maxLineOnPage)
break;
echo "<tr>";
echo "<td>", $item->link, "</td>";
echo "<td>", $item->size, "</td>";
echo "</tr>";
$i++;
}
Ну если коротко:
1. Запрашиваем общее количество записей
2. Определяем кол-во записей на одну страницу.
3. Определяем кол-во страниц. Оно равно частному от деления общего кол-ва записей на кол-во записей на одну страницу.
4. Определяем запись, с которой будем выводить данные.
5. Запрашиваем данные начиная от числа, определённого в п.4 заканчивая числом, определённым в п.2.
6. Выводим пагинацию.
Дополнительные меры безопасности:
1. Под указателем страниц будем понимать некий GET-параметр. Пусть $_GET['page'].
2. Если этот параметр меньше первой страницы, устанавливаем в 1.
3. Если этот параметр больше последней страницы, устанавливаем в число, равное последней странице.
$i=0;
foreach ($xml->folder->file as $item) {
if ($i > $maxLineOnPage)
break;
echo "<tr>";
echo "<td>", $item->link, "</td>";
echo "<td>", $item->size, "</td>";
echo "</tr>";
$i++;
}
Это я как понял выполнение скрипта прервётся когда $i станет больше $maxLineOnPage? А как выводить остальные элементы на следующей странице, которые остались в xml?
Это я как понял выполнение скрипта прервётся когда $i станет больше $maxLineOnPage? А как выводить остальные элементы на следующей странице, которые остались в xml?
Надо выводить список страниц со ссылками, я об этом написал в своём посте.
Ну если коротко:
1. Запрашиваем общее количество записей
2. Определяем кол-во записей на одну страницу.
3. Определяем кол-во страниц. Оно равно частному от деления общего кол-ва записей на кол-во записей на одну страницу.
4. Определяем запись, с которой будем выводить данные.
5. Запрашиваем данные начиная от числа, определённого в п.4 заканчивая числом, определённым в п.2.
6. Выводим пагинацию.
Дополнительные меры безопасности:
1. Под указателем страниц будем понимать некий GET-параметр. Пусть $_GET['page'].
2. Если этот параметр меньше первой страницы, устанавливаем в 1.
3. Если этот параметр больше последней страницы, устанавливаем в число, равное последней странице.
Спасибо, то что нужно. Ушел читать про GET/POST
Появился вопрос, создавать новую тему не буду, спрошу здесь.
Заметил, что если xml документ большого объема, то долго подгружается страничка, так как он полностью грузится в оперативку. Если например документ ~20 мб, то это очень ощутимые тормоза.
Так вот вопрос:
Например если 10 пользователей одновременно заходят на страницу, то как сервер на это будет реагировать?
Получается он загрузит в оперативку: 200 мб = 10 (кол-во пользователей) * 20 мб (вес документа)
или он посмотрит, что есть уже в памяти один экземпляр и будет считывать его?
Блин, надеюсь понятно выразился :)
А что мешает провести тест на локалке?
Создаем страницу, которая будет грузить этот самый файл, в конце ставим sleep(60) - прекратить выполнение кода на минуту. Открываем 10 раз эту страницу и смотрим на загрузку оперативки.
А что мешает провести тест на локалке?
Создаем страницу, которая будет грузить этот самый файл, в конце ставим sleep(60) - прекратить выполнение кода на минуту. Открываем 10 раз эту страницу и смотрим на загрузку оперативки.
Спс за совет. 10 раз это десять вкладок в браузере?
Появился вопрос, создавать новую тему не буду, спрошу здесь.
Заметил, что если xml документ большого объема, то долго подгружается страничка, так как он полностью грузится в оперативку. Если например документ ~20 мб, то это очень ощутимые тормоза.
Так вот вопрос:
Например если 10 пользователей одновременно заходят на страницу, то как сервер на это будет реагировать?
Получается он загрузит в оперативку: 200 мб = 10 (кол-во пользователей) * 20 мб (вес документа)
или он посмотрит, что есть уже в памяти один экземпляр и будет считывать его?
Блин, надеюсь понятно выразился :)
Сервер для каждого нового посетителя обрабатывает из нового документа xml ? Если нет, то нагрузка с увеличением посетителей будет только на канал хостера, а в остальном как обычно.
Кому интересно:
Подгружал в 10 вкладок файл размером 30,5 МБ этим скриптом
Перед выполнением занятой памяти было 2.74 ГБ
После стало 3.09 ГБ
Получается 0.35 ГБ скушало памяти, и проц тоже грузится прилично 20-25% (у меня core i3)
И ещё апач ошибку выкинул: