js排序后的状态如何在后端保存
来源:互联网 发布:python循环读取文件 编辑:程序博客网 时间:2024/05/22 15:46
排序后的状态如何在后端保存
这里只是介绍下常规的存储解决方案.很多前端都支持排序,如可拖动的,如排序的表格等.前端有很多组件如Jquery插件等,这里不介绍怎么使用了.
如上图,通常来说数据结构为:
[ {id:1 ,name:"task1" }, {id:2 ,name:"task2" }, {id:3 ,name:"task3" },]
(交换1和3)排序以后可能变为:
[ {id:3 ,name:"task3" }, {id:2 ,name:"task2" }, {id:1 ,name:"task1" },]
注:(交换1和3需要拖动2次哦)
这里分2种情况,
第1种是直接保存所有排序结果
第2种是分步保存排序结果
方案一: 一次性保存排序结果
适合小表.
假设后端数据库原先是这样保存的:
添加一个字段就可以实现有序态
Order字段需要前端js自动处理好发送到端.
后果: 这样做的话,每次排序后端都要改所有行! 没错,所有相关行,
如果是大表,如有几千行的数据肯定不应该这样做排序.
方案二:分步保存排序结果
适合:需要手动排序表
可拖动的列表最好使用分步保存排序.
这需要在后端加2个字段
每次拖动都把拖动的一行结果发给后端
方案三:大表的排序保存
大表的排序应该单独加一个排序状态表.这适合表格排序后保存状态.
这里指定排序类型的ID
前端每次把排序的结果发送给后端就O了.
很显然这不适合超大表.
对比
排序状态保存的方案还有很多,多注意跟前后端耦合.不管什么方案前后端新增的工作量都很大.
分步保存对后端最友好,后端压力最小(多用户操作)
小表一次性保存对前后端都友好(主要是取数据后分析数据方便,不适合多用户)
大表一次性保存对前后端都不友好,因为要解析”3,2,1”这类字符串.
如果不是滋滋必较用大表方案就行了.
有现成的框架么?
0 0
- js排序后的状态如何在后端保存
- 在view中如何保存自定义view的状态
- 如何保存Activity的状态
- Activity状态变化后状态不能保存的问题
- c#如何保存树的展开状态
- Android, 如何保存Fragment的状态
- from(file)用于提交后返回后端执行后的状态(这里是图片的例子)
- 如何在griddata分页保存每页先前checkbox的选中状态?
- rh436 - rhel6.2如何在host关闭时不保存kvm虚拟机的状态
- 如何保存窗口状态
- ViewPager fragment 保存状态,内部使用listview 并进行了操作,保存操作后的状态
- 动画结束后保存状态
- struts2如何保存上传后的文件
- listview gridview item被选中后状态的保存
- 在DataGridView中修改后的数据如何保存到数据库
- EJS模板中,js如何获取后端传来的数据
- jquery中的sortable排序之后的保存状态的解决方法
- 在命令行状态下,如何运行编译后的.class 文件???
- BZOJ 4399: 魔法少女LJJ
- Android中的dex、apk、ClassLoader详解
- multiselect选项框
- 软考知识点
- Pandas 通用方法
- js排序后的状态如何在后端保存
- 对于LayoutInflater.from(parent.getContext()).inflate()方法的笔记
- 正确使用第三方iOS代码
- java数组--冒泡排序
- 安卓高仿IOS按钮
- 软件设计原则(七)合成/聚合复用原则(Composite/Aggregate Reuse Principle,CARP)
- 一分钟了解JAVA代理模式
- 用sqlplus和plsql无法连接Oracle数据库系统问题
- CoreGraphics,QuartzCore, CoreAnimation