Причем тут сервер в d2 синглной?Там же есть и мультиплеер, и ladder в battle.net.
let total = всекартинки.length
let loadedCounter = 0
всекартинки.forEach(el => el.addeventListener('load', foo))
const foo = function(e){
loadedCounter++
if (loadedCounter == total) {
// ...
}
}
- Глобальные переменные в большинстве случаев нарушают инкапсуляцию. К ним открыт неконтролируемый доступ отовсюду.
- В большом проекте при обилии глобальных переменных возникает путаница в именах. Глобальную переменную же видно отовсюду, надо, чтобы отовсюду было понятно, зачем она.
- Глобальные переменные в большинстве случаев нарушают принцип инверсии зависимостей (или делают возможным его нарушение).
- Глобальные переменные ухудшают масштабируемость проекта.
- Глобальные переменные ухудшают читаемость кода (в каком-то конкретно взятом месте непонятно, нужна ли какая-то конкретная глобальная переменная, или нет).
- Глобальные переменные приводят к трудноуловимым ошибкам. Примеры: нежелательное изменение её значения в другом месте/другим потоком, ошибочное использование глобальной переменной для промежуточных вычислений из-за совпадения имен, возвращение функцией неправильного значения при тех же параметрах (оказывается, она зависима от глобальной переменной, а ее кто-то поменял).
- Глобальные переменные создают большие сложности при использовании модульного тестирования.
- Глобальные переменные увеличивают число прямых и косвенных связей в системе, делая её поведение труднопредсказуемым, а её саму - сложной для понимания и развития.
$popups.find('[data-popup="second"]')
https://fiddle.jshell.net/_display/B.json
нет никакого B.json
.find('.text')
, но следующее в цепочке обращение .val('id')
бессмысленно, т.к. у этого элемента нет value. Поэтому вам возвращается jQuery-объект с элементом div#9.text