Skip to content

Commit 90b171a

Browse files
save file
1 parent 20a58c3 commit 90b171a

File tree

1 file changed

+35
-134
lines changed

1 file changed

+35
-134
lines changed

blog/25-07-23/streaming-upload-with-fetch/streaming-upload-with-fetch.html

Lines changed: 35 additions & 134 deletions
Original file line numberDiff line numberDiff line change
@@ -7,39 +7,36 @@
77

88
<!DOCTYPE html>
99

10-
11-
<html>
10+
<html lang=en>
1211

1312
<head>
1413
<meta charset=UTF-8>
15-
14+
1615
<title>
17-
streaming upload with fetch
16+
Streaming Upload With Fetch
1817
</title>
18+
1919
<meta name=description content='Discover how to stream file uploads using the Fetch API. This interactive blog post includes a live, editable demo so you can experiment with streaming techniques directly in your browser.'>
2020

21-
<link rel=icon type='image/png' href='/blog/image/blog-30.png'>
21+
<link rel=icon href='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAMAAAAM7l6QAAABLFBMVEVHcEwopnMfpm8epm4epm4hpm81pHgfpm8ipnAhpm8ipnAfpm8gpm8jpnAsquAqpXQhpnAjpnEspXQhpnDr3Mgtqt8epm8fpm8kpnEgpm8rpXPr6OkqquAqquEjpnF/xagnqHTr6OlUtY7m5ubm5ub/9//m5uYbpWyXzLZ1s4UPnmRbqrkdpm7m5ubp5+gbpm0bpWwsq3fC29GXzbaMyrEwrOFHtIYnquHb4+Cz1uUkp3LT4ebi5ejwhhL3jhj7mSO72eXkhB12w+T4pDd8xafF3NKfijLWsrDc3diHlIzyr07et4jq07fqmkfhqFfyv3dauuJnveE2rn1AnFltkULIx8dQomPMfxXvjbNuo4xylYXu0KZqr7fOwrFaueL9yoTI1MatqHQwqtqDrqPS97zrAAAALHRSTlMAHtX5958F0l+Pfe2lXa4QgGAPjf6b8fBbzw9Y0L1h6t3NR9HhDPzLh/QusFA6UqkAAAGESURBVCjPdZNnW8IwEIDTtKVQKHsj7u21RUVREBFQ2SjuPf//fzBt0gFPfT+0z9M3vVwudwhZcLEQzvB8Bof8HJqFi2IeGLwkTy/w+TFMgRWfYyMBAfSShW54IZG3bFwEqJ6XLRYWzQBinEUOAOi7F5rF0rJErA4JGl8RDL2nqYyVte2Nau+lKmTNnI2s3Hq1UNjc6jz1ABv5yzCj1XU12R93nnWQyc+SrdneZMFVo35ZBZA4pPCWrh1Tatpr+/Tx1qhPFonAtNo6oLSS/Ubzjh4OSZY+ua5QJkbokvk5h4IuPZcqhsPF3/Zp88EsHQQRb+sPosOp8M64UR8c0r8FR9O9Kz/fjfqoa2s7uFY7I0zeSOjhEdNBJzV67trX52igWTrnHIxV7X2YVG0tuspC9X2XPJgmZXEV1cR8MU2K6nEltpadC3XagUC1eaHIT9qBNNO+i/INqZqg2M3kBWsmFBG9rJh3GpmflUIi7hqD2OwY+H3/DxGOekzZfAinAdI4FHPkH67FfQ17kRvyAAAAAElFTkSuQmCC'>
2222
<meta name=viewport content='width=device-width, initial-scale=1'>
23-
24-
23+
2524
<base href='https://ext-code.com/blog/25-07-23/streaming-upload-with-fetch/'>
2625
<link rel=canonical href='https://ext-code.com/blog/25-07-23/streaming-upload-with-fetch.html/streaming-upload-with-fetch.html'>
2726

28-
29-
<script type='application/ld+json'>
3027

28+
<script type='application/ld+json'>
3129
{
3230
"@context" : "https://schema.org",
3331
"@type" : "TechArticle",
34-
"headline" : "streaming upload with fetch",
32+
"headline" : "Streaming Upload With Fetch",
3533
"description" : "Discover how to stream file uploads using the Fetch API. This interactive blog post includes a live, editable demo so you can experiment with streaming techniques directly in your browser.",
3634
"author" : {"@type":"Person","name":"Matthew Richards"},
3735
"datePublished" : "2025-08-31",
3836
"dateModified" : "2025-10-15",
3937
"mainEntityOfPage" : {"@type":"WebPage","@id":"https://ext-code.com/blog/25-07-23/streaming-upload-with-fetch.html/streaming-upload-with-fetch.html"},
4038
"publisher" : {"@type":"Organization","name":"ext-code.com","logo":{"@type":"ImageObject","url":"https://ext-code.com/favicon.ico"}},
4139
}
42-
4340
</script>
4441

4542

@@ -49,141 +46,50 @@
4946

5047

5148
<script src='https://ajaxorg.github.io/ace-builds/src-noconflict/ace.js'></script>
52-
53-
54-
<script src='https://libs.ext-code.com/js/dom/component/component.js'></script>
55-
56-
<script init>
57-
console.clear();
49+
50+
51+
<script src='https://libs.ext-code.com/js/dom/component/v2.0/component.js?hdr'></script>
52+
53+
<script>
5854
console.log('streaming-upload-with-fetch.html');
59-
console.log();
60-
console.json=v=>console.log(JSON.stringify(v,null,4));
61-
var version='v1.0',df=true
62-
;
63-
64-
65-
var ext;
66-
var $;
67-
var datatype;
68-
var menumod;
69-
var code;
70-
var debug;
55+
var df=true,did='html';
7156

72-
var hdr;
73-
var ex;
74-
75-
76-
//:
77-
78-
79-
async function init(){
80-
//debug('init',version);
81-
82-
menu = menumod();
83-
84-
mod.base.add({ext,$,datatype,keydown,menu,menumod,ace});
85-
86-
87-
hdr = mod['blog-hdr'];
88-
ex = mod.ex;
89-
90-
hdr.initmod({ext,$});
91-
ex.initmod({ext,$,ace,menu});
92-
93-
94-
await Promise.all([
95-
hdr.init(),
96-
ex.init(),
97-
]);
98-
99-
57+
58+
async function ready(){
59+
debug('init');
10060
await initdom(document.body);
101-
102-
61+
10362
}//init
104-
105-
106-
//:
107-
108-
109-
(async()=>{
110-
111-
mod.stack.add;
11263

113-
({ext} = await import('https://libs.ext-code.com/js/io/ext-loader/ext-loader.m.js'));
114-
115-
var promise = ext.load.libs(
116-
'js/dom/$.js',
117-
'js/core/datatype.js',
118-
'js/dom/menumod/menumod.js',
119-
'js/dom/keydown/keydown.js',
120-
'js/dom/code/v2.0/code-v2.0.js.api',
121-
'js/debug/debug.js',
122-
);
123-
[$,datatype,menumod,keydown,code] = await promise;
124-
125-
code.initmod({ext,$,datatype,menumod});
12664

127-
mod.stack.complete;
128-
129-
})();
130-
131-
132-
</script init>
133-
134-
135-
136-
137-
<link rel=stylesheet href='/blog/css/blog.css'>
65+
</script>
13866

139-
<style>
14067

141-
html
142-
{height:100%;font-family:arial}
143-
body
144-
{min-height:calc(100% - 40px);display:flex;flex-direction:column;gap:10px;margin:20px;align-items:center;
145-
padding-bottom:200px;
146-
}
147-
body>*
148-
{max-width:1400px;width:100%;padding:0 20px;}
149-
150-
151-
code
152-
{display:block;border-radius:5px;background:whitesmoke;font-family:monospace;padding:10px;white-space:pre;
153-
margin:20px 0;
154-
}
155-
156-
157-
a.link-stable
158-
{color:blue}
159-
.link-domain
160-
{font-size:12px}
161-
.link-txt
162-
{}
163-
164-
68+
<link rel=stylesheet href='../../css/blog.css' crossorigin=anonymous>
69+
70+
<style>
16571
</style>
16672

16773
</head>
16874

16975

17076
<body>
171-
77+
17278
<blog-hdr component=grp1>
17379
<h1 class=title>
174-
streaming upload with fetch
80+
Streaming Upload With Fetch
17581
</h1>
176-
<time slot=date datetime="2025-10-15">
177-
15 Oct 2025
82+
<time slot=date datetime=2026-02-03>
83+
03 Feb 2026
17884
</time>
17985
</blog-hdr>
180-
181-
86+
87+
18288

18389

18490
<p>
185-
186-
Discover how to stream file uploads using the Fetch API. This interactive blog post includes a live, editable demo so you can experiment with streaming techniques directly in your browser.
91+
92+
Discover how to stream file uploads using the Fetch API. This interactive blog post includes a live, editable demo so you can experiment with streaming techniques directly in your browser.
18793
<div>
18894
requires http2 on the server
18995
<a href=''>
@@ -194,27 +100,22 @@ <h1 class=title>
194100
blog / how to set up HTTP/2 server in Node.js
195101
</span>
196102
</a>
197-
103+
198104
</div>
199-
105+
200106
</p>
201107

202108

203-
<snippet-console id=ex src='ex/fetch.js' component></snippet-console>
204-
205-
109+
<snippet-console component id=ex src='ex/fetch.js'></snippet-console>
110+
111+
206112
</body>
207113

208114

209115
<script>
210116

211117

212118
function initdom(rootnode){
213-
214-
hdr.initdom();
215-
216-
ex.initdom(null,{fullsize:true});
217-
218119
}//initdom
219120

220121

0 commit comments

Comments
 (0)