Индексированные id
значения в документе обычно являются плохой идеей; рассмотреть возможность использования классов вместо. Кроме того, вместо цикла for
(который требует ручной итерации и не имеет абстракции), рассмотрите возможность использования вместо forEach
:
const dice = document.querySelectorAll('.dice');
button.onclick = () => {
dice.forEach((die) => {
die.src = pics[Math.floor(Math.random() * pics.length)]
});
};
const dice = document.querySelectorAll('.dice');
const pics = ['https://i.postimg.cc/MfVDpSmQ/Eagle.jpg',
'https://i.postimg.cc/QKGQPzZx/Man.jpg',
'https://i.postimg.cc/1g7MWMzf/Dog.jpg',
'https://i.postimg.cc/xc9HzM07/Telephone.jpg',
'https://i.postimg.cc/4mwcbyy3/Robot.jpg',
'https://i.postimg.cc/ctRRNcd7/Moon.jpg',
'https://i.postimg.cc/xJW5QCMQ/Dinosaur.jpg',
'https://i.postimg.cc/hhdMrLRt/Fish.jpg',
'https://i.postimg.cc/Ty1JWmcG/Flowers.jpg'
];
const button = document.querySelector('#button');
button.onclick = () => {
dice.forEach((die) => {
die.src = pics[Math.floor(Math.random() * pics.length)]
});
};
[ 112] Чтобы гарантировать, что изображения не повторяются, каждый раз, когда нажимается кнопка, сделайте копию массива, затем splice
выделите выбранный элемент:
const dice = document.querySelectorAll('.dice');
const pics = ['https://i.postimg.cc/MfVDpSmQ/Eagle.jpg',
'https://i.postimg.cc/QKGQPzZx/Man.jpg',
'https://i.postimg.cc/1g7MWMzf/Dog.jpg',
'https://i.postimg.cc/xc9HzM07/Telephone.jpg',
'https://i.postimg.cc/4mwcbyy3/Robot.jpg',
'https://i.postimg.cc/ctRRNcd7/Moon.jpg',
'https://i.postimg.cc/xJW5QCMQ/Dinosaur.jpg',
'https://i.postimg.cc/hhdMrLRt/Fish.jpg',
'https://i.postimg.cc/Ty1JWmcG/Flowers.jpg'
];
const button = document.querySelector('#button');
button.onclick = () => {
const picsCopy = pics.slice();
dice.forEach((die) => {
const [src] = picsCopy.splice(Math.floor(Math.random() * picsCopy.length), 1);
die.src = src;
});
};
<img class="dice">
<img class="dice">
<img class="dice">
<img class="dice">
<img class="dice">
<img class="dice">
<button id="button">Roll the dice</button>
Сайт может быть позади брандмауэра что запросы ICMP блоков (например, ping). Запросы HTTP, которые отсылает Ваш браузер, пробегаются через TCP/IP.
Браузер использует протокол TCP/IP для общения с сервером Запросы HTTP при использовании ping он использует протокол ICMP и кажется сервером позади брандмауэра, который отбрасывает Эхо-запросы ICMP.
Общедоступные серверы часто не отвечают на запросы ping. В конце концов, люди разве вводят, не проверяют с помощью ping-запросов testsite.com, прежде чем они откроют свой браузер, правильно? Таким образом, нет никакого основного назначения для ответа на ping forthese сайты. С другой стороны:
Несколько лет назад ребенок, управляемый для одновременной подачи amazon.com и нескольких других таких больших сайтов вниз к thei коленям в течение нескольких часов при наличии нескольких сотен машин, бомбит их с загрузками запросов ping.
С тех пор ping не считали так большим количеством товарищеской встречи администраторы.
Ping является по существу пакетом "эхо-запроса", отправленным по IMCP (протокол). Корректный ответ на ping является ловко "пакетом" ответа эха. Однако, если Вы отправляете ответный пакет эха, люди знают, что Вы существуете. Теперь при выполнении веб-сервера это не грандиозное предприятие, но когда Вы выполняете стандартный рабочий стол, Вы не хотите людей, знающих Вас, существуют. Результат состоит в том, что многие настроенные на безопасность люди отключат ответы ping по умолчанию, даже на машинах сервера.
Ping отправляет пакет запроса ICMP. Веб-сервер может принять решение проигнорировать его и не ответить, вместо того, чтобы ответить ответом ICMP.
Сеть brower использует HTTP, что означает, что это открывает соединение TCP на порте 80 при помощи обмена SYN/SYNACK/ACK.
Эти два процесса полностью отличаются и независимы, таким образом, можно позволить/запретить любому независимо.
Ping (также известный как ICMP) и http протокол работает полностью по-другому и использует различные порты. Различные устройства/брандмауэры по пути могут заблокировать ping, но большинство позволяет http через.
Это не браузер. Мог быть брандмауэр между Вами и сервер, это блокирует запросы ping, или сервер просто не может отвечать на ping. Это - мера по коллективной безопасности.
Пакеты ping, как другие заявили, являются другим типом пакета, чем пакеты 'HTML' - пакетами Ping является ICMP/IP, в то время как HTML является TCP/IP. Все виды материала, промежуточного, Вы и веб-сайт могли принять решение заблокировать пакеты ICMP при разрешении пакетов TCP через.