以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  通过addnew的形式将解析json的数据复制到表中,窗口加载慢怎么处理啊?  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=139181)

--  作者:guosheng
--  发布时间:2019/8/7 15:03:00
--  通过addnew的形式将解析json的数据复制到表中,窗口加载慢怎么处理啊?

大概500多条数据,需要等6到7秒,该怎么优化啊?

以下代码是在下拉窗口中的afterload事件中:

Dim hc As New HttpClient(http://fp.xinlianhuichuang.com/……)
Dim ret As String = hc.GetData()
    Dim dtb As New DataTableBuilder("明细表")
    dtb.AddDef("合同编号", Gettype(String), 100)
    dtb.AddDef("合同开始日期", Gettype(Date), 20)
dtb.AddDef("合同终止日期", Gettype(Date), 20)
dtb.AddDef("起租日期", Gettype(Date), 20)
dtb.AddDef("签订日期", Gettype(Date), 20)
    dtb.AddDef("项目名称", Gettype(String), 100)
dtb.AddDef("楼栋名称", Gettype(String), 100)
dtb.AddDef("房间名称", Gettype(String), 100)
dtb.AddDef("客户名称", Gettype(String), 100)
dtb.AddDef("租赁类别", Gettype(String), 100)
dtb.AddDef("合同状态", Gettype(String), 50)
    dtb.AddDef("合同面积", Gettype(Double))
dtb.AddDef("经手人", Gettype(String), 50)
dtb.AddDef("租金总额", Gettype(Double), 50)
 dtb.Build()

 

 

For Each ep As JToken In JArray.Parse(ret)
Dim rr As Row=Tables("明细表").addnew()
rr("合同编号")=ep("合同编号")
rr("合同开始日期")=ep("合同开始日期")
rr("合同终止日期")=ep("合同终止日期")
rr("起租日期")=ep("起租日期")
rr("签订日期")=ep("签订日期")
rr("项目名称")=ep("项目名称")
rr("楼栋名称")=ep("楼栋名称")
rr("房间名称")=ep("房间名称")
rr("客户名称")=ep("客户名称")
rr("租赁类别")=ep("租赁类别")
rr("合同状态")=ep("合同状态")
rr("合同面积")=ep("合同面积")
rr("经手人")=ep("经手人")
rr("租金总额")=ep("租金总额")
Next


--  作者:有点蓝
--  发布时间:2019/8/7 15:33:00
--  
输出时间记录一下,看慢在哪里?如果是获取接口数据慢,可以提前把数据下载下来。

Tables("明细表").StopRedraw
For Each ep As JToken In JArray.Parse(ret)
Dim rr As Row=Tables("明细表").addnew()
rr("合同编号")=ep("合同编号")
rr("合同开始日期")=ep("合同开始日期")
rr("合同终止日期")=ep("合同终止日期")
rr("起租日期")=ep("起租日期")
rr("签订日期")=ep("签订日期")
rr("项目名称")=ep("项目名称")
rr("楼栋名称")=ep("楼栋名称")
rr("房间名称")=ep("房间名称")
rr("客户名称")=ep("客户名称")
rr("租赁类别")=ep("租赁类别")
rr("合同状态")=ep("合同状态")
rr("合同面积")=ep("合同面积")
rr("经手人")=ep("经手人")
rr("租金总额")=ep("租金总额")
Next
Tables("明细表").ResumeRedraw

--  作者:guosheng
--  发布时间:2019/8/7 16:10:00
--  

测试了一下,接口获取数据用时2秒,将数据写到表里用时不到1秒。

如果是获取接口数据慢,可以提前把数据下载下来。是什么意思啊?只有即时访问接口才是最新的数据吧?


--  作者:有点蓝
--  发布时间:2019/8/7 16:13:00
--  
如果数据不是固定的,每次都不同,那就没有办法了。