| 
	
	
		
		
		
		
		 Техническое задание для скрипта показа случайного блока: 
 
1. Описание задачи: 
   Необходимо разработать скрипт, который будет отображать случайный блок из массива блоков на веб-странице. Каждый блок имеет класс "fact_block". При показе блока также должен быть сохранен его ID в localStorage. Если блок имеет класс "fact_picture_mini_curr", его ID также должен быть сохранен в отдельный массив "fact_picture_mini_curr" в localStorage. 
 
2. Входные данные: 
   - Массив блоков с классом "fact_block" 
   - localStorage для сохранения показанных блоков и блоков с классом "fact_picture_mini_curr" 
 
3. Выходные данные: 
   - Отображение случайного блока на веб-странице 
   - Сохранение ID показанного блока в localStorage 
   - Сохранение ID блока с классом "fact_picture_mini_curr" в отдельный массив в localStorage 
 
4. Описание функций: 
   - getShownBlocks(): функция для получения уже показанных блоков из localStorage. Если такие блоки есть, возвращает массив ID блоков. Если таких блоков нет, возвращает пустой массив. 
   - saveShownBlock(blockId): функция для сохранения ID показанного блока. Получает ID блока и добавляет его в массив показанных блоков в localStorage. Если блок имеет класс "fact_picture_mini_curr", также сохраняет его ID в отдельный массив в localStorage. 
   - removeShowClass(): функция для удаления класса "show" у всех блоков. Проходит по массиву блоков и удаляет класс "show" у каждого блока. 
   - showRandomBlock(): функция для выбора и показа случайного блока. Получает массив показанных блоков и фильтрует массив блоков, оставляя только доступные блоки (которые еще не показаны и имеют ID, содержащий "fact_"). Если доступных блоков нет, показывает последний блок с ID "full_collection". Иначе, выбирает случайный блок из доступных, добавляет ему класс "show" и сохраняет его ID с помощью функции saveShownBlock(). Если у выбранного блока есть соответствующий блок с ID, начинающимся с "mini_", добавляет ему класс "fact_picture_mini_curr" и сохраняет его ID в отдельный массив в localStorage. 
 
5. Шаги выполнения: 
   - Получить все блоки с классом "fact_block" и сохранить их в массив "blocks". 
   - Вызвать функцию removeShowClass() для удаления класса "show" у всех блоков. 
   - Вызвать функцию showRandomBlock() для выбора и показа случайного блока. 
   - Проверить наличие ID блоков с классом "fact_picture_mini_curr" в массиве "factPictureMiniCurrIds" из localStorage. Если такие ID есть, добавить класс "fact_picture_mini_curr" этим блокам. 
 
6. Требования к localStorage: 
   - Ключ "shownBlocks" для хранения массива ID показанных блоков. 
   - Ключ "fact_picture_mini_curr" для хранения массива ID блоков с классом "fact_picture_mini_curr". 
 
7. Тестирование: 
   - Убедиться, что случайный блок отображается на веб-странице при каждом обновлении страницы. 
   - Убедиться, что ID показанного блока сохраняется в localStorage. 
   - Убедиться, что блоки с классом "fact_picture_mini_curr" также сохраняются и отображаются правильно. 
 
8. Ограничение показа случайного блока: 
   - Предусмотреть ограничение показа случайного блока один раз в 10 минут. 
   - Проверять время последнего показа случайного блока в localStorage. 
   - Если время последнего показа блока меньше 10 минут назад, не показывать новый случайный блок и продолжать отображать предыдущий блок. 
   - Если время последнего показа блока больше или равно 10 минут назад, показывать новый случайный блок и обновлять время последнего показа в localStorage. 
 
9. Дополнительные функции: 
   - getLastShownTime(): функция для получения времени последнего показа случайного блока из localStorage. Возвращает время в миллисекундах или 0, если время не сохранено. 
   - saveLastShownTime(): функция 
		
	
		
		
		
		
		
		
	
		
			
			
	
			
			
			
			
			
				 
			
			
			
			
			
			
				
			
			
			
		 
		
	
	
	 |