javascript - web页面实现数据筛选、排序等功能的思路
后端从数据库读取了一个结果集,保存在数组中,然后显示在前端表格中,但是需要根据用户的筛选、排序等操作对表格进行动态展示。
我能想到的思路是:
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
简单排序的例子:http://mottie.github.io/tablesorter/
简单筛选的例子:http://mottie.github.io/tablesorter/docs/example-child-rows-filtered.html
全部的例子:http://mottie.github.io/tablesorter/docs/index.html#Demo