在JavaScript中进行文件处理,第四部分:对象URLs
译注:原文是《JavaScript高级程序设计》的作者Nicholas Zakas写的,本翻译纯属为自己学习而做,仅供参考。原文链接:这里
学习到这里,你已经了解在传统方式中如何使用文件,你可以上传文件到服务端,可以从磁盘上读取文件,这些都是最常见的文件处理方式。但是,有一种全新的文件处理方式可以简化这些常见的任务,这就是使用对象URLs。
什么是对象URL?
对象URLs是磁盘上的文件地址。比如说,你想要将用户系统的一个图像文件显示到web页面,服务端无需要知道这个文件,所以也不需要上传它。如果你只是想要加载文件到页面,你可以像之前的帖子说的一样,获取一个File对象引用,将数据读取为一个数据URI,然后将数据URI分配到一个<img>
元素。但想一想这里面的浪费,图像已经在磁盘上存在,为什么还要将图像读取为另外一种形式呢?如果你创建一个对象URL,你可以将其分配给<img>
,这样就可以直接访问本地文件。
它如何工作?
File API[1]定义了一个全局对象叫URL,它有2个方法。第一个是createObjectURL(),接受一个File对象作为参数,返回一个对象URL,作用是告诉浏览器创建并且管理一个本地文件的URL。第二个方法是revokeObjectURL(),作用是告诉浏览器去销毁作为参数传入的URL,有效的释放内存。当然,一旦web页面被卸载了,则所有对象URLs都会被注销,当不再需要它们的时候,这是释放它们内存的一个好机会。
File API对URL对象的支持不像其他部分那么好,在我写这篇文章的时候,IE10和Firefox9+支持一个全局URL对象。Chrome支持它的webkitURL形式,Safari和Opera不支持。
例子
如果你没有读取图片文件的数据,你怎么显示这个图片呢?假设你已经提供给用户文件选择的方式,并且现在有这个文件对象的引用并赋给了一个变量file。你可以如下使用:
1 2 3 4 5 6 7 8 9 10 |
|
更多相关文章
- 使用HTML文件中的React调用.js文件中的Javascript函数
- 我在显示随机选择的对象时遇到问题
- [转]在网页中加入声音文件,并且用JavaScript对其进行播放控制
- 如何在JavaScript / jQuery中获取对象的属性?
- 【JavaScript】JavaScript的对象-对象专门语句
- 令人惊奇的JavaScript面向对象(一)
- JavaScript面向对象程序设计三——原型模式(上)
- 迭代angularjs中对象中的属性列表
- Safari / Chrome中的全局控制台对象被重置