ng-table dataset 模式 渐进式渲染

有大批量的数据需要在列表中单页显示,如果数据全部加载完毕后一次性渲染到界面会出现页面一直空白或者状态切换响应半天,这不是一个好的用户体验;正因为如此,采用渐进式渲染的思想,设置数据以一定的粒度进行渲染,会看到页面上的数据在瀑布式的加载,不至于让用户看着白屏或者一直等待跳转响应,从感官上告诉用户数据量比较大并且正在加载中;因为是单页显示所有的数据,只需要请求后台一次,使用NgTable 的dataset 模式渲染列表,排序、过滤、分页就可以在客户端实现,业务中不需要分页,并且搜索为多层次只能请求服务端实现,这里只用到客户端排序功能。

# 渐进式渲染

function renderDataset(tableParams,data,size){
    //没有数据了则不再处理
    if(data.length==0){
        return;
    }
    //根据渲染粒度添加数据
    for(var i=0;i<size;i++){
        if(data.length>0){
            tableParams.settings().dataset.push(data.shift());
        }
    }
    tableParams.reload();
    $timeout(function(){
        renderDataset(tableParams,data,size);
    });
}

this.tableLoad = function(stateParams){
    filesService.get(stateParams).$promise.then(function(resp){
        //总数据
        var respData = resp.data.pager.data;
        //实例化列表
        self.tableParams = new NgTableParams({
            sorting:{lastModified:‘desc‘}    //更新时间降序排列
        },{
            counts:[],
            dataset:[],    //不给数据
            dataOptions:{
                applyPaging:false    //不分页
            }
        });

        renderDataset(self.tableParams,respData,3);
    });
};

//加载列表
self.tableLoad($state.params);

原文地址:https://www.cnblogs.com/liboo/p/9600433.html

时间: 2024-09-21 11:10:56

ng-table dataset 模式 渐进式渲染的相关文章

windowed模式视频渲染

如果需要使用windowed模式渲染,需要以下几个步骤: 查询IvideoWindow接口(QueryInterface) 设置父窗口(put_Owner) 设置窗口模式(put_WindowStyle) 设置窗口位置(SetWindowPosition) 处理WM_MOVE消息 过程说明性代码,简写,不做返回值判断 HRESULT hr=CoInitialize(NULL); IGraphBuilder *pGraphbuilder; hr=CoCreateInstance(CLSID_Fil

ant design vue table组件一列渲染多个参数

如下效果图,开始时间,结束时间为两个字段 代码: const columns = [ { title: '起止时间', customRender: (text, record) => { const time = `${record.dateFrom}-${record.dateTo}`;//es6写法 const time = '${record.dateFrom}' + '-' + ${record.dateTo}';//es5写法 return time; },}] 原文地址:https:

架构模式逻辑层模式之:表模块(Table Model)

表模块和领域模型比,有两个显著区别: 1:表模块中的类和数据库表基本一一对应,而领域模型则无此要求: 2:表模块中的类的对象处理表中的所有记录,而领域模型的一个对象代表表中的一行记录: 一般情况下,我们可以基于第二点来严格区分你的设计是表模块的,还是领域模型的.如:如果我们有许多订单,则领域模型的每一个订单都有一个对象,而表模块只有一个对象来处理所有订单(注意,这里的类,都是指业务逻辑层的类,而不是实体类.表模块的类的对象和常规的领域模型的对象很类似,但是关键区别是:它没有标识符来标出它所代表的

设置WebBrowser内核渲染模式

前不久开发一个项目,是采用WebBrowser作为外壳,加载网页,由于网页是采用html5来进行开发的,当通过WebBrowser加载网页后,html5中的特性 都无法正常显示,而通过ie浏览器打开时能够正常显示,经过研究发现WebBrowser默认是通过ie7的兼容模式来进行渲染,因此html5的特性无法显示.那么 我们该如何更改WebBrowser内核的渲染模式呢? Internet Explorer Architecture 首先了解一下IE的整个架构,如下图 ShDocVw 及以下就是W

正则分割字符串、页面状态、渲染模式

//正则分割字符串 1 var ids=document.getElementsByClassName("div2"); 2 var cls=ids[0].className.split(/\s+/); 3 alert(cls.length); 4 for (var i = 0; i <cls.length; i++) { 5 if(cls[i] == "divs"){ 6 alert(i+" "+cls[i]); 7 }else if(c

【ADO.NET】8、DataSet的使用

一.DataSet的查询 SqlDataReader 适用于大型数据的读取,它是一条一条的读取,读取出来的数据是存放在服务器上当正在读取数据的时候,突然与服务中断,将无法读取后面的数据DataSet 适用于小型数据的读取,它是一次将所有数据读取并存放到本机程序的内存当中,占内存当正在读取数据的时候,突然与服务中断,数据可继续读取 DataSet可存放若干个表(DataTable),每个表有若干个行(DataRow) private void button3_Click(object sender

文档类型DTD,DOCTYPE和浏览器模式

出处:http://blog.csdn.net/freshlover/article/details/11616563 浏览器从服务端获取网页后会根据文档的DOCTYPE定义显示网页,如果文档正确定义了DOCTYPE浏览器则会进入标准模式(Standards Mode),否则浏览器会进入怪异模式或混杂模式(Quirks mode). 浏览器开发初期W3C倡导的网页标准并不流行,因此浏览器有独特的对网页标签或属性的解析模式,随着日后网页标准的流行,浏览器增加了对新标准的支持(Standards M

IE 怪异模式(Quirks Mode)对 HTML 页面的影响

本文主要描述 Quirks Mode 和 Standards Mode 这两种文档模式渲染页面时的差异由来,并且给出一些详细的例子说明差异所在.通过阅读本文,Web 开发工程师可以对浏览器工作原理有更为深刻的理解,避免自己所开发的 Web 应用在不同的浏览器上产生不同的效果. Quirks Mode 概述 定义 什么是 Quirks Mode? 简单来说,Quirks Mode 就是浏览器为了兼容很早之前针对旧版本浏览器设计.并未严格遵循 W3C 标准的网页而产生的一种页面渲染模式. 历史 由渲

table布局 height=100%无效分析

(从死了一次又一次终于挂掉的百度空间中抢救出来的,发表日期 2014-08-11) 原文链接:http://www.cnblogs.com/gaojun/archive/2012/05/07/2487374.html 在使用table表格进行页面布局时,经常使用将表格高度设置style="height:100%"来实现表格高度满屏效果,但在最新的浏览器中经常遇到无效,根本原因再于浏览器使用用的工作模式的不同造成的:在Firefox与IE8标准模式下,HTML与Body标签默认是没有高度