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(['Referrer: ' + event.request.referr
er]))); |
11 } | 11 } |
12 | 12 |
13 function handleNullBody(event) { | 13 function handleNullBody(event) { |
14 event.respondWith(new Response(null)); | 14 event.respondWith(new Response(null)); |
15 } | 15 } |
16 | 16 |
17 function handleReject(event) { | 17 function handleReject(event) { |
18 event.respondWith(new Promise(function(resolve, reject) { | 18 event.respondWith(new Promise(function(resolve, reject) { |
19 reject('rejected!'); | 19 reject('rejected!'); |
20 })); | 20 })); |
21 } | 21 } |
22 | 22 |
23 function handleUnresolved(event) { | |
24 event.respondWith(new Promise(function(resolve, reject) { })); | |
25 } | |
26 | |
27 function handleFetch(event) { | 23 function handleFetch(event) { |
28 event.respondWith(fetch('other.html')); | 24 event.respondWith(fetch('other.html')); |
29 } | 25 } |
30 | 26 |
31 self.addEventListener('fetch', function(event) { | 27 self.addEventListener('fetch', function(event) { |
32 var url = event.request.url; | 28 var url = event.request.url; |
33 var handlers = [ | 29 var handlers = [ |
34 { pattern: '?string', fn: handleString }, | 30 { pattern: '?string', fn: handleString }, |
35 { pattern: '?blob', fn: handleBlob }, | 31 { pattern: '?blob', fn: handleBlob }, |
36 { pattern: '?referrer', fn: handleReferrer }, | 32 { pattern: '?referrer', fn: handleReferrer }, |
37 { pattern: '?ignore', fn: function() {} }, | 33 { pattern: '?ignore', fn: function() {} }, |
38 { pattern: '?null', fn: handleNullBody }, | 34 { pattern: '?null', fn: handleNullBody }, |
39 { pattern: '?reject', fn: handleReject }, | 35 { pattern: '?reject', fn: handleReject }, |
40 { pattern: '?unresolved', fn: handleUnresolved }, | |
41 { pattern: '?fetch', fn: handleFetch } | 36 { pattern: '?fetch', fn: handleFetch } |
42 ]; | 37 ]; |
43 | 38 |
44 var handler = null; | 39 var handler = null; |
45 for (var i = 0; i < handlers.length; ++i) { | 40 for (var i = 0; i < handlers.length; ++i) { |
46 if (url.indexOf(handlers[i].pattern) != -1) { | 41 if (url.indexOf(handlers[i].pattern) != -1) { |
47 handler = handlers[i]; | 42 handler = handlers[i]; |
48 break; | 43 break; |
49 } | 44 } |
50 } | 45 } |
51 | 46 |
52 if (handler) | 47 if (handler) |
53 handler.fn(event); | 48 handler.fn(event); |
54 else | 49 else |
55 event.respondWith(new Response(new Blob(['Service Worker got an unexpect
ed request: ' + url]))); | 50 event.respondWith(new Response(new Blob(['Service Worker got an unexpect
ed request: ' + url]))); |
56 }); | 51 }); |
OLD | NEW |