刷微博已经成为大家的一种生活方式,我今天要介绍的功能就很类似刷微博。

当我们需要将大数据(比如百万条数据)显示在页面上的时候,显然一次加载是不现实的,用户体验很差。当然,你可能会想到采用分也显示,但是现在的用户已经

厌倦了分页的方式,他们更喜欢刷微博的方式。

于是就出现了这篇文章。

笔者近期的项目中,采用的前端框架是ExtJs,其提供的GridPanel足以应付一次性加载500+以上的记录,只是会让用户等待一会。

但是日志的显示没那么简单,其数据一直在增加,用户也不想分页查看,而是用传统的GridPanel也不太适合。

Google之后,原来ExtJs已经提供了一个插件(Ext.ux.grid.livegrid),强大的Extjs啊!

据说ExtJs 4 提供了一个更加好用的插件来替代这个插件,由于时间关系,笔者仅仅使用了ext 2.2 和 ext 3.3.1两个版本的,效果还不错,

惯例先上图

ExtJs + .NET MVC 不分页处理大数据

笔者测试八百万条数据,只需要等待1秒左右,当然那是首次加载的速度。而且我们不是一次加载的。

上代码吧,

ExtJs + .NET MVC 不分页处理大数据

这里使用的是Extjs2.2版本,笔者也用了3.3.1的版本,貌似还要简洁很多,但是demo在公司。

Views:

<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<dynamic>" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Index</title>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <link rel="Stylesheet" type="text/css" href="../../Scripts/Ext/resources/css/ext-all.css" />
    <link rel="Stylesheet" type="text/css" href="../../Scripts/Ext/resources/css/ext-ux-livegrid.css" />
    <link href="../../Content/css.css" rel="stylesheet" type="text/css" />
    <script type="text/javascript" src="../../Scripts/Ext/adapter/ext/ext-base.js"></script>
    <script type="text/javascript" src="../../Scripts/Ext/ext-all.js"></script>
    <script type="text/javascript" src="../../Scripts/Ext/GridPanel.js"></script>
    <script type="text/javascript" src="../../Scripts/Ext/GridView.js"></script>
    <script type="text/javascript" src="../../Scripts/Ext/RowSelectionModel.js"></script>
    <script type="text/javascript" src="../../Scripts/Ext/Store.js"></script>
    <script type="text/javascript" src="../../Scripts/Ext/Toolbar.js"></script>
    <script type="text/javascript" src="../../Scripts/Ext/JsonReader.js"></script>
    <script type="text/javascript" src="../../Scripts/Ext/ext-lang-zh_CN.js"></script>
    <script type="text/javascript" src="../../Scripts/js/grid.js"></script>
    <script src="../../Scripts/js/CHelper.js" type="text/javascript"></script>
    <script type="text/javascript" language="javascript">
        Ext.onReady(function () {
            Ext.BLANK_IMAGE_URL = 'Ext/resources/images/default/tree/s.gif';
            showMe();
        });
    </script>

</head>
<body>
    <div id="content">
   
    </div>
</body>
</html>
View Code

相关文章: