javascript - 前端预览图片,用Base64和objectURL哪个更好
PHP中文网
PHP中文网 2017-04-11 12:13:34
[JavaScript讨论组]

我现在有10张图片,平均1.5mb 大小,我现在用input file一次性选中它们,并且使用img标签显示出来。

我是把它们弄成base64好呢?还是用ObjectURL好?(运行环境仅限于Chrome最新版,不考虑其他因素)

后续我还需要把这10张图片打包成zip下载下来(使用jszip插件),整个过程完全前端操作不与后台交互。

这是我的测试代码

input.onchange = function(e) {
    [...this.files].map(file => {
        const img = new Image();

        // 方案1 ObjectURL
        img.src = window.URL.createObjectURL(new Blob([file], {type: file.type}));
        document.body.appendChild(img);

        // 方案2 Base64
        const reader = new FileReader();
        reader.onload = function(e) {
            img.src = e.target.result;
            document.body.appendChild(img);
        }
        reader.readAsDataURL(file);
    });
}

这是我简单测试几次后,取了一个感觉像平均值的结果(左边方案1,右边方案2),看样子应该是ObjectURL的方案更好些?但如果考虑上我后边所说的需求呢?或者说我把图片的数量加到100张?另外渲染和绘制工作base64要好于ObjectURL这个又要怎么理解?

PHP中文网
PHP中文网

认证高级PHP讲师

全部回复(1)
PHP中文网

建议用dataURL

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号