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( | 10 event.respondWith(new Response(new Blob( |
11 ['Referrer: ' + event.request.referrer]))); | 11 ['Referrer: ' + event.request.referrer]))); |
12 } | 12 } |
13 | 13 |
14 function handleNullBody(event) { | 14 function handleNullBody(event) { |
15 event.respondWith(new Response(null)); | 15 event.respondWith(new Response(null)); |
16 } | 16 } |
17 | 17 |
18 function handleReject(event) { | |
19 event.respondWith(new Promise(function(resolve, reject) { | |
20 reject('rejected!'); | |
21 })); | |
22 } | |
23 | |
24 function handleFetch(event) { | 18 function handleFetch(event) { |
25 event.respondWith(fetch('other.html')); | 19 event.respondWith(fetch('other.html')); |
26 } | 20 } |
27 | 21 |
28 function handleFormPost(event) { | 22 function handleFormPost(event) { |
29 event.respondWith(new Promise(function(resolve) { | 23 event.respondWith(new Promise(function(resolve) { |
30 event.request.text() | 24 event.request.text() |
31 .then(function(result) { | 25 .then(function(result) { |
32 resolve(new Response(event.request.method + ':' + result)); | 26 resolve(new Response(event.request.method + ':' + result)); |
33 }) | 27 }) |
(...skipping 14 matching lines...) Expand all Loading... |
48 } | 42 } |
49 | 43 |
50 self.addEventListener('fetch', function(event) { | 44 self.addEventListener('fetch', function(event) { |
51 var url = event.request.url; | 45 var url = event.request.url; |
52 var handlers = [ | 46 var handlers = [ |
53 { pattern: '?string', fn: handleString }, | 47 { pattern: '?string', fn: handleString }, |
54 { pattern: '?blob', fn: handleBlob }, | 48 { pattern: '?blob', fn: handleBlob }, |
55 { pattern: '?referrer', fn: handleReferrer }, | 49 { pattern: '?referrer', fn: handleReferrer }, |
56 { pattern: '?ignore', fn: function() {} }, | 50 { pattern: '?ignore', fn: function() {} }, |
57 { pattern: '?null', fn: handleNullBody }, | 51 { pattern: '?null', fn: handleNullBody }, |
58 { pattern: '?reject', fn: handleReject }, | |
59 { pattern: '?fetch', fn: handleFetch }, | 52 { pattern: '?fetch', fn: handleFetch }, |
60 { pattern: '?form-post', fn: handleFormPost }, | 53 { pattern: '?form-post', fn: handleFormPost }, |
61 { pattern: '?multiple-respond-with', fn: handleMultipleRespondWith } | 54 { pattern: '?multiple-respond-with', fn: handleMultipleRespondWith } |
62 ]; | 55 ]; |
63 | 56 |
64 var handler = null; | 57 var handler = null; |
65 for (var i = 0; i < handlers.length; ++i) { | 58 for (var i = 0; i < handlers.length; ++i) { |
66 if (url.indexOf(handlers[i].pattern) != -1) { | 59 if (url.indexOf(handlers[i].pattern) != -1) { |
67 handler = handlers[i]; | 60 handler = handlers[i]; |
68 break; | 61 break; |
69 } | 62 } |
70 } | 63 } |
71 | 64 |
72 if (handler) { | 65 if (handler) { |
73 handler.fn(event); | 66 handler.fn(event); |
74 } else { | 67 } else { |
75 event.respondWith(new Response(new Blob( | 68 event.respondWith(new Response(new Blob( |
76 ['Service Worker got an unexpected request: ' + url]))); | 69 ['Service Worker got an unexpected request: ' + url]))); |
77 } | 70 } |
78 }); | 71 }); |
OLD | NEW |