OLD | NEW |
---|---|
1 function handleString(event) { | 1 function handleString(event) { |
2 event.respondWith(new Response('Test string')); | 2 event.respondWith(new Response('Test string')); |
3 } | 3 } |
4 | 4 |
5 function handleBlob(event) { | 5 function handleBlob(event) { |
6 event.respondWith(new Response(new Blob(['Test blob']))); | 6 event.respondWith(new Response(new Blob(['Test blob']))); |
7 } | 7 } |
8 | 8 |
9 function handleReferrer(event) { | 9 function handleReferrer(event) { |
10 event.respondWith(new Response(new Blob(['Referrer: ' + event.request.referr er]))); | 10 event.respondWith(new Response(new Blob( |
11 ['Referrer: ' + event.request.referrer]))); | |
11 } | 12 } |
12 | 13 |
13 function handleNullBody(event) { | 14 function handleNullBody(event) { |
14 event.respondWith(new Response(null)); | 15 event.respondWith(new Response(null)); |
15 } | 16 } |
16 | 17 |
17 function handleReject(event) { | 18 function handleReject(event) { |
18 event.respondWith(new Promise(function(resolve, reject) { | 19 event.respondWith(new Promise(function(resolve, reject) { |
19 reject('rejected!'); | 20 reject('rejected!'); |
20 })); | 21 })); |
21 } | 22 } |
22 | 23 |
23 function handleFetch(event) { | 24 function handleFetch(event) { |
24 event.respondWith(fetch('other.html')); | 25 event.respondWith(fetch('other.html')); |
26 } | |
27 | |
28 function handleFormPost(event) { | |
29 event.respondWith(new Promise(function(resolve) { | |
30 event.request.body.asText() | |
31 .then(function(result) { | |
32 resolve(new Response(event.request.method + ':' + result)); | |
33 }) | |
34 })); | |
25 } | 35 } |
26 | 36 |
27 self.addEventListener('fetch', function(event) { | 37 self.addEventListener('fetch', function(event) { |
28 var url = event.request.url; | 38 var url = event.request.url; |
29 var handlers = [ | 39 var handlers = [ |
30 { pattern: '?string', fn: handleString }, | 40 { pattern: '?string', fn: handleString }, |
31 { pattern: '?blob', fn: handleBlob }, | 41 { pattern: '?blob', fn: handleBlob }, |
32 { pattern: '?referrer', fn: handleReferrer }, | 42 { pattern: '?referrer', fn: handleReferrer }, |
33 { pattern: '?ignore', fn: function() {} }, | 43 { pattern: '?ignore', fn: function() {} }, |
34 { pattern: '?null', fn: handleNullBody }, | 44 { pattern: '?null', fn: handleNullBody }, |
35 { pattern: '?reject', fn: handleReject }, | 45 { pattern: '?reject', fn: handleReject }, |
36 { pattern: '?fetch', fn: handleFetch } | 46 { pattern: '?fetch', fn: handleFetch }, |
47 { pattern: '?form-post', fn: handleFormPost } | |
37 ]; | 48 ]; |
38 | 49 |
39 var handler = null; | 50 var handler = null; |
40 for (var i = 0; i < handlers.length; ++i) { | 51 for (var i = 0; i < handlers.length; ++i) { |
41 if (url.indexOf(handlers[i].pattern) != -1) { | 52 if (url.indexOf(handlers[i].pattern) != -1) { |
42 handler = handlers[i]; | 53 handler = handlers[i]; |
43 break; | 54 break; |
44 } | 55 } |
45 } | 56 } |
46 | 57 |
47 if (handler) | 58 if (handler) |
48 handler.fn(event); | 59 handler.fn(event); |
falken
2014/08/19 04:08:25
style nit: since the else has braces, this if must
horo
2014/08/19 04:46:14
Done.
| |
49 else | 60 else { |
50 event.respondWith(new Response(new Blob(['Service Worker got an unexpect ed request: ' + url]))); | 61 event.respondWith(new Response(new Blob( |
51 }); | 62 ['Service Worker got an unexpected request: ' + url]))); |
63 } | |
64 }); | |
OLD | NEW |