我有一个网页,我需要检查文件是否存在,它们的文件大小和文件类型各不相同,我有以下代码可用,但对于较大的文件,它可能需要很长时间(其中一个需要30秒)返回结果。我想知道的是有一种更好的方式,如果它是一次谈话会是这样的:
“你有档案吗?”
“是的。我在这里,上周日我......”
“你,你,你在那里嘘”
function fileExists(url) {
if(url){
var req = new XMLHttpRequest()
req.open('GET', url, false)
req.send()
return req.status==200
} else {
return false
}
}
所以任何人都知道一种更好的方法,它不需要加载尽可能多的文件,或者一旦知道文件就在那里就可以取消加载。
答案 0 :(得分:1)
尝试HEAD
请求:
function fileExists(url, callback) {
if(url){
var req = new XMLHttpRequest();
req.addEventListener('readystatechange', function(e) {
if (this.readyState === 4) {
callback(this.status !== 404);
}
});
req.open('HEAD', url, false);
} else {
callback(false);
}
}
但你必须使用回调函数,因为它是异步请求