Last active
April 13, 2022 00:56
-
-
Save qinlili23333/440042e7a4cd23e94efca30df9d9ee20 to your computer and use it in GitHub Desktop.
xhr请求热点计数
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(() => { | |
let hotspotData = {}; | |
if (localStorage.xhrHotspot) { | |
hotspotData = JSON.parse(localStorage.xhrHotspot); | |
}; | |
window.xhrHotspot = { | |
init: () => { | |
(open => { | |
XMLHttpRequest.prototype.open = function (method, url, async, user, pass) { | |
if (!(async === false)) { | |
async = true; | |
} | |
if (hotspotData[url]) { | |
hotspotData[url]++; | |
} else { | |
hotspotData[url] = 1; | |
}; | |
localStorage.xhrHotspot = JSON.stringify(hotspotData); | |
return open.call(this, method, url, async, user, pass); | |
}; | |
})(XMLHttpRequest.prototype.open); | |
console.log("XHR Hotspot Loaded!ver:1.1.0"); | |
}, | |
showXhrHotspotData: () => { | |
console.log(hotspotData); | |
}, | |
clearHotspotData: () => { | |
hotspotData = {}; | |
localStorage.xhrHotspot = JSON.stringify(hotspotData); | |
}, | |
uploadHotspotData: url => { | |
// Example POST method implementation: | |
async function postData(url = '', data = {}) { | |
// Default options are marked with * | |
const response = await fetch(url, { | |
method: 'POST', // *GET, POST, PUT, DELETE, etc. | |
mode: 'cors', // no-cors, *cors, same-origin | |
cache: 'no-cache', // *default, no-cache, reload, force-cache, only-if-cached | |
credentials: 'same-origin', // include, *same-origin, omit | |
headers: { | |
'Content-Type': 'application/json' | |
// 'Content-Type': 'application/x-www-form-urlencoded', | |
}, | |
redirect: 'follow', // manual, *follow, error | |
referrerPolicy: 'no-referrer', // no-referrer, *no-referrer-when-downgrade, origin, origin-when-cross-origin, same-origin, strict-origin, strict-origin-when-cross-origin, unsafe-url | |
body: JSON.stringify(data) // body data type must match "Content-Type" header | |
}); | |
return response.json(); // parses JSON response into native JavaScript objects | |
} | |
postData(url, hotspotData) | |
.then(data => { | |
console.log(data); // JSON data parsed by `data.json()` call | |
}); | |
} | |
} | |
})() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment