检查javascript是否存在大尺寸文件

时间:2016-02-18 10:41:36

标签: javascript performance file web

我有一个网页,我需要检查文件是否存在,它们的文件大小和文件类型各不相同,我有以下代码可用,但对于较大的文件,它可能需要很长时间(其中一个需要30秒)返回结果。我想知道的是有一种更好的方式,如果它是一次谈话会是这样的:

“你有档案吗?”

“是的。我在这里,上周日我......”

“你,你,你在那里嘘”

function fileExists(url) { 
    if(url){
        var req = new XMLHttpRequest()
        req.open('GET', url, false)
        req.send()
        return req.status==200
    } else {
        return false
    }
}

所以任何人都知道一种更好的方法,它不需要加载尽可能多的文件,或者一旦知道文件就在那里就可以取消加载。

1 个答案:

答案 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);
    }
}

但你必须使用回调函数,因为它是异步请求