我们项目中的奇怪错误。我没有机会在网络面板中检查请求,但是我有下面的代码,该代码从我们的服务器中获取一个js / css文件,并将其设置为localstorage,以实现我们期望的更快的页面加载。 / p>
因此,有时我们用户的浏览器(所有的Firefox,大约64个,大约48个)无法完全打开页面,显然缺少一些CSS / JS文件。当我检查localStorage时,某些文件(实际上是某些两个或三个文件)存储着空的“内容”,但存储着正确的“版本”。
function _load(version, url, type) {
return new Promise(function(resolve) {
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
if (xhr.readyState === 4)
if (xhr.status === 200) {
console.log(type + ' loaded: ' + url + '@' + version);
try {
_store.set(CACHE_PREFIX+url, { // just a wrapper of localStorage.setItem()
content: xhr.responseText,
version: version
});
} catch (error) {
console.warn(error);
}
resolve()
} else {
console.warn('error loading '+type+': '+url+'@'+version);
resolve()
}
}
xhr.open("GET", url+'?'+version, true);
xhr.send();
})
}
因此,即使readyState === 4和status === 200,显然xhr.reponseText为空,并且仅在具有某些请求的Firefox上发生,为什么会发生?