при наличии на сервере HTTP/2 модули из CDN могут загружаться параллельно в отличии от той же webpack-сборки
Так какой же подход все таки является более удачным в современных реалиях?
В m[ i ] [ j ] второй атрибут 'j' меняется, а вот если i будет больше '0', то уже ошибка "Can not set property "0" or undefined"
const m = [[]]
создаёте массив, с объявленным нулевым элементом, в который присваивается пустой массив.undefined[0]
m = (new Array(10)).fill([]) // заменить число 10 на нужный размер
1) Как можно данные из первой функции передать во вторую?
2) Как нужно делать запрос чтобы объединить полученные данные двух этих запросов?
Promise.all([
fetch(url-1),
fetch(url-2)
])
.then(response => {
// response - тут данные двух запросов
})
Почему так ?
document.querySelectorAll(...)
возвращает NodeList массив, у которого нет свойства textContentvar text = [];
[...document.querySelectorAll("p")].map(v => text.push(v.textContent))
// В элементах массива text будет лежать контент всех найденных абзацев
// ...
getOrientation(file, function(orientation) {
if (orientation == 8) { // -90deg
$modal.trigger('image-action', [['left']]);
}
else if (orientation == 6) { // 90deg
$modal.trigger('image-action', [['right']]);
}
else if (orientation == 3) { // -180deg
$modal.trigger('image-action', [['left']]);
$modal.trigger('image-action', [['left']]);
}
});
// ...
function getOrientation(file, callback) {
var reader = new FileReader();
reader.onload = function(e) {
var view = new DataView(e.target.result);
if (view.getUint16(0, false) != 0xFFD8) return callback(-2);
var length = view.byteLength/2, offset = 2;
while (offset < length) {
var marker = view.getUint16(offset, false);
offset += 2;
if (marker == 0xFFE1) {
if (view.getUint32(offset += 2, false) != 0x45786966) return callback(-1);
var little = view.getUint16(offset += 6, false) == 0x4949;
offset += view.getUint32(offset + 4, little);
var tags = view.getUint16(offset, little);
offset += 2;
for (var i = 0; i < tags; i++)
if (view.getUint16(offset + (i * 12), little) == 0x0112)
return callback(view.getUint16(offset + (i * 12) + 8, little));
}
else if ((marker & 0xFF00) != 0xFF00) break;
else offset += view.getUint16(offset, false);
}
return callback(-1);
};
reader.readAsArrayBuffer(file);
}