javascript - 快速检查大文件是否存在 javascript

标签 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
    }
}

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

最佳答案

尝试 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);
    }
}

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

关于javascript - 快速检查大文件是否存在 javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35479156/

相关文章:

javascript - Grails:模态 div 内的 g:uploadForm 抑制提交

javascript - 构建一个 JavaScript 库,为什么要这样使用 IIFE?

python - Numpy:高级索引的转置结果

python - 如何确定一个 Python 函数是否是另一个函数的别名?

python - Python 中的输出文件重定向

c - For循环创建顺序名称txt文件

javascript - 如何使 carouFredSel 自动播放和同步?

javascript - 受限制、可取消的异步函数

javascript - 为什么对象引用相等性没有比字符串相等性快得多?

c - 如何在 C 中编写线程安全、高效、无锁的内存分配器?