成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

createObjectURL 這個 API 好用的離譜,我舉幾個場景你們就懂了

開發 前端
隨著我用 URL.createObjectURL 這個 API 越來越多次,越發感覺真的是一個很好用的方法,列舉一下我在項目中用到它的場景吧。

隨著我用 URL.createObjectURL 這個 API 越來越多次,越發感覺真的是一個很好用的方法,列舉一下我在項目中用到它的場景吧!

圖片預覽

以前我們想要預覽圖片,只能是上傳圖片到后端后,獲取到url然后賦予給img標簽,才能得到回顯預覽,但是有了URL.createObjectURL就不需要這么麻煩了,直接可以在前端就達到預覽的效果~

<body>
  <input type="file" id="fileInput">
  <img id="preview" src="" alt="Preview">
  <script>
    const fileInput = document.getElementById('fileInput');
    fileInput.addEventListener('change', (event) => {
      const file = event.target.files[0];
      const fileUrl = URL.createObjectURL(file);
      const previewElement = document.getElementById('preview');
      previewElement.src = fileUrl;
    });
  </script>
</body>

音視頻流傳輸

舉個例子,我們通過MediaStream 去不斷推流,達到了視頻顯示的效果,有了URL.createObjectURL我們并不需要真的有一個url賦予video標簽,去讓視頻顯示出來,只需要使用URL.createObjectURL去構造一個臨時的url即可~非常方便~

<body>
  <video id="videoElement" autoplay playsinline></video>

  <script>
    const videoElement = document.getElementById('videoElement');

    navigator.mediaDevices.getUserMedia({ video: true, audio: true })
      .then((stream) => {
        videoElement.srcObject = stream;
      })
      .catch((error) => {
        console.error('Error accessing webcam:', error);
      });
  </script>

</body>

結合 Blob

URL.createObjectURL結合Blob也可以做很多方便開發的事情~

WebWorker

我們知道,想要用 WebWorker 的話,是要先創建一個文件,然后在里面寫代碼,然后去與這個文件運行的代碼進行通信,有了URL.createObjectURL就不需要新建文件了,比如下面這個解決excel耗時過長的場景,可以看到,我們傳給WebWorker的不是一個真的文件路徑,而是一個臨時的路徑~

const handleImport = (ev: Event) => {
  const file = (ev.target as HTMLInputElement).files![0];
  const worker = new Worker(
    URL.createObjectURL(
      new Blob([
        `
        importScripts('https://cdnjs.cloudflare.com/ajax/libs/xlsx/0.16.4/xlsx.full.min.js');
        onmessage = function(e) {
          const fileData = e.data;
          const workbook = XLSX.read(fileData, { type: 'array' });
          const sheetName = workbook.SheetNames[0];
          const sheet = workbook.Sheets[sheetName];
          const data = XLSX.utils.sheet_to_json(sheet, { header: 1 });
          postMessage(data);
        };
        `,
      ]),
    ),
  );

  // 使用FileReader讀取文件內容
  const reader = new FileReader();

  reader.onload = function (e: any) {
    const data = new Uint8Array(e.target.result);
    worker.postMessage(data);
  };

  // 讀取文件
  reader.readAsArrayBuffer(file);

  // 監聽Web Worker返回的消息
  worker.onmessage = function (e) {
    console.log('解析完成', e.data);
    worker.terminate(); // 當任務完成后,終止Web Worker
  };
};

下載文件

同樣也可以應用在下載文件上,下載文件其實就是有一個url賦予到a標簽上,然后點擊a標簽就能下載了,我們也可以用URL.createObjectURL去生成一個臨時url

// 創建文件 Blob
const blob = new Blob([/* 文件數據 */], { type: 'application/pdf' });

// 創建下載鏈接
const downloadUrl = URL.createObjectURL(blob);
const downloadLink = document.createElement('a');
downloadLink.href = downloadUrl;
downloadLink.download = 'document.pdf';
downloadLink.textContent = 'Download PDF';
document.body.appendChild(downloadLink);
責任編輯:趙寧寧 來源: 前端之神
相關推薦

2022-07-19 10:02:49

Vueuse文檔

2025-04-17 04:22:00

Log插件日志管理

2020-05-15 12:23:38

人工智能AI

2018-09-10 09:18:30

程序員領導加班

2018-03-05 11:29:17

云計算云服務服務器

2021-09-30 18:22:46

VSCode插件API

2013-08-26 09:31:47

技術面試

2022-07-27 22:59:53

Node.jsNest

2020-04-27 07:28:00

Java反射動態代理

2021-12-16 08:27:54

Vue3 插件Vue應用

2021-10-08 15:55:52

Python模塊開發

2022-07-08 10:09:47

SPLSQL數據庫

2022-04-28 23:08:40

Windows 10微軟功能

2014-08-22 13:27:59

物聯網

2014-11-13 09:21:23

TCP

2020-10-25 08:45:38

IPv6網絡協議網絡

2025-04-27 10:14:57

2021-06-08 06:46:48

設計模式創建型

2019-08-01 11:04:10

Linux磁盤I

2023-11-01 07:01:07

自動化測試自動測試工具
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 成人精品视频免费 | 一区二区三区在线播放 | 欧美日韩亚洲国产 | 色姑娘综合网 | 精品国产欧美一区二区三区成人 | 亚州精品天堂中文字幕 | 日本电影韩国电影免费观看 | 在线欧美一区 | 国产成人精品久久二区二区91 | 免费一级淫片aaa片毛片a级 | 国产精品不卡 | 欧美电影在线观看网站 | 午夜精品久久久久久久久久久久久 | 国产黄色在线观看 | 超级碰在线 | 五月婷六月丁香 | 亚洲午夜精品一区二区三区他趣 | 男女视频在线免费观看 | 欧美v日韩v | 日日摸日日碰夜夜爽2015电影 | 日韩电影免费观看中文字幕 | 北条麻妃视频在线观看 | 国产三区四区 | 国产91 在线播放 | 91在线观 | 国产精品久久久久久模特 | 久久精品国产久精国产 | 久久精品在线免费视频 | 精品国产乱码久久久久久影片 | 日韩一二三 | 91久久综合 | 亚洲永久精品国产 | 欧美精品一区二区三区四区五区 | 国产日韩欧美 | av乱码| 亚洲国产精品久久久久 | 天堂网中文 | 天天草天天干 | 男女羞羞视频在线 | 国产乱码久久久久久 | 精品九九在线 |