/** append by ecs */ // 以下为学生端添加内容 console.log("sw printing before chrome58StopHere"); var stop = true; // (function() { // try { // Function("var a = {...{}};"); // stop = false; // } catch (error) { // console.log(error); // } // })(); console.log("sw printing after chrome58StopHere ", stop); // chrome 58 这个会报错,所以不执行 // if (!stop) { // self.addEventListener("fetch", event => { // // Prevent the default, and handle the request ourselves. // if ( // event.request.url.startsWith( // "https://ecs-test-static.qmth.com.cn/comm-ques-bank/dev/audio" // ) || // event.request.url.startsWith( // "https://ecs-static.qmth.com.cn/comm-ques-bank/prod/audio/" // ) // ) { // event.respondWith( // (async function() { // // console.log("fetch intercepted"); // // Try to get the response from a cache. // const cachedResponse = await caches.match(event.request); // // Return it if we found one. // if (cachedResponse) { // console.log("cache res", event.request.url); // return cachedResponse; // } // console.log("fetch audio intercept, try to load all"); // const res = await fetch(event.request.url); // const reader = res.body.getReader(); // // Step 2: get total length // const contentLength = +res.headers.get("Content-Length"); // if (contentLength === 0) { // return fetch(event.request); // } // // Step 3: read the data // let receivedLength = 0; // received that many bytes at the moment // let chunks = []; // array of received binary chunks (comprises the body) // // eslint-disable-next-line // while (true) { // const { done, value } = await reader.read(); // if (done) { // break; // } // chunks.push(value); // receivedLength += value.length; // // console.log(`Received ${receivedLength} of ${contentLength}`); // self.clients.matchAll().then(function(clients) { // if (clients && clients.length) { // clients.forEach(function(client) { // client.postMessage([ // event.request.url, // receivedLength, // contentLength, // ]); // }); // } // }); // } // // Step 4: concatenate chunks into single Uint8Array // // let chunksAll = new Uint8Array(receivedLength); // (4.1) // // let position = 0; // // for (let chunk of chunks) { // // chunksAll.set(chunk, position); // (4.2) // // position += chunk.length; // // } // // const blob = await res.clone().blob(); // // const blob = new Blob([chunksAll.buffer]); // const blob = new Blob(chunks); // const responseFinal = new Response(blob, { // headers: { // "Content-Type": "audio/mp3", // "Content-Length": contentLength, // }, // }); // caches.open("audios").then(function(cache) { // cache.put(event.request, responseFinal.clone()); // }); // return responseFinal.clone(); // // If we didn't find a match in the cache, use the network. // // return fetch(event.request); // })() // ); // } // }); // } console.log("sw printing end");