Duk*_*gal 5 javascript xmlhttprequest xmlhttprequest-level2
我使用下面的代码在 JavaScript 中加载两个 blob 文件。
我想比较一下它们是否完全相同。
(blob1 === blob2) 返回 false,即使每个 blob 的报告大小为 574 字节。我究竟做错了什么?
getHTTPAsBlob(url, callback) {
let cacheBust = Math.random().toString()
url = url + '?&cachebust=' + cacheBust
let xhr = new XMLHttpRequest();
xhr.open('GET', url, true);
xhr.responseType = 'blob';
xhr.onload = function (e) {
if (xhr.status == 200) {
// get binary data as a response
let fileData = this.response;
let contentType = xhr.getResponseHeader("content-type")
var reader = new FileReader()
reader.onload = (e) => {
console.log(reader.result)
console.log(fileData)
callback(null, {
Body: reader.result,
Blob: fileData,
ContentType: contentType,
Etag: null,
LastModified: null,
})
}
reader.readAsText(fileData)
} else {
callback(xhr)
}
}
xhr.send();
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,这是比较两个引用可比较内容的完全独立指针的情况。要了解这如何适用于更简单的内容,请在 javascript 控制台中尝试以下操作:
new Number(5) == new Number(5)
返回假。令人沮丧的是,5 作为一个对象并不等于值为 5 的对象。但至少这将 Blob 置于上下文中。
我遇到了同样的问题,并同意之前的建议,即 FileReader 是唯一的选择。
归档时间: |
|
查看次数: |
6055 次 |
最近记录: |