| OLD | NEW |
| 1 function handleHelloWorld(event) { | 1 function handleHelloWorld(event) { |
| 2 event.respondWith(new Response(new Blob(["hello, world"]))); | 2 event.respondWith(new Response(new Blob(["hello, world"]))); |
| 3 } | 3 } |
| 4 | 4 |
| 5 function handleNullBody(event) { | 5 function handleNullBody(event) { |
| 6 event.respondWith(new Response(null)); | 6 event.respondWith(new Response(null)); |
| 7 } | 7 } |
| 8 | 8 |
| 9 function handleReject(event) { | 9 function handleReject(event) { |
| 10 event.respondWith(new Promise(function(resolve, reject) { | 10 event.respondWith(new Promise(function(resolve, reject) { |
| 11 reject('rejected!'); | 11 reject('rejected!'); |
| 12 })); | 12 })); |
| 13 } | 13 } |
| 14 | 14 |
| 15 function handleFetch(event) { |
| 16 event.respondWith(fetch('other.html')); |
| 17 } |
| 18 |
| 15 self.addEventListener('fetch', function(event) { | 19 self.addEventListener('fetch', function(event) { |
| 16 var url = event.request.url; | 20 var url = event.request.url; |
| 17 var handlers = [ | 21 var handlers = [ |
| 18 { pattern: 'helloworld', fn: handleHelloWorld }, | 22 { pattern: 'helloworld', fn: handleHelloWorld }, |
| 19 { pattern: '?ignore', fn: function() {} }, | 23 { pattern: '?ignore', fn: function() {} }, |
| 20 { pattern: '?null', fn: handleNullBody }, | 24 { pattern: '?null', fn: handleNullBody }, |
| 21 { pattern: '?reject', fn: handleReject } | 25 { pattern: '?reject', fn: handleReject }, |
| 26 { pattern: '?fetch', fn: handleFetch } |
| 22 ]; | 27 ]; |
| 23 | 28 |
| 24 var handler = null; | 29 var handler = null; |
| 25 for (var i = 0; i < handlers.length; ++i) { | 30 for (var i = 0; i < handlers.length; ++i) { |
| 26 if (url.indexOf(handlers[i].pattern) != -1) { | 31 if (url.indexOf(handlers[i].pattern) != -1) { |
| 27 handler = handlers[i]; | 32 handler = handlers[i]; |
| 28 break; | 33 break; |
| 29 } | 34 } |
| 30 } | 35 } |
| 31 | 36 |
| 32 if (handler) | 37 if (handler) |
| 33 handler.fn(event); | 38 handler.fn(event); |
| 34 else | 39 else |
| 35 event.respondWith(new Response(new Blob(['Service Worker got an unexpect
ed request: ' + url]))); | 40 event.respondWith(new Response(new Blob(['Service Worker got an unexpect
ed request: ' + url]))); |
| 36 }); | 41 }); |
| OLD | NEW |