Ajax — Подгрузка контента по скролингу


Содержание

jquery Бесконечная прокрутка ленты с загрузкой контента Ajax-ом — появление футера, отслеживание события пример кода

Primary tabs

Forums:

Как будем реализовывать

Всё просто — у нас будет:

  • некий html элемент, которой в своих data атрибутах будет все необходимое для получения очередной порции контента.
  • JS скрипт который используя изначальные данные элемента подгружает ленту, и останавливает подгрузку, если сервер указывает это передав res.finished = true (см. далее)

Управляющий элемент HTML

Предположим, что какую-то порцию контента мы грузим при открытии страницы, тогда управляющий элемент может выглядеть как-то так (здесь для присвоения значений использован синтаксис Smarty — не пугайтесь, смысл в том, что вы можете установить эти значения при загрузке страницы каким-либо способом, не обязательно через данный шаблонизатор, в после же загрузки мы будем работать с ними через JS и менять их если нужно тоже средствами JS):

Скрипт подгрузки ленты

Примечания

  • В скрипте выше мы обошлись без идентификатора загрузки (закомментирован), но если необходимо вы можете использовать это простое решение.

Источники:
(при написании в том числе использовались заметки):

Топ-10 jQuery-плагинов бесконечной прокрутки

При написании этой статьи я понял, что существует два типа людей, между которыми всегда ведется спор: те, кто предпочитает разбиение на страницы и те, кто поддерживает использование бесконечной прокрутки — оба этих « клана » приводят убедительные доказательства в пользу своей точки зрения.

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

Например, Google использует разбиение на страницы вместо бесконечной прокрутки, и это очень удобно. А социальные сети, такие как Twitter и Facebook всегда будут предпочитать использование бесконечной прокрутки, так как никто не любит каждый раз кликать, чтобы просто прокрутить свою ленту новостей.

Что такое метод бесконечной прокрутки?

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

Лучшее использование этой техники можно найти в Twitter , Facebook и многих других ресурсах.

Ниже приводится список, состоящий из 10 лучших jQuery-плагинов бесконечной прокрутки ( скролла ).

10 лучших jQuery-плагинов бесконечной прокрутки:

Если вы решили использовать jQuery-плагин бесконечной прокрутки, мы упростим вам задачу. Рассмотренные ниже 10 jQuery-плагинов бесконечной прокрутки поддерживают все функции, которые могут вам понадобиться – просто выберите наиболее подходящий именно для вашего сайта, чтобы сделать пользовательский интерфейс более эффективным и удобным.

jQuery Masonry

Masonry размещает элементы в доступном вертикальном пространстве. Очень популярный плагин с почти 13 000 звезд на github .

iScroll

Хотите создать плавную бесконечную прокрутку? iScroll определенно поможет вам создать плавный jquery- скролл . Благодаря интеллектуальной системе кеширования вы сможете создавать бесконечную прокрутку для реализации надежного пользовательского интерфейса. Кроме jQuery , он поддерживает и javascript .

WayPoints

WayPoints упрощают реализацию функций прокрутки страницы. С помощью этого простого плагина можно преобразовать навигацию типа « Предыдущая / Следующая » в бесконечно прокручиваемый AJAX -интерфейс . Для WayPoints доступна подробная документация, поэтому его практическое применение не будет сложной задачей.

Infinite-Scroll.js

Очень компактный jQuery-плагин бесконечный прокрутки. Infinite Scroll автоматически добавляет следующую страницу, позволяя не загружать все страницы сразу.

jScroll

jScroll — простой в использовании jQuery-плагин для бесконечной прокрутки, дающий возможность осуществлять гибкую настройку.

jQuery-Endless-Scroll


Этот плагин никогда не позволит вашим пользователям затормозить, находясь в ожидании загрузки новой страницы. jQuery-Endless-Scroll очень гибкий, он включает в себя действительно уникальные функции, такие как добавление дружественных URL-адресов , усечение данных, возможность прокрутки и добавления контента в начало страницы.

Infinite AJAX Scroll

Infinite AJAX Scroll — это интеллектуальный jQuery-плагин бесконечной прокрутки. Он может преобразовать существующую систему разбиения на страницы в систему бесконечной прокрутки. Данный плагин считывает на сервере ссылки « следующая / предыдущая» существующей страницы и, когда пользователь достигает ее окончания, загружает эти страницы с помощью AJAX .

Этот подход также оптимизирован с точки зрения SEO и очень прост в реализации.

JQuery-ESN-Autobrowse

Широко используемый jQuery-плагин бесконечной прокрутки, который вы можете легко использовать. Он автоматически добавляет содержимое страницы, используя AJAX , когда пользователь просматривает страницу из встроенного кеша браузера. Плагин прост в освоении и практическом использовании.

JQuery Infinite Scroll

Еще один простой jQuery-плагин бесконечной прокрутки, позволяющий прокручивать тексты или изображения.

Endless.JS

Endless.js — это jQuery-плагин , который помогает создавать бесконечные прокрутки ( скроллы ) для HTML-элементов . Он соединяет нижнюю часть с верхней или левую секцию с правой, создавая тем самым иллюзию бесконечной прокрутки.

Заключение

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

Данная публикация представляет собой перевод статьи « Top 10 jQuery Infinite Scrolling Plugin With Demo » , подготовленной дружной командой проекта Интернет-технологии.ру

Загрузка контента при скроллинге вверх

Цукерберг рекомендует:  Javascript - выделить все checkbox при нажатие, как на почте
26.08.2020, 20:19

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

Блок контента, который расширяется при скроллинге старице
Нужно реализовать скрипт для сайта, при котором блок с основным контентом (#maincont) расширяется.

Загрузка контента при наведении на объект
Вот с чем столнулся! Есть два бока ! В одном есть картинки а во втором пусто Нада чтобы при.

Загрузка контента на страницу
Доброго всем времени суток! Сразу оговорюсь, что во всех премудростях кодирования я не силен.

ajax загрузка контента
Добрый день. У меня такая проблема, есть страница на ней кнопка регистрации по нажатию на неё.

Ajax Scroll v1.7 — «бесконечный скроллинг» для Joomla

Плагин Ajax Scroll обеспечит ajax подгрузку контента на страницах с пагинацией. В результате вы получите эффект «бесконечного скроллинга» для своего сайта, на примере ВКонтакте, Твиттера, Фейсбука и др.

Особенности:
Может работать с любыми компонентами Joomla, при наличии ссылок пагинации
Использует технологию AJAX
Современный эффект, как на крупных порталах и соц. сетях
Встроенная навигация по страницам через якори #
Автоскроллинг до нужной страницы
Поддержка мультиязычности
Возможность загрузки контента по кнопке «показать еще»
Можно ограничивать работу плагина только на указанных страницах или типах страниц.

Возможности
Плагин получился довольно универсальный — он может работать как с родным компонентом материалов (com_content), так и с другими сторонними компонентами, в которых используется родная пагинация Joomla. Это значит, что вы можете использовать «бесконечный скроллинг» например, в блоге категории, где у вас идет разбивка материалов на несколько страниц, а также в таких компонентах как Virtuemart, Joomshopping и т.д. и подгружать аяксом ваши товары.

На данный момент плагин AJAX Scroll протестирован и успешно работает со следующими компонентами:
com_content — стандартный компонент материалов (блог, новости)
Joomshopping — интернет-магазин для Joomla
Virtuemart — компонент интернет-магазина
AdsManager — компонент доски объявлений
Zoo — конструктор контента
K2 — конструктор контента
MijoShop — компонент интернет-магазина для Joomla на базе Opencart

Подгрузка с прокруткой списка в ASP.NET MVC и Web API

На многих сайтах можно встретить такую функциональность как inifinite scrolling или бесконечный кроллинг, который предполагает постепенную подгрузку контента по мере прокрутки пользователем браузера. Стандартный пример: прокрутка тем в вконтакте, когда происходит плавная подгрузка постов. Попробуем реализовать подобную возможность.

Определим модель данных, которые будут подгружаться:

Контроллер будет выглядеть следующим образом:

Переменная pageSize указывает, сколько элементов будет на странице. Метод Index получает номер страницы, и по нему отдает нужные данные.

При первом обращении к сайту метод Index будет возвращать представление, в которое будет передаваться результат функции GetItemsPage()

Функции GetItemsPage() по сути выполняет пагинацию данных, выбирая ту часть, которая соответствует номеру странице и количеству элементов на странице.

Если же запрос представляет Ajax-запрос, то метод Index возвращает частичное представление _Items, в которое опять де передается результат функции GetItemsPage() .

Создадим частичное представление «_Items.cshtml»:

Оно выводит список переданных в него объектов.


И создадим главное представление Index.cshtml:

Для загрузки данных в представлении определен блок с . Он по умолчанию содержит вызвов частичного представления _Items.cshtml: @Html.Partial(«_Items») , благодаря чему уже при первом обращении у нас будет некоторое начальное количество элементов.

И также здесь используется специальный блок с для отображения индикатора загрузки с помощью gif-анимации:

Всю основную работу делает javascript. Чтобы отследить прокрутку, применяем обработчик $(window).scroll() , который вызывает функцию loadItems()

В функции loadItems() с помощью ajax-запроса происходит подгрузка дополнительных данных.

Подгрузка данных в Web Api

В Web Api все будет аналогично, за исключением отправки данных. Допустим, у нас есть следующий контроллер Web API:

И загрузка данных на html-странице:

В представлении все то е самое, только данные получаем не в виде частичного представления, а в виде объектов javascript.

Подгрузка с прокруткой списка в ASP.NET MVC и Web API

На многих сайтах можно встретить такую функциональность как inifinite scrolling или бесконечный кроллинг, который предполагает постепенную подгрузку контента по мере прокрутки пользователем браузера. Стандартный пример: прокрутка тем в вконтакте, когда происходит плавная подгрузка постов. Попробуем реализовать подобную возможность.

Определим модель данных, которые будут подгружаться:

Контроллер будет выглядеть следующим образом:

Переменная pageSize указывает, сколько элементов будет на странице. Метод Index получает номер страницы, и по нему отдает нужные данные.

При первом обращении к сайту метод Index будет возвращать представление, в которое будет передаваться результат функции GetItemsPage()

Функции GetItemsPage() по сути выполняет пагинацию данных, выбирая ту часть, которая соответствует номеру странице и количеству элементов на странице.

Если же запрос представляет Ajax-запрос, то метод Index возвращает частичное представление _Items, в которое опять де передается результат функции GetItemsPage() .

Создадим частичное представление «_Items.cshtml»:

Оно выводит список переданных в него объектов.

И создадим главное представление Index.cshtml:

Для загрузки данных в представлении определен блок с . Он по умолчанию содержит вызвов частичного представления _Items.cshtml: @Html.Partial(«_Items») , благодаря чему уже при первом обращении у нас будет некоторое начальное количество элементов.

И также здесь используется специальный блок с для отображения индикатора загрузки с помощью gif-анимации:

Всю основную работу делает javascript. Чтобы отследить прокрутку, применяем обработчик $(window).scroll() , который вызывает функцию loadItems()

В функции loadItems() с помощью ajax-запроса происходит подгрузка дополнительных данных.

Подгрузка данных в Web Api

В Web Api все будет аналогично, за исключением отправки данных. Допустим, у нас есть следующий контроллер Web API:

И загрузка данных на html-странице:

В представлении все то е самое, только данные получаем не в виде частичного представления, а в виде объектов javascript.

Ajax подгрузка контента при прокрутке

Технические данные

Описание

В настройках компонента укажите нужный вам инфоблок и компонент будет загружать элементы на сайте методом ajax по мере того как вы будете прокручивать скроллинг.

Пример использования решения можно посмотреть на видео.

После установки решения у вас появиться компонент nBrains Компоненты > Подгрузка контента ajax, включите его в любом удобном для вас месте на сайте, в параметрах компонента сделайте соответствующие настройки.

Цукерберг рекомендует:  Drupal - Движки для сайта

Важно :
если у вас не отображается компонент в редактировании страницы.
Обновите компоненты.


Создаем прокручиваемый блок с динамическим контентом на AJAX

Если вы использовали google reader, вы могли отметить, как google reader показывает текстовые элементы; google подгружает несколько элементов изначально, а затем, когда вы прокручиваете страницу вниз, динамически подгружает оставшиеся текстовые элементы и добавляет их в список.

Любопытный эффект реализован и в Dzone, с целью показать пользователю, как долго может подгружаться контент при скроллинге страницы.

Аналогичным образом подгружает контент facebook на домашней странице пользователя.

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

Блок scrollbox имеет фиксированную ширину и высоту и является родителем по отношению к блоку #content . Элемент span с классом status используется для вывода информации о числе подгруженных элементов, или для показа сообщения о состоянии загрузки.

CSS стили

Высота и ширина у прокручиваемого блока ( #scrollbox ) — фиксированная, и так как свойство overflow имеет значение auto , то блок получает скроллбар, но только в том случае, если высота контента превышает высоту прокручиваемого блока. Чтобы избежать горизонтальной прокрутки я добавил, на всякий случай, объявление overflow-x: hidden .

Концепция

Чтобы подгрузить контент при скроллинге, вам потребуется понять идею приведенного ниже кода javascript. Я буду использовать атрибуты DOM-элементов: scrollHeight (полная высота страницы вместе с прокруткой), clientHeight (высота видимой области окна) и scrollTop (текущая прокрутка).

В нашем случае мы будем использовать следующие атрибуты для элемента scrollbox : scrollHeight — актуальная высота блока с прокруткой. clientHeight — в нашем случае это видимая высота блока scrollbox .

Ниже приведено изображение, иллюстрирующие эти свойства:

Когда scrollTop становится равным scrollHeight-clientHeight , то ползунок достигает нижней границе, итак, это говорит нам, что необходимо добавить дополнительные элементы. Чтобы сделать скроллинг более удобным, у добавил переменную scrolloffset ; это позволит нам подгружать новые элементы заранее.

Код javascript

Ниже приведен js код. Как всегда, прежде всего вам потребуется подключить библиотеку jQuery в теге head вашей страницы, перед нижеприведенным кодом.

Пояснение по коду : Функция updatestatus() подсчитывает количество загруженных элементов и отображает их в span#status . Функция scrollalert() проверяет текущее значение scrollTop , и если ползунок скроллбара находится в нижней части блока, загружает новые элементы, используя AJAX.

Здесь я использую new-items.html , чтобы просто показать, как отображаются новые элементы в блоке с контентом. На практике вы можете реализовать загрузку новых элементов в скрипте на стороне сервера из базы данных.

Содержимое полученное благодаря AJAX добавляется в блок content; функция updatestatus() обновляет статус. setTimeout используется, чтобы периодически проверять положение ползунка, чтобы, при необходимости, извлечь новые элементы.

Итак, блок с динамическим контентом на AJAX готов.

Делаем “ленивую” прокрутку на jQuery

Сколько я себя помню, веб-разработчики всегда обращались к старой-доброй пагинации в случае, когда им необходимо было отобразить большое количество контента. Не поймите меня неправильно, пагинация до сих пор является эффективным способом отображения контента, но в этой статье мы поговорим о другом подходе — “ленивой” прокрутке, также известной под названием “бесконечной прокрутки” и “отказом от пагинации”. С помощью этой техники подгрузка контента производится с помощью AJAX, когда пользователь прокручивает страницу до места, где загруженный контент заканчивается. Ленивая прокрутка используется некоторыми гигантами интернета, такими как Facebook и Pinterest. В этом посте мы попробуем реализовать свой плагин для ленивой загрузки на jQuery.

Преимущества и недостатки

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

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

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

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

Начинаем

Начнем с наброска очень простой страницы. Самые важные части страницы показаны в коде ниже. Полные файлы можно посмотреть в исходниках.

Основные замечания

Если вы приглядитесь к документу, что мы создали, то увидите, что новые посты будут загружены при клике на кнопку “загрузить еще”. Вот пункты, которые мы будем реализовывать:

  • необходимо сделать запрос на URL, который вернет нам список элементов, которые необходимо будет вставить на странице
  • этот процесс должен повторяться каждый раз, как будет нажата кнопка, но в результате должны возвращаться новые посты
  • новые посты должны выдаваться на каждый запрос до тех пор, пока есть, что возвращать
  • когда больше не осталось постов, необходимо сообщить пользователю, что он достиг конца

Шаблоны ответа AJAX

В идеале необходимо объявить переменную, в которой мы будем хранить номер страницы, и с помощью этого номера определять URL, на который мы будем отправлять запрос. В нашем демонстрационном примере у нас будут три таких страницы: 2.html, 3.html и пустая страница 4.html.

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

Цукерберг рекомендует:  Техник с философом запустили конкурента IBM


Добавляем полученные данные на страницу

Сначала вернем обратно те изменения, которые мы проделали, пока запрос еще выполнялся, то есть, показать кнопку “загрузить еще”, и спрятать информационный текст. Во-вторых, необходимо вставить полученные данные на страницу, после тех элементов, что уже есть на странице. Заметьте, что для упрощения в этом примере мы получаем данные HTML сразу, как результат запроса. Можно отсылать ответ в формате JSON, добавив в него дополнительные переменные, как статус или сообщение. Код ставки данных представлен ниже:

Обрабатываем вариант, когда данные закончились

Как только вы достигнете последнего поста, вам нужно показать пользователю, что больше постов нет. Сделать это можно различными способами. Можно отсылать статус в виде встроенного в ответ кода или сообщения. Так как мы напрямую используем разметку HTML в этом примере, то пустой ответ в нашем случае будет говорить о том, что данные закончились.

Заключение

В данном демонстрационном примере мы привели очень базовый вариант обработки ленивой загрузки. Конечно же, можно сделать гораздо лучше, если постараться. Для начала, можно вообще избавиться от кнопки, и отправлять запрос, когда пользователь прокрутит страницу до конца. Это избавит пользователя от дополнительной необходимости нажимать кнопку, и в целом ускоряет процесс просмотра информации. Во-вторых, можно просто отсылать чистые данные в формате JSON, а разметку создавать налету, используя jQuery, например:

И, наконец, ответ в JSON может содержать сообщение, говорящее, прошел ли запрос корректно; данные; а также информацию о том, есть ли еще посты для загрузки. В данном случае это более эффективный способ отправлять результат.

Данный урок подготовлен для вас командой сайта ruseller.com
Источник урока: http://www.sitepoint.com/implementing-lazy-scroll-jquery/
Перевел: Станислав Протасевич
Урок создан: 6 Апреля 2014
Просмотров: 47152
Правила перепечатки

5 последних уроков рубрики «jQuery»

Анимация набора текста на jQuery

Сегодня мы бы хотели вам рассказать о библиотеке TypeIt — бесплатном jQuery плагине. С её помощью можно имитировать набор текста. Если всё настроить правильно, то можно добиться очень реалистичного эффекта.

Временная шкала на jQuery

jQuery плагин для создания временной шкалы.

Заметка: Перезагрузка и редирект на JavaScript

Быстрая заметка, где вы сможете найти парочку JS сниппетов для перезагрузки и перенаправления пользователей через JavaScript.

Рисуем диаграмму Ганта

jQuery плагин для создания диаграммы Ганта.

AJAX и PHP: загрузка файла

Пример того как осуществить загрузку файла через PHP и jQuery ajax.

«Ленивая загрузка» контента на лендинге

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

Часто, ее еще называют «бесконечной прокруткой». Наверняка вы видели подобный эффект, когда контент изначально не присутствует на сайте, а по мере прокрутки страницы он плавно подгружается.

Давненько уже написали в раздел «Ваши предложения», с просьбой написать статью о том, как реализовать такой эффект:

Вот и решил, заняться реализацией. Спасибо, что подкидываете идеи. Приступим…

Ленивая загрузка контента

Как и в большинстве случаев, начинаем с того, что подключаем библиотеку jQuery:

А сейчас нужно немножко отвлечься и я объясню вам суть метода. Все это затевается для того, чтобы не грузить все элементы сайта (ваше портфолио или отзывы), а подгружать их по мере необходимости. Например, при клике пользователя по кнопке «Показать еще». Таким образом, страница будет грузиться намного быстрее. А теперь суть, при помощи ajax технологии мы будем подгружать нужный элемент (div) и стороннего файла на наш лендинг. Вот так все просто, как в теории, так и на практике, и вы в этом скоро убедитесь.

Теперь давайте создадим основной блок, например, с картинками наших работ. Предположим мы рисуем иконки, и будем подгружать их при клике по кнопке. Я создал такую структуру:

Как видите, все — просто. Но на что нужно обратить внимание? А обратить внимание нужно на div с >

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

Сам скрипт я не писал, а нашел на одном из сайтов, автор указан в исходнике, кому интересно — посмотрите. Так как он не слишком большого размера, то приведу его весь, но если вы планируете использовать такие же названия айдишников и пути к файлам, как у меня, то можете даже не заглядывать в него, а просто подключить перед закрывающимся тегом body (в футере).

Для тех, кто планирует вносить правки вот сам скрипт:

Итак, теперь стоит поговорить о тех файлах, из которых мы будем подгружать информацию. Скрипт предполагает, что это будут файла с именами 2.html…5.html и т.д. В которых лежит наша информация. Например, у меня первым подгружается файл 2.html и он имеет такое содержимое:

В моей структуре сайта, страницы из которых будет браться информация для последующей загрузке при клике, лежит в папке pages. Там три файла, два из которых заполнены, а последний — пустой. Это предполагает логика скрипта.

Путь в скрипте указан следующим образом:

Если вы планируете использовать другой путь, не забудьте заменить его в скрипте. Кроме того, если вы использовали другие айдишники, то и их придется переопределить в скрипте. Вот тут:

И, как я уже говорил, перед закрывающимся тегом body подключаем сам скрипт:

Вот так на landing page можно реализовать «ленивую загрузку». Присылайте еще темы, на которые вы хотели-бы почитать статью на блоге. По мере возможности буду стараться публиковать не запланированный материал, а тот, о котором спрашиваете вы в разделе «Ваши предложения». А на сегодня — все. Пока!

Понравилась статья? Поделиться с друзьями:
Все языки программирования для начинающих