mint-new-worker.py (727B)
1 import random 2 3 import time 4 5 body = u''' 6 onactivate = (e) => e.waitUntil(clients.claim()); 7 var resolve_wait_until; 8 var wait_until = new Promise(resolve => { 9 resolve_wait_until = resolve; 10 }); 11 onmessage = (e) => { 12 if (e.data == 'wait') 13 e.waitUntil(wait_until); 14 if (e.data == 'go') 15 resolve_wait_until(); 16 };''' 17 18 def main(request, response): 19 headers = [(b'Cache-Control', b'no-cache, must-revalidate'), 20 (b'Pragma', b'no-cache'), 21 (b'Content-Type', b'application/javascript')] 22 23 skipWaiting = u'' 24 if b'skip-waiting' in request.GET: 25 skipWaiting = u'skipWaiting();' 26 27 return headers, u'/* %s %s */ %s %s' % (time.time(), random.random(), skipWaiting, body)