【实验】easyui datagrid与aspnet gridview 绑定数据效率问题

iNeuOS工业互联网 2014-02-08 01:54:38
实验环境:
1、开发工具:vs2008
2、其他组件:jquery datagrid(easyui) gridview(aspnet)
3、1000条数据绑定

数据库源:
public class DataSource
{
public static DataTable GetData()
{
DataTable dt = BuildTable();
for (int i = 0; i < 1000; i++)
{
DataRow dr = dt.NewRow();
dr["productid"] = "FI-SW-01";
dr["unitcost"] = "10.00";
dr["status"] = "P";
dr["listprice"] = "36.5";
dr["attr1"] = "Large";
dr["itemid"] = "EST-1";
dt.Rows.Add(dr);
}
return dt;
}

private static DataTable BuildTable()
{
DataTable dt = new DataTable();
dt.Columns.Add("itemid",typeof(string));
dt.Columns.Add("productid", typeof(string));
dt.Columns.Add("listprice", typeof(string));
dt.Columns.Add("unitcost", typeof(string));
dt.Columns.Add("attr1", typeof(string));
dt.Columns.Add("status", typeof(string));
return dt;
}
}


一、easyui中datagrid数据绑定
前台代码:

<script>
$.ajax({
type: "post", //必须是Post方式
url: 'Default.aspx/GetData',
data: '{}',
contentType: "application/json; charset=utf-8",
dataType: "json",
beforeSend:beforefn,
success: successfn,
error: errorfn,
complete:completefn
});
var sdt;
var edt;
function beforefn(e, xhr, o) {
sdt = getTime();
}

function successfn(result) {
$('#dg').datagrid({
data: eval(result.d)
})
}

function errorfn(err) {
alert(err.responseText);
}

function completefn(event, xhr, settings) {
edt = getTime();

alert("开始时间:" + sdt + " 结束时间:" + edt);
}
</script>


后台代码:

[WebMethod]
public static string GetData()
{
DataTable dt = DataSource.GetData();
return Newtonsoft.Json.JsonConvert.SerializeObject(dt);
}


所用时间 :


二、aspnet中dgridview数据绑定(只是一个简单的数据绑定)
所用时间 :


结论:
第一种情况:耗时几秒钟
第二种情况:瞬间完成

...全文
455 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
沐沐坏小孩 2014-02-08
  • 打赏
  • 举报
回复
不明觉厉。
  • 打赏
  • 举报
回复
引用 11 楼 liuchaolin 的回复:
页面和数据库操作都存在超时的情况,我们不能指望一次就能得到所有数据,所以有时需要分几次获取,明白?
又谈策略问题了?
心灵彩虹 2014-02-08
  • 打赏
  • 举报
回复
楼主生气了,不给分了。
md5e 2014-02-08
  • 打赏
  • 举报
回复
页面和数据库操作都存在超时的情况,我们不能指望一次就能得到所有数据,所以有时需要分几次获取,明白?
  • 打赏
  • 举报
回复
引用 8 楼 liuchaolin 的回复:
这么和你说吧,就是你安装一个程序,有进度条和没有进度条显示的问题,没进度条显示肯定比有进度显示的要快,但要等你处理完后再知道结果,但有时候用户不想这么做,他想实时监控整个的进度,一边要工作,一边还要向你汇报,这肯定是需要时间的
这个比喻是合适的,但是这是说的AJAX的好处。我是从反方面考虑的,如果本来可以1秒种完成的任务,而额外开销了5秒种,又有什么 意义呢。所以要试情况而定。而还有一个特定的环境就是datagrid数据绑定,对JSON解析。
  • 打赏
  • 举报
回复
引用 7 楼 liuxingfffff 的回复:
[quote=引用 6 楼 lsjwq 的回复:] [quote=引用 5 楼 liuxingfffff 的回复:] LZ 你这比较没意义。 后台代码 page_load记录开始时间。 前台代码 页面表格填充完毕计算结束时间。
第二种情况,获得数据源记录开始时间 ,页面加载完算结束时间 。[/quote] 有没有考虑过浏览器 ie,chorme,safari js执行效率是不一样的[/quote] IE11下测试的。
md5e 2014-02-08
  • 打赏
  • 举报
回复
这么和你说吧,就是你安装一个程序,有进度条和没有进度条显示的问题,没进度条显示肯定比有进度显示的要快,但要等你处理完后再知道结果,但有时候用户不想这么做,他想实时监控整个的进度,一边要工作,一边还要向你汇报,这肯定是需要时间的
liuxingfffff 2014-02-08
  • 打赏
  • 举报
回复
引用 6 楼 lsjwq 的回复:
[quote=引用 5 楼 liuxingfffff 的回复:] LZ 你这比较没意义。 后台代码 page_load记录开始时间。 前台代码 页面表格填充完毕计算结束时间。
第二种情况,获得数据源记录开始时间 ,页面加载完算结束时间 。[/quote] 有没有考虑过浏览器 ie,chorme,safari js执行效率是不一样的
  • 打赏
  • 举报
回复
引用 5 楼 liuxingfffff 的回复:
LZ 你这比较没意义。 后台代码 page_load记录开始时间。 前台代码 页面表格填充完毕计算结束时间。
第二种情况,获得数据源记录开始时间 ,页面加载完算结束时间 。
liuxingfffff 2014-02-08
  • 打赏
  • 举报
回复
LZ 你这比较没意义。 后台代码 page_load记录开始时间。 前台代码 页面表格填充完毕计算结束时间。
  • 打赏
  • 举报
回复
引用 3 楼 liuchaolin 的回复:
单线程的用户体验好,还是多线程体验埂好呢? 你看淘宝就懂了,不要停留在一个数据调用的层面上看代问题,跳过这个层面你可以看到更多
是两个层面的问题: 1、用户操作体验,在WEB中,当然是AJAX好了。 2、第一种情况,在耗时方面,不能说ajax就快。在比较多的数据情况下,JSON数据,服务器端要封装,客户端要解析,在封包和解包的过程中,增加了很大开销。 并不是说谁好谁坏,而是根据现场环境,选择合适的。
md5e 2014-02-08
  • 打赏
  • 举报
回复
单线程的用户体验好,还是多线程体验埂好呢? 你看淘宝就懂了,不要停留在一个数据调用的层面上看代问题,跳过这个层面你可以看到更多
  • 打赏
  • 举报
回复
引用 1 楼 liuchaolin 的回复:
不懂你在比什么,一个是先加截出页面,然后调数据,一个是调完数据再全部显示,有时候效率不是这么体现的,按最初加载的时间计算,明显是第一种比较快速
不用说的这么专业,只是用户体验罢了,从刷新开始到数据完全显示,明显第一种情况延时会长一些。 致于操作的不同方式谁都明白。
md5e 2014-02-08
  • 打赏
  • 举报
回复
不懂你在比什么,一个是先加截出页面,然后调数据,一个是调完数据再全部显示,有时候效率不是这么体现的,按最初加载的时间计算,明显是第一种比较快速

62,241

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧