[前后端基础]图片传输与异步

前后端之间传递照片

在前后端之间传递照片,通常可以采用以下几种方式:

  1. Base64 编码传输:将图片转换为 Base64 编码的字符串,然后通过接口传递到后端,后端再将 Base64 字符串转换回图片格式。这种方式简单易行,但会增加数据量,并且传输的内容会被增大约 33%。

  2. 文件上传:前端通过表单或其他方式将图片文件上传到后端服务器,后端接收到文件后保存在服务器上,并返回文件的地址或标识给前端,前端可以通过这个地址或标识来获取图片。

  3. 使用 Blob 对象:前端可以将图片封装为 Blob 对象,并使用 FormData 将 Blob 对象传递到后端。后端可以通过接收 FormData 来获取图片数据。

  4. 使用流传输:前端可以将图片数据通过流的方式传输到后端,后端接收到流后进行处理。这种方式适用于大文件传输,可以减少内存占用。

  5. WebSocket 传输:使用 WebSocket 在前后端之间建立持久连接,前端将图片数据通过 WebSocket 传输到后端。这种方式适用于实时性要求较高的场景

前端怎样使用后端传来的base64编码图片

前端可以通过以下步骤使用后端传来的 Base64 编码图片:

  1. 接收 Base64 编码图片:后端将 Base64 编码图片作为响应数据发送给前端。

  2. 创建图片元素:前端可以使用 JavaScript 创建一个图片元素,或者直接将 Base64 编码图片赋值给已存在的图片元素的 src 属性。

  3. 设置图片源:将接收到的 Base64 编码图片作为图片元素的 src 属性值

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Display Base64 Image</title>
</head>
<body>
    <img id="image" alt="Base64 Image">
    
    <script>
        // 假设后端传来的 Base64 编码图片存储在变量 base64Image 中
        const base64Image = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA...";
        
        // 创建图片元素
        const imgElement = document.getElementById("image");

        // 设置图片源
        imgElement.src = base64Image;
    </script>
</body>
</html>

在这个示例中,后端传来的 Base64 编码图片存储在变量 base64Image 中,并且使用 JavaScript 获取到了 id 为 "image" 的图片元素,并将 base64Image 赋值给了该图片元素的 src 属性,从而显示 Base64 编码的图片。

javascript遍历数组,每隔一段时间按顺序打印数组中的元素

const array = [1, 2, 3, 4, 5];
let index = 0;

const printElement = () => {
  // 打印当前索引对应的数组元素
  console.log(array[index]);
  
  // 增加索引,以便下次打印下一个元素
  index++;
  
  // 如果索引超出数组范围,则重置索引为0,重新开始遍历
  if (index >= array.length) {
    index = 0;
  }
};

// 每隔一段时间调用 printElement 函数打印数组元素
const intervalId = setInterval(printElement, 1000); // 每隔一秒打印一个元素

// 可以根据需要在一定时间后停止打印
setTimeout(() => {
  clearInterval(intervalId); // 停止打印
}, array.length * 1000); // 停止时间为数组长度乘以间隔时间

这段代码首先定义了一个包含数字的数组 array,然后通过 setInterval 函数每隔一段时间调用 printElement 函数来打印数组中的元素。在 printElement 函数中,首先打印当前索引对应的数组元素,然后增加索引以便下次打印下一个元素。当索引超出数组范围时,将索引重置为0,从头开始重新遍历数组。最后,通过 setTimeout 函数在一定时间后停止打印,这个时间为数组长度乘以打印间隔时间。

相关推荐
清灵xmf4 分钟前
TypeScript 类型进阶指南
javascript·typescript·泛型·t·infer
小白学大数据10 分钟前
JavaScript重定向对网络爬虫的影响及处理
开发语言·javascript·数据库·爬虫
qq_3901617719 分钟前
防抖函数--应用场景及示例
前端·javascript
334554321 小时前
element动态表头合并表格
开发语言·javascript·ecmascript
John.liu_Test1 小时前
js下载excel示例demo
前端·javascript·excel
Yaml41 小时前
智能化健身房管理:Spring Boot与Vue的创新解决方案
前端·spring boot·后端·mysql·vue·健身房管理
PleaSure乐事1 小时前
【React.js】AntDesignPro左侧菜单栏栏目名称不显示的解决方案
前端·javascript·react.js·前端框架·webstorm·antdesignpro
哟哟耶耶1 小时前
js-将JavaScript对象或值转换为JSON字符串 JSON.stringify(this.SelectDataListCourse)
前端·javascript·json
getaxiosluo1 小时前
react jsx基本语法,脚手架,父子传参,refs等详解
前端·vue.js·react.js·前端框架·hook·jsx
理想不理想v1 小时前
vue种ref跟reactive的区别?
前端·javascript·vue.js·webpack·前端框架·node.js·ecmascript