Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[zh-cn]: update the translation of URL createObjectURL() static method #20673

Merged
merged 3 commits into from
May 20, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 21 additions & 17 deletions files/zh-cn/web/api/url/createobjecturl_static/index.md
Original file line number Diff line number Diff line change
@@ -1,48 +1,52 @@
---
title: URL.createObjectURL()
title: URLcreateObjectURL() 静态方法
slug: Web/API/URL/createObjectURL_static
l10n:
sourceCommit: 367b982b93c07f7f99e7bb768a6bf326fa5198e6
---

{{ApiRef("URL")}}
{{APIRef("File API")}} {{AvailableInWorkers("window_and_worker_except_service")}}

**`URL.createObjectURL()`** 静态方法会创建一个 {{domxref("DOMString")}},其中包含一个表示参数中给出的对象的 URL。这个 URL 的生命周期和创建它的窗口中的 {{domxref("document")}} 绑定。这个新的 URL 对象表示指定的 {{domxref("File")}} 对象或 {{domxref("Blob")}} 对象
{{domxref("URL")}} 接口的 **`createObjectURL()`** 静态方法创建一个用于表示参数中给出的对象的 URL 的字符串

{{AvailableInWorkers}}
URL 的生命周期与其创建时所在窗口的 {{domxref("document")}} 绑定在一起。新对象 URL 代表指定的 {{domxref("File")}} 对象或 {{domxref("Blob")}} 对象。

> **备注:** 此特性在 [Service Worker](/zh-CN/docs/Web/API/Service_Worker_API) 中不可用,因为它有可能导致内存泄漏。
要释放对象 URL,请调用 {{domxref("URL.revokeObjectURL_static", "revokeObjectURL()")}}。

> **备注:** 此特性在 [Service Worker](/zh-CN/docs/Web/API/Service_Worker_API) 中*不*可用,因为它有可能导致内存泄漏。

## 语法

```js
objectURL = URL.createObjectURL(object);
```js-nolint
URL.createObjectURL(object)
```

### 参数

- `object`
- : 用于创建 URL 的 {{domxref("File")}} 对象、{{domxref("Blob")}} 对象或者 {{domxref("MediaSource")}} 对象。
- : 用于创建 URL 的 {{domxref("File")}}、{{domxref("Blob")}} {{domxref("MediaSource")}} 对象。

### 返回值

一个{{domxref("DOMString")}}包含了一个对象 URL,该 URL 可用于指定源 `object`的内容。
一个包含对象 URL 的字符串,可用于引用指定源 `object` 的内容。

## 示例

查看[使用对象 URL 显示图片](/zh-CN/docs/Using_files_from_web_applications#Example.3A_Using_object_URLs_to_display_images).
参见[使用对象 URL 来显示图片](/zh-CN/docs/Web/API/File_API/Using_files_from_web_applications#示例:使用对象_url_来显示图片)。

## 附注
## 使用说明

### 内存管理

在每次调用 `createObjectURL()` 方法时,都会创建一个新的 URL 对象,即使你已经用相同的对象作为参数创建过。当不再需要这些 URL 对象时,每个对象必须通过调用 {{domxref("URL.revokeObjectURL()")}} 方法来释放
每次调用 `createObjectURL()` 时,都会创建一个新的对象 URL,即使已经为同一个对象创建了一个 URL。当不再需要这些对象时,必须通过调用 {{domxref("URL.revokeObjectURL_static", "URL.revokeObjectURL()")}} 来释放它们

浏览器在 document 卸载的时候,会自动释放它们,但是为了获得最佳性能和内存使用状况,你应该在安全的时机主动释放掉它们
浏览器会在卸载文档时自动释放对象 URL;然而,为了优化性能和内存使用,如果在安全时间内可以明确卸载,就应该卸载

### 使用相对 URLs 作为媒体流
### 使用对象 URL 进行媒体流处理

在旧版本的媒体资源规范中,添加流作为{{HTMLElement("video")}}元素需要创建一个关于 {{domxref("MediaStream")}}的对象 URL。现已没必要这样做了,浏览器已经移除了该操作的支持
在较早版本的媒体源规范中,需要为 {{domxref("MediaStream")}} 创建一个对象 URL 才能将流附加到 {{HTMLElement("video")}} 元素。这已不再必要,浏览器正在逐步取消对此的支持

> **警告:** 如果你为了去添加流作为媒体元素,而仍旧使用着依赖{{domxref("URL.createObjectURL", "createObjectURL()")}} 的代码,你需要更新的代码,仅需要设定{{domxref("HTMLMediaElement.srcObject", "srcObject")}} `MediaStream` 即可
> **警告:** 如果你还有依赖于 {{domxref("URL.createObjectURL_static", "createObjectURL()")}} 将流附加到媒体元素的代码,你需要更新代码并将 {{domxref("HTMLMediaElement.srcObject", "srcObject")}} 设置为 `MediaStream`。

## 规范

Expand All @@ -55,7 +59,7 @@ objectURL = URL.createObjectURL(object);
## 参见

- [在 web 应用程序中使用文件](/zh-CN/docs/Web/API/File_API/Using_files_from_web_applications)
- [使用对象 URL 显示图像](/zh-CN/docs/Web/API/File_API/Using_files_from_web_applications#示例:使用对象_url_来显示图片)
- [使用对象 URL 来显示图片](/zh-CN/docs/Web/API/File_API/Using_files_from_web_applications#示例:使用对象_url_来显示图片)
- {{domxref("URL.revokeObjectURL_static", "URL.revokeObjectURL()")}}
- {{domxref("HTMLMediaElement.srcObject")}}
- {{domxref("FileReader.readAsDataURL()")}}