2022项目实训“异步分布式联邦学习”第五周报告

本周工作主要围绕Axios和WebSocket展开,对比了两者在前端通讯中的优缺点。Axios作为基于promise的HTTP库,简化了Ajax的使用,但HTTP特性导致在需要实时通讯时效率低下。相比之下,WebSocket构建了双向通信通道,适用于异步分布式联邦学习项目中,减少资源浪费。下周计划将通讯方法从Axios切换到WebSocket,并编写相关API文档。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、本周工作进度

我在本周的工作进度主要集中于两个技术要点——即Axios和WebSocket。这两种技术方法有着本质上的不同,因而具体实现出来之后的效果也有所不同,下面将会分别说明。

1.Axios(Ajax封装)

首先要谈的内容是Axios,Axios是一个基于 promise 的 HTTP 库,是目前前端最流行的ajax请求库。Axios的优势在于,相比传统的Ajax本身是针对MVC的编程,Axios更加符合现在前端MVVM的浪潮。而且Axios十分灵活,在浏览器端使用XMLHttpRequest对象发送ajax请求,在node环境则使用http对象发送ajax请求。

此外,在我看来,Axios的使用比起Ajax来说更加便捷。Ajax在使用时尚且需要定义出success等处理不同的后端反馈信息方法来进行定制化的通讯处理,而Axios可以只使用一个.then函数来处理所有的通讯结果,其内容根据后续反馈的response的具体内容来判断,可以使用更简易的if结构来直接处理,逻辑也更为清晰。而且Ajax在使用时还需要JQuery等库,需要调用$符号,而这个符号很容在不同的环境出现调用问题。

不过,Axios也并不是完全完美的,由于其HTTP的基本特性,很多问题也会暴露出来,我会在接下来的WebSocket部分具体说明并比较。

2.WebSocket

WebSocket是我们小组在参考了网上的一些项目之后发现的另一种前后端通讯技术,其原理与Axios(即Ajax)最大的不同在于,Ajax是基于HTTP协议实现的异步通信方式,本质还是通过三次握手然后建立连接,且该连接是单向的。

在这基础上,如果上传模型到聚合端服务器之后,聚合端联邦学习算法认定当前参与聚合的用户太少不予聚合,那么这个模型迭代训练就会少一步聚合过程,其变化就会变得比预期更快。这种情况下,如果继续选择使用Ajax技术来实现前后端的通信,那么就意味着,如果我们需要同步模型的每一轮迭代训练过程中的变化,那么Axios将会占用大量的资源,且会浪费大量的时间在握手连接上。

而WebSocket成功地解决了上述弊病。WebSocket并不是基于HTTP实现的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值