前端与后端进行差异传输的问题总结

去年实践了一个差异传输的案例,做过一些修改,方案大致是这样的,我在这里做一个总结,记录曾经遇到过的问题。


背景:

web前端有很多张表单需要用户填写、修改,然后保存到数据库中。由于表单的数据量比较大,前端web数据以Json串压缩的方式传输数据到后端,这已经是已知数据传输所能做到的极限了。问题是在新增、修改数据的时候,前后端的数据交换依然很大,从10k到1M的级别,这时候就需要新增一种机制来解决这个问题,否则速度就太慢了。

解决方案:

采用差异传输的方式。

原理:

每次传入、传出的数据都做一个比较,如果数据相同,则去掉这些数据,只留下关键字和不相同的字段。

这里面牵扯到几个要点:

1需要写一个传入、传出数据的公共方法。传入传出参数需要定义成数组、List、map等形式,里面的属性必须是可变动的。

2关键字的选择问题,一般留下主键、时间戳、操作状态(例如新增、修改、删除状态)等字段,其他字段就可以删减了。

3对象的创建构造问题、深拷贝克隆问题、操作状态判断问题。比如传入传出对象的基类要一致,基类继承接口,差异比较算法需要设置成泛型。这是一个比较庞大的架构。如果一开始设计不好,就很难统一起来。假如这个架构做好了,今后再出现的每一种例外情况,都需要做周密的考量,否则有可能就用不了这个差异传输机制。

4有可能前端会传入一些冗余字段到后台,后台也有可能传出一些冗余字段到前端,这些冗余字段指的是不做持久化的一些字段,比如前端计算、后端计算的字段。这里就得注意了,这些冗余字段的处理一定要在差异处理函数的前后,否则数据会丢失。

(一)新增:

前端填好数据,点击保存,这时数据传到后台保存,保存后,数据还必须同步传输到前端,比如后端生成的一些ID、时间之类的字段,两方数据做一个比对,留下关键字和必须的字段。

(二)修改:

前端需要做一个传入参数的比较,只传关键字、增量数据到后台,后台通过传入参数查询数据库,还原整个对象,然后再做验证、更新等操作,做完后再次与传入参数做比较,留下关键字、增量数据返给前端。

(三)删除:

前端传入关键字段,后端还原整个对象,然后走各种验证,验证通过后才走删除操作。




### 回答1: 用户登录的前后端接口有多种实现方式,以下是其中一种简单的实现方式: 前端接口: 1. 提供一个登录表单让用户输入用户名和密码。 2. 当用户提交表单时,前端后端发送一个POST请求,包含用户名和密码。 3. 前端等待后端的响应,如果登录成功,则跳转到用户主页;否则,提示用户登录失败。 后端接口: 1. 接收前端发送的POST请求,获取用户名和密码。 2. 验证用户名和密码是否正确,如果正确,则生成一个session ID,并将session ID存储在服务器端。 3. 返回登录结果给前端,如果登录成功,则返回session ID;否则,返回错误信息。 在这种实现方式中,前端后端之间的接口可以使用HTTP协议进行通信。前端发送的POST请求可以使用XMLHttpRequest对象发送,后端则使用Node.js或其他后端框架接收请求并返回响应。同时,为了保障用户的安全性,建议使用HTTPS协议进行加密通信。 ### 回答2: 用户登录的前后端接口是协调前端后端之间的数据传输和处理的方式。前端是用户与系统进行交互的界面,后端是处理前端请求并返回响应的服务器端。 前端接口是指前端程序与后端进行数据交互的规范。它定义了前端应该发送哪些数据,以及后端应该返回哪些数据。通常使用HTTP协议作为数据传输的基础,使用RESTful架构风格进行接口设计。前端接口可以包含用户登录的接口,用于前端发送用户的登录信息,并校验用户身份的合法性。例如,前端可以发送用户的账号和密码给后端进行验证,并根据验证结果返回响应给前端后端接口是指后端程序提供给前端的接口。它定义了前端可以通过哪些接口与后端进行数据交互。后端接口可以接收并处理前端发送的用户登录请求,并校验用户身份的合法性。如果验证成功,后端可以生成一个访问令牌(token)并返回给前端前端可以将该令牌保存下来,用于后续请求的身份验证。如果验证失败,后端需要返回相应的错误码或错误信息给前端。 用户登录前后端接口之间的数据交互是通过网络完成的。前端通过HTTP协议将用户的登录信息发送给后端后端收到请求后进行身份验证,验证结果以HTTP响应的形式返回给前端前端根据后端返回的结果进行相应的页面跳转或错误处理。通过良好设计和规范的前后端接口,可以实现用户登录的安全、高效、可靠的数据交互。 ### 回答3: 用户登录的前端后端接口是指前端后端之间进行用户身份验证和登录信息传递的接口。前端是指用户界面,一般是由HTML、CSS和JavaScript等技术开发的,用于与用户进行交互的界面。后端是指服务器端,一般使用后端编程语言(如Java、Python、PHP等)和数据库进行处理和存储数据。 前端后端之间的接口主要包括以下几个方面: 1. 用户身份验证接口:当用户在前端输入用户名和密码后,前端会将这些信息发送到后端进行验证,后端会根据存储的用户信息和密码进行验证,判断用户身份的合法性。 2. 登录信息传递接口:在用户身份验证通过后,后端会生成一个令牌(token)或会话(session),并将其返回给前端前端在后续的请求中携带该令牌或会话,作为用户的登录凭证。 3. 用户信息获取接口:一旦用户登录成功,前端可以通过接口向后端请求用户的详细信息,如用户名、头像、个人资料等,后端根据用户的登录状态进行验证,并将相应的用户信息返回给前端。 4. 用户注销接口:当用户希望注销登录时,前端会发送注销请求到后端后端会销毁用户的会话或令牌,并返回注销成功的消息给前端。 以上是用户登录的前端后端接口的一般设计,具体实现方式和细节可能因开发语言和框架的不同而有所差异
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值