欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

javascript - web页面实现数据筛选、排序等功能的思路

程序员文章站 2022-04-20 19:35:11
...

后端从数据库读取了一个结果集,保存在数组中,然后显示在前端表格中,但是需要根据用户的筛选、排序等操作对表格进行动态展示。

我能想到的思路是:

1:在后端从数据库读取的数据传递到javascript数组中,用javascript根据用户的选择操作数组(在前端操作数据)
2:在html中嵌入php代码,用php操作数组(在后端操作数据)
3:根据用户的选择每次在数据库中操作并读取所需要的数据,返回到前端页面(在数据库中操作数据)

所操作的数据不超过1000条记录
我后端语言PHP(thinkphp框架)

问:

1:希望前辈们能分析一下各个解决方法的优缺点,给一个最合适的思路!
2:如果用js,怎么将数据传递到js中?

回复内容:

后端从数据库读取了一个结果集,保存在数组中,然后显示在前端表格中,但是需要根据用户的筛选、排序等操作对表格进行动态展示。

我能想到的思路是:

1:在后端从数据库读取的数据传递到javascript数组中,用javascript根据用户的选择操作数组(在前端操作数据)
2:在html中嵌入php代码,用php操作数组(在后端操作数据)
3:根据用户的选择每次在数据库中操作并读取所需要的数据,返回到前端页面(在数据库中操作数据)

所操作的数据不超过1000条记录
我后端语言PHP(thinkphp框架)

问:

1:希望前辈们能分析一下各个解决方法的优缺点,给一个最合适的思路!
2:如果用js,怎么将数据传递到js中?

第一种方案:
适合数据量小,页面响应快的场景
优点:
1、只需要从服务器获取一次数据,对服务器压力小
2、用户所有操作都在前端进行,无需再与服务器通讯,体验比较好
缺点:
1、js操作数据然后再拼接html,或者模板引擎,或者MVVM相对来说会比后端直接生成html要麻烦一些,不过现在这个应该不算缺点吧

第二种方案:
第二种方案也适合数据量小点的场景,它和第一种方案的区别在于:
1、用户每次都要从服务器通讯
2、生成html相对开发者来说比较方便
两种方案相比,建议采用第一种

第三种方案:
适合数据量比较大的时候,分批从数据库获取。
最终在前台展示也无非就是php生成html或者js生成html

数据传递到js,两种方式:
1、页面生成时,顺便把数据给传进去
2、通过ajax去调用

如果结果集在千行以内。推荐 https://github.com/Mottie/tablesorter

  1. 简单排序的例子:http://mottie.github.io/tablesorter/

  2. 简单筛选的例子:http://mottie.github.io/tablesorter/docs/example-child-rows-filtered.html

  3. 全部的例子:http://mottie.github.io/tablesorter/docs/index.html#Demo