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

QQ登录

只需一步,快速开始

查看: 6049|回复: 6

[结贴] 大数据量处理PopOver组件问题

[复制链接]

43

主题

149

帖子

476

积分

中级会员

Rank: 3Rank: 3

积分
476
QQ
发表于 2018-8-13 19:57:10 | 显示全部楼层 |阅读模式
版本: 其它(帖子中说明) 小版本号: 3.8
数据库: MS SQLServer 服务器操作系统: Windows 应用服务器: Tomcat
客户端操作系统: Windows 7 浏览器: IE8
麻烦帮看下:
在正式环境下安装了GoogleChrome Frame 的IE8上运行,通过弹出窗口选择条件后,根据选择的条件执行SQL SERVER存储过程(数据量较大,时间较长,大约3分钟)。在windowDialog的onRecevied事件中接收弹出窗口参数,并执行存储过程,在onRecevied中增加了PopOver组件,存在问题如下:
A、不设置setTimeout时,不显示PopOver;
B、设置setTimeout200后,能够显示,但是执行到sendBizRequest 时,过渡动画效果静止不动,浏览器会处于假死状态,直到请求处理完毕。
代码:
Model.prototype.selectzjhReceived = function(event) {
                // 接收弹出窗口数据
                var gcbh = event.data.row['GCBH'].value.latestValue;
                var zjh = event.data.row['ZJDH'].value.latestValue;
                var sl = event.data.row['SL'].value.latestValue;

                this.comp("treeData").setFilter("filter", "GCBH = '" + gcbh + "'");
                this.comp("treeData").refreshData();

                var self = this;
                this.comp('popOver').show();
                var count = this.comp("treeData").getCount();
                if (count <= 0) {
                        // 参数
                        var param = new biz.Request.ActionParam();
                        param.setString('strZjh', zjh);
                        param.setString('strGcbh', gcbh);
                        param.setFloat('fltXqsl', sl);

                        // 发送请求
//                        setTimeout(function() {
                                biz.Request.sendBizRequest({
                                        context : self.getContext(),
                                        contentType : biz.Request.JSON_TYPE,
                                        dataType : biz.Request.JSON_TYPE,
                                        parameters : param,
                                        action : 'loadProTreeAction',
                                        callback : function(data) {
                                                self.comp("treeData").setFilter("filter", "GCBH = '" + gcbh + "'");
                                                self.comp("treeData").refreshData();
                                                self.comp('popOver').hide();
                                        }
                                });
//                        }, 500);
                } else {
                        this.comp('popOver').hide();
                }
        };

43

主题

149

帖子

476

积分

中级会员

Rank: 3Rank: 3

积分
476
QQ
 楼主| 发表于 2018-8-14 08:43:25 | 显示全部楼层
另外还存在一个比较严重的问题:上面的代码中调用自定义Action loadProTreeAction ,Action 中主要调用SQLSERVER的存储过程,这个存储过程执行大约要3分钟,在执行期间,另外其他用户无法登录系统,点击登录按钮页面卡死,待执行完成后才能登录完成。是不是代码写的有问题还是平台哪里设置的问题。具体代码如下:
public static void loadProTree(String strZjh, String strGcbh, Float fltXqsl) throws NamingException, SQLException {
                // 根据上下文,获取数据库连接
                Connection conn = ModelUtils.getConnectionInTransaction("/bzcbgl/bzcbgl/data");

                // 创建调用存储过程对象
                CallableStatement stat = conn.prepareCall("{call dbo.up_getpdm_bom(?,?,?)}");
                try {
                        // 设置参数
                        stat.setString(1, strZjh);
                        stat.setString(2, strGcbh);
                        stat.setFloat(3, fltXqsl);
                        stat.execute();
                } finally {
                        stat.close();
                }
        }
回复 支持 反对

使用道具 举报

43

主题

149

帖子

476

积分

中级会员

Rank: 3Rank: 3

积分
476
QQ
 楼主| 发表于 2018-8-14 08:50:31 | 显示全部楼层
后面这个问题如果找不到原因,基本上后面就没有办法正式部署使用了,麻烦帮重点看下。
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36198
发表于 2018-8-14 09:02:09 | 显示全部楼层
开发版和免费版是不支持并发的,不能同时执行多个action

远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

43

主题

149

帖子

476

积分

中级会员

Rank: 3Rank: 3

积分
476
QQ
 楼主| 发表于 2018-8-14 09:20:19 | 显示全部楼层
哦,那就是我们目前用的是20用户的免费版本了,不支持这个了。只要是这个原因就行,1000注册用户的正式商务合同我们这个星期会签订下来。另外第一个问题呢,POPOVER页面卡死的问题呢?麻烦帮看下。
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36198
发表于 2018-8-14 09:34:00 | 显示全部楼层
用sendAsyncBizRequest异步调用action
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

43

主题

149

帖子

476

积分

中级会员

Rank: 3Rank: 3

积分
476
QQ
 楼主| 发表于 2018-8-14 10:31:10 | 显示全部楼层
可以了,可以结贴了
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-8-25 00:12 , Processed in 0.071639 second(s), 25 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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