Dorado 5 : 13.2.大数据量展示 (T22)

概述

dorado5大大提高了表格性能,可满足单页超大数据量展示。本例向您展示了dorado5在单次通过DataTable显示2000条记录时的性能表现。由于本页面中包含了2000条的数据的XML信息,整个HTML的内容超过了300K。所以如果您的网速不够快的话,页面弹出的速度仍可能会有点慢。本示例链接如下:

 

准备工作

新建一工程testperfomance2,无需配置数据源和数据库。

开发步骤

添加Dataset和ViewModel实现

步骤1:添加一Common ViewModel,文件名为TestPerformance2。
步骤2:在该ViemModel的onLoad事件中添加如下代码:

setTimeout("Debugger.show(\"log\", true);", 200);

步骤2:添加该ViewModel的实现,代码如下:

import java.util.Date;
import org.apache.commons.lang.RandomStringUtils;
import com.bstek.dorado.data.Dataset;
import com.bstek.dorado.view.DefaultViewModel;
/**
 * PerformanceViewModel
 */
public class TestPerformance2ViewModel extends DefaultViewModel {
    private final static long ONE_YEAR = 365L * 24L * 60L * 60L * 1000L;
    protected void doLoadData() throws Exception {
        super.doLoadData();
        Dataset dataset1 = getDataset("dataset1");
        long now = System.currentTimeMillis();
        for (int i = 0; i < 2000; i++) {
            dataset1.insertRecord();
            dataset1.setString("employee_id", String.valueOf(i + 1));
            dataset1.setString("employee_name",
                    RandomStringUtils.randomAlphabetic(8));
            dataset1.setInt("salary", (int) (Math.random() * 8000) + 2000);
            dataset1.setBoolean("sex", (Math.random() > 0.5));
            dataset1.setBoolean("married", (Math.random() > 0.5));
            dataset1.setDate("birthday", new Date(now
                    - (long) (Math.random() * ONE_YEAR * 50L)));
            dataset1.setString("degree", RandomStringUtils.randomAlphabetic(8));
            dataset1.setString("email", RandomStringUtils.randomAlphabetic(8));
            dataset1.setString("web", RandomStringUtils.randomAlphabetic(8));
            dataset1.setString("cmnt", RandomStringUtils.randomAlphabetic(8));
        }
        dataset1.moveFirst();
    }
}

步骤3:添加一CustomDataset,id设置为dataset1。
为该Dataset添加如下字段:

Name

DataType

employee_id

string

employee_name

string

sex

boolean

married

boolean

birthday

date

salary

double

degree

string

email

string

web

string

cmnt

string

 

添加ListDropDown

步骤1:添加一ListDropDown,属性设置如下:

属性

id

dropdownSex

mapValue

true

autoDropDown

true

步骤2:为dropdownSex添加2个DropDownItem,第一个字段name为"男",value为"true",第二个字段name为"女",value为"false"。
步骤3:设置dataset1的字段sex的DropDown为dropdownSex。

添加DataTable

步骤1:添加一DataTable,属性设置如下:

属性

dataset

dataset1

height

100%

id

table1

width

100%

步骤2:选中dataset1,点击字段生成按钮。

创建Jsp页面

生成Jsp页面后,对页面进行编辑,最后结果如下:

<%@ page contentType="text/html; charset=UTF-8" %> 
<%@ taglib uri="http://www.bstek.com/dorado" prefix="d" %> 
 <html> 
 <head> 
 </head> 
 <body style="overflow: hidden"> 
 <d:View config="sample.performance.TestPerformance2"> 
 <d:DataTable id="table1" /> 
 </d:View> 
 </body> 
 </html>

查看运行效果

启动服务器后,浏览页面效果如下:

知识点

本示例旨在展示dorado的高性能,未涉及新的知识点。不过若需要制作虚假数据,RandomStringUtils.randomAlphabetic方法是个不错的选择。