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

前后端之间传递照片

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

  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 函数在一定时间后停止打印,这个时间为数组长度乘以打印间隔时间。

相关推荐
旧林8438 分钟前
第八章 利用CSS制作导航菜单
前端·css
yngsqq20 分钟前
c#使用高版本8.0步骤
java·前端·c#
Myli_ing1 小时前
考研倒计时-配色+1
前端·javascript·考研
余道各努力,千里自同风1 小时前
前端 vue 如何区分开发环境
前端·javascript·vue.js
PandaCave1 小时前
vue工程运行、构建、引用环境参数学习记录
javascript·vue.js·学习
软件小伟1 小时前
Vue3+element-plus 实现中英文切换(Vue-i18n组件的使用)
前端·javascript·vue.js
醉の虾1 小时前
Vue3 使用v-for 渲染列表数据后更新
前端·javascript·vue.js
张小小大智慧2 小时前
TypeScript 的发展与基本语法
前端·javascript·typescript
hummhumm2 小时前
第 22 章 - Go语言 测试与基准测试
java·大数据·开发语言·前端·python·golang·log4j
asleep7012 小时前
第8章利用CSS制作导航菜单
前端·css