起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 4280|回复: 7

[处理中] 数据里大时,浏览器卡机/死机后果严重

[复制链接]

88

主题

284

帖子

391

积分

中级会员

Rank: 3Rank: 3

积分
391
QQ
发表于 2017-11-3 08:37:06 | 显示全部楼层 |阅读模式
本帖最后由 wto.2008 于 2017-11-3 08:39 编辑

数据量大时,浏览器卡机/死机后果严重
这是弹出对话窗里选择全部,出现严重的问题点
18.jpg

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36064
发表于 2017-11-3 08:57:59 | 显示全部楼层
1100多条数据应该分页加载选择,或者在后端处理
全选里面用两层遍历,数据量大的时候性能会有影响
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

88

主题

284

帖子

391

积分

中级会员

Rank: 3Rank: 3

积分
391
QQ
 楼主| 发表于 2017-11-3 09:09:27 | 显示全部楼层
本帖最后由 wto.2008 于 2017-11-3 09:12 编辑

四个问题点要解决:
1、当“全选”后,不应该出现浏览器无响应的现象,这样影响用户的操作;
2、只关闭当前无响应弹出窗,大约10分钟左右后,再次进来数据源区和目标数据区都有数据,这说明关闭弹出窗后程序还在运行,这样影响服务器性能;
3、当用户从数据源区选择到目标数据区后,应该数据源区被移出,不应该数据源区和目标数据区同时存在,这样影响客户端方面的性能;
4、当用户点击“全选”后,应该有一个进度条显示,表示程序正在运行,提示用户不要关闭窗口,这样避免无响应关闭后再进来里有数据的问题;
回复 支持 反对

使用道具 举报

88

主题

284

帖子

391

积分

中级会员

Rank: 3Rank: 3

积分
391
QQ
 楼主| 发表于 2017-11-3 09:16:55 | 显示全部楼层
目标数据区可以分页

数据源区可以设置分页,但不能设置分页,不可能一个去查询,在有些情况是需要全选的
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36064
发表于 2017-11-3 09:22:14 | 显示全部楼层
这个全选都是前端js操作的,跟服务端性能无关
全选的时候是        Model.prototype.addAll = function(selectData){
                selectData.each(function(p){
                        this.add(p.row);
                },this);
        };

        Model.prototype.add = function(row){
                if(row instanceof Data.Row){
                        var data = this.comp('selectData');
                        if(data.isExist(row.getID())) return;
                        var defaultValue = {};
                        $.each(data.defCols, function(col,v){
                                defaultValue[col] = row.val(col);
                        });
                        data.newData({defaultValues:[defaultValue]});
                }
        };

两层遍历,数据多的时候js中肯定会影响性能,如果要一次选择的数据多可以发一个action到后端取数据返回loadData给data

左边区域的选择后不显示,可以执行data的remove方法移除,如果不数据库中也不需要就执行deleteData方法删除并保存数据

js是单线程操作的,如果需要进度条可以用popOver在遍历之前控制popOver显示,遍历后隐藏popOver
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

88

主题

284

帖子

391

积分

中级会员

Rank: 3Rank: 3

积分
391
QQ
 楼主| 发表于 2017-11-3 09:23:38 | 显示全部楼层
数据源区如果设置分页,用户如果要全选,那就要一个一个去查,这样操作用户不接受、也没有效率
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36064
发表于 2017-11-3 09:24:38 | 显示全部楼层
如果要一次选择的数据多可以发一个action到后端取数据返回loadData给data
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36064
发表于 2017-11-3 09:56:12 来自手机 | 显示全部楼层
这个全选不但是遍历慢,右边的grid在渲染显示数据的时候也慢,主要慢的应该是渲染,list 可能会比grid的快,但是数据多前端同样慢,所以数据多的时候推荐都到后端处理
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-11-21 23:46 , Processed in 0.083869 second(s), 26 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表