File tree Expand file tree Collapse file tree 7 files changed +212
-0
lines changed Expand file tree Collapse file tree 7 files changed +212
-0
lines changed Original file line number Diff line number Diff line change 1+ node_modules
Original file line number Diff line number Diff line change 1+ {
2+ "name" : " web-workers" ,
3+ "main" : " server.js" ,
4+ "dependencies" : {
5+ "node-static-alias" : " ~1.1.2"
6+ }
7+ }
Original file line number Diff line number Diff line change 1+ "use strict" ;
2+
3+ var path = require ( "path" ) ;
4+ var http = require ( "http" ) ;
5+ var nodeStaticAlias = require ( "node-static-alias" ) ;
6+
7+ const PORT = 8049 ;
8+ const WEB_DIR = path . join ( __dirname , "web" ) ;
9+
10+ var httpServer = http . createServer ( handleRequest ) ;
11+
12+ var staticServer = new nodeStaticAlias . Server ( WEB_DIR , {
13+ serverInfo : "Web Workers" ,
14+ cache : 1
15+ } ) ;
16+
17+
18+ httpServer . listen ( PORT ) ;
19+ console . log ( `Server started on http://localhost:${ PORT } ...` ) ;
20+
21+
22+ // *******************************
23+
24+ async function handleRequest ( req , res ) {
25+ // handle static file requests
26+ if ( [ "GET" , "HEAD" ] . includes ( req . method ) ) {
27+ // special handling for empty favicon
28+ if ( req . url == "/favicon.ico" ) {
29+ res . writeHead ( 204 , {
30+ "Content-Type" : "image/x-icon" ,
31+ "Cache-Control" : "public, max-age: 604800"
32+ } ) ;
33+ res . end ( ) ;
34+ return ;
35+ }
36+
37+ // handle other static files
38+ staticServer . serve ( req , res , function onStaticComplete ( err ) {
39+ if ( err ) {
40+ res . writeHead ( 404 ) ;
41+ res . end ( ) ;
42+ }
43+ } ) ;
44+ }
45+ // Oops, invalid/unrecognized request
46+ else {
47+ res . writeHead ( 404 ) ;
48+ res . end ( ) ;
49+ }
50+ }
Original file line number Diff line number Diff line change 1+ html {
2+ box-sizing : border-box;
3+ font-family : sans-serif;
4+ font-size : 1.3em ;
5+ }
6+
7+ * ,
8+ * ::before ,
9+ * ::after {
10+ box-sizing : inherit;
11+ }
12+
13+ html input ,
14+ html button ,
15+ html textarea {
16+ font-size : 1em ;
17+ }
18+
19+ html ,
20+ body {
21+ background-color : # e5efff ;
22+ }
23+
24+ header {
25+ position : relative;
26+ max-width : 800px ;
27+ margin : 0px auto;
28+ color : # 222 ;
29+ }
30+
31+ nav {
32+ background-color : # 5078ba ;
33+ color : # fff ;
34+ }
35+
36+ nav ul {
37+ padding : 0px ;
38+ padding-left : 20px ;
39+ margin : 0px ;
40+ list-style : none;
41+ }
42+
43+ nav ul li {
44+ display : inline-block;
45+ padding : 10px ;
46+ }
47+
48+ nav ul li a {
49+ color : # fff ;
50+ text-decoration : none;
51+ }
52+
53+ main {
54+ margin : 0px auto;
55+ max-width : 800px ;
56+ background-color : # fff ;
57+ color : # 000 ;
58+ padding : 30px ;
59+ }
Original file line number Diff line number Diff line change 1+ <!DOCTYPE html>
2+ < html >
3+ < head >
4+ < meta charset ="utf-8 ">
5+ < title > Web Workers</ title >
6+ < link rel ="stylesheet " href ="/css/style.css ">
7+ </ head >
8+ < body >
9+ < header >
10+ < h1 > Web Workers</ h1 >
11+ < nav >
12+ < ul >
13+ < li > < a href ="/ "> Home</ a > </ li >
14+ </ ul >
15+ </ nav >
16+ </ header >
17+
18+ < main >
19+
20+ < p >
21+ Let's explore Web Workers together.
22+ </ p >
23+ < p >
24+ Fibonacci Numbers: < button type ="button " id ="start-stop-btn "> Start</ button >
25+ </ p >
26+ < div id ="fibs "> </ div >
27+
28+ </ main >
29+
30+ < script src ="/js/home.js "> </ script >
31+ </ body >
32+ </ html >
Original file line number Diff line number Diff line change 1+ ( function Home ( ) {
2+ "use strict" ;
3+
4+ var startStopBtn ;
5+ var fibsList ;
6+
7+ document . addEventListener ( "DOMContentLoaded" , ready , false ) ;
8+
9+
10+ // **********************************
11+
12+ function ready ( ) {
13+ startStopBtn = document . getElementById ( "start-stop-btn" ) ;
14+ fibsList = document . getElementById ( "fibs" ) ;
15+
16+ startStopBtn . addEventListener ( "click" , startFibs , false ) ;
17+ }
18+
19+ function renderFib ( num , fib ) {
20+ var p = document . createElement ( "div" ) ;
21+ p . innerText = `Fib(${ num } ): ${ fib } ` ;
22+ if ( fibsList . childNodes . length > 0 ) {
23+ fibsList . insertBefore ( p , fibsList . childNodes [ 0 ] ) ;
24+ }
25+ else {
26+ fibsList . appendChild ( p ) ;
27+ }
28+ }
29+
30+ function startFibs ( ) {
31+ startStopBtn . removeEventListener ( "click" , startFibs , false ) ;
32+ startStopBtn . addEventListener ( "click" , stopFibs , false ) ;
33+
34+ startStopBtn . innerText = "Stop" ;
35+ fibsList . innerHTML = "" ;
36+
37+ // TODO
38+ }
39+
40+ function stopFibs ( ) {
41+ startStopBtn . removeEventListener ( "click" , stopFibs , false ) ;
42+ startStopBtn . addEventListener ( "click" , startFibs , false ) ;
43+
44+ startStopBtn . innerText = "Start" ;
45+
46+ // TODO
47+ }
48+
49+ } ) ( ) ;
Original file line number Diff line number Diff line change 1+ "use strict" ;
2+
3+ var curFib = 0 ;
4+
5+ // TODO
6+
7+ // **********************************
8+
9+ function fib ( n ) {
10+ if ( n < 2 ) {
11+ return n ;
12+ }
13+ return fib ( n - 1 ) + fib ( n - 2 ) ;
14+ }
You can’t perform that action at this time.
0 commit comments