function searchInFileExplorer(search, location) {
window.open(`search-ms:displayname=${search}&crumb=System.Generic.String:${search}&crumb=location:${location}`);
}
searchInFileExplorer("Search Text", "C:\\Users\\");
"C:%HOMEPATH%\\Downloads"
("\\" т.к. экраннирование) new Blob([new Uint8Array(500*1024*1024)]);
const ui8a = new Uint8Array(500*1024*1024);
for (let i = 0; i < ui8a.length; i++) {
ui8a[i] = Math.trunc(Math.random()*256);
}
const blob = new Blob([ui8a], {type: "application/octet-stream"});
chrome://flags/#enable-experimental-web-platform-features
ReadableStream
как Request.body
response.getReader()
и считываешь данные вручную по частям по мере поступления. JSON файл, естетственно, парсить придется тоже вручную, т.к. JSON.parse
не будет работать с невалидным JSON, чем недокаченный файл и будет являться.responseType: "text"
(по-умолчанию). В таком случае при каждом вызове onprogress
или onreadystatechange
можно читать обновленный (с добавленными данными) xhr.responseText.
xhr.send(data);
и по очереди:// сначала ты
xhr.upload.onprogress // загрузка на сервер
xhr.upload.onload // загрузка на сервер завершена
// потом сервер
xhr.onreadystatechange // xhr.readyState === 2 // HEADERS_RECEIVED // получены заголовки ответа (и только)
xhr.onreadystatechange // xhr.readyState === 3 // LOADING // загрузка ответа сервера
xhr.onprogress // загрузка ответа сервера
xhr.onreadystatechange // xhr.readyState === 4 // DONE
xhr.onload // загрузка ответа сервера завершена
import gallery from '/gallery-items.js';
import gallery from './gallery-items.js';
await (await fetch("https://kolesa.kz/analytics/?mark=7&model=15&year=2007&id=108617007")).text()
'Access-Control-Allow-Origin':'*'
mode: 'no-cors'
Fetch запрос возвращает пустой результат
Response
c type: "opaque"
. document.querySelector("#top_audio_player").dispatchEvent(new MouseEvent("mousedown"));
// Второй пример:
Promise.resolve("A__2")
.then(message => {console.log(message); return "B__2"})
.then(message => {console.log(message); return "C__2"})
.then(message => {console.log(message); return "D__2"})
.then(message => {console.log(message);});
// Первый пример (да, вот так это должно выглядеть):
function* messageGenerator() {
yield Promise.resolve("A");
yield Promise.resolve("B");
yield Promise.resolve("C");
yield Promise.resolve("D");
}
for (const messagePromise of messageGenerator()) {
messagePromise.then(message => console.log(message + "1"));
}
A__2
A1
B1
C1
D1
B__2
C__2
D__2