1 function handleString(event) {
2 event.respondWith(new Response('Test string'));
5 function handleBlob(event) {
6 event.respondWith(new Response(new Blob(['Test blob'])));
9 function handleReferrer(event) {
10 event.respondWith(new Response(new Blob(
11 ['Referrer: ' + event.request.referrer])));
14 function handleNullBody(event) {
15 event.respondWith(new Response(null));
18 function handleFetch(event) {
19 event.respondWith(fetch('other.html'));
22 function handleFormPost(event) {
23 event.respondWith(new Promise(function(resolve) {
25 .then(function(result) {
26 resolve(new Response(event.request.method + ':' + result));
31 var logForMultipleRespondWith = '';
33 function handleMultipleRespondWith(event) {
34 for (var i = 0; i < 3; ++i) {
35 logForMultipleRespondWith += '(' + i + ')';
37 event.respondWith(new Response(logForMultipleRespondWith));
39 logForMultipleRespondWith += '[' + e.name + ']';
44 self.addEventListener('fetch', function(event) {
45 var url = event.request.url;
47 { pattern: '?string', fn: handleString },
48 { pattern: '?blob', fn: handleBlob },
49 { pattern: '?referrer', fn: handleReferrer },
50 { pattern: '?ignore', fn: function() {} },
51 { pattern: '?null', fn: handleNullBody },
52 { pattern: '?fetch', fn: handleFetch },
53 { pattern: '?form-post', fn: handleFormPost },
54 { pattern: '?multiple-respond-with', fn: handleMultipleRespondWith }
58 for (var i = 0; i < handlers.length; ++i) {
59 if (url.indexOf(handlers[i].pattern) != -1) {
60 handler = handlers[i];
68 event.respondWith(new Response(new Blob(
69 ['Service Worker got an unexpected request: ' + url])));