`
yiminghe
  • 浏览: 1453359 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

大容量数据的显示

阅读更多

 

起因:

 

在将 windowlite 应用于大数据 (1.5 M 的 table 数据)显示场景时,刚开始频频让浏览器弹出”中断脚本“窗口,后经过优化代码以及关键的调用流程的改变而终于使得数据得以显示成功,步鄹如下:

 

 

步鄹:

 

1.采用固定css宽高的窗口, windowlite 支持自适应宽度,但是仍然要计算 window容器的宽度,其中调用了 Ext.Element.getTextWidth , 而ext的实现为重新建造一个div,将元素复制过去再计算宽度(offsetWidth) ,十分消耗资源,故 改为固定宽高后,省去步鄹占用时间


2.禁止读取offset等 BOM 属性, 由于我们采用了固定宽高,而大小属性可以直接从css中style读取,而不再需要读取offset系列属性,发现offset属性要比css属性读取慢得多。故 Ext.Element.getWidth ,getHeight,getX 等尽量不要使用,因为这些操作的实现非常繁琐,很多多余操作,对于一个完全自己掌控的div,完全不需要这些操作


3.关键一步:延迟数据加载,固定显示位置。 原来数据加载在window显示之前的构造函数当中,由于当window show操作进行时要居中,或者一些宽度高度调整,避免不了对容器的 style 属性读取 ,而容器内数据越多则读取越慢。若固定显示位置,并先将空白窗口显示出来,再append大数据量到窗体body,则可显著提高显示速度。


4.多利用settimeout 分批计算 ,将show 操作放在 settimeout 中,防止脚本占用过长时间,留给其他操作时间。


5.ie 可用insertAdjacentHtml ,其他浏览器用 range 操作 可以取得比 innerHtml 更高的效率。

 

6.多次操作设置元素 style 时,可以设置 cssText 来减少 reflow :

 

from YUI3 StyleSheet

 

var el = document.getElementById('some_element');
 
el.style.borderBottom = '3px solid #eee'; // reflow
el.style.borderTop    = '3px solid #ccc'; // another reflow
el.style.fontWeight   = 'bold';           // another reflow
 
// Vs. three changes in one reflow
el.style.cssText += '; border-bottom: 3px solid #eee; border-top: 3px solid #ccc; font-weight: bold';
 

 

 

附录:

 

 

频繁DOM操作问题

 

使用 javascript Workers 进行计算

 

Nicholas Zakas :writing-efficient-javascript

分享到:
评论

相关推荐

    qt 快速加载并动态显示大容量数据能够加载千万行量级的数据

    qt 快速加载并动态显示大容量数据能够加载千万行量级的数据。 本工程介绍了如何使用QT的tablewideget快速加载大容量的数据,快速加载千万行文本并且动态显示出来,同时介绍了如何根据鼠标事件而显示不同内容 qt ...

    qt快速加载并动态显示大容量数据能够加载千万行量级的数据

    本文将深入探讨如何利用Qt实现快速加载和动态显示大容量数据,如千万行级别的数据。 首先,我们需要理解Qt的TableWidget组件。TableWidget是Qt Widgets库的一部分,它允许创建二维表格,可以用于展示结构化数据。...

    C#处理大容量数据,及多线程简单应用

    在IT行业中,尤其是在开发大型应用程序时,处理大容量数据是一项挑战。C#作为一种强大的编程语言,提供了多种策略来高效地管理大数据并优化多线程应用,以提高性能和用户体验。以下将详细介绍“C#处理大容量数据,及...

    大容量SDRAM,通过串口显示数据

    项目中提到的"中级篇14:大容量SDRAM读写,通过串口显示数据"可能是一个教学材料或者教程,详细阐述了如何设计并实现这个功能。它可能包括步骤指导、示例代码、仿真结果和实际应用的注意事项。通过学习这样的资料,...

    无线大容量数据采集记录系统论文.doc

    《无线大容量数据采集记录系统》 无线大容量数据采集记录系统是一种先进的技术解决方案,它旨在克服地理条件的约束,使工作人员能够灵活、高效地进行数据采集和处理。本论文探讨了如何利用无线通信网络技术设计一个...

    基于单片机的热能表设计毕业(论文)设计.doc

    12864显示屏则提供低功耗和大容量数据显示,有助于用户直观了解热能使用情况。 预期的设计成果将是一个集成了流量测量、温度监测、数据处理、远程通信和用户交互功能的完整热能表系统。该设计不仅考虑了经济性和...

    基于MSP430无线低功耗大容量数据采集记录系统

    【作品名称】:基于MSP430无线低功耗大容量数据采集记录系统 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【项目介绍】: 于无线...

    内存映射文件在大容量采编数据处理中的应用.pdf

    在大容量数据处理领域,内存映射文件技术能够快速、灵活地处理数据,为数据的读取、处理和显示带来了显著的性能提升。此外,这种技术的应用也促进了数据分析、大数据处理等领域的进步,为复杂数据的高效利用提供了...

    磁盘信息及扇区数据显示工具

    《磁盘信息及扇区数据显示工具详解》 在信息技术领域,磁盘管理是不可或缺的一环。无论是日常的数据存储,还是专业的系统维护,都需要对磁盘的物理信息和扇区数据有深入的理解。本文将详细解析一款名为“磁盘信息及...

    单片机与DSP中的高速大容量数据采集板卡的SDRAM控制器设计

    高速大容量数据采集板卡在单片机与DSP应用中扮演着至关重要的角色,尤其是在需要实时处理大量数据的场合。本文主要探讨了针对这类应用场景的SDRAM控制器设计,特别是基于FPGA的解决方案,以提高数据采集和存储的性能...

    无线低功耗大容量数据采集记录系统.zip

    该低功耗无线手持式数据记录仪,由锂电池供电,可以对采集到的数据进行存储、显示及分析。其最大的优越性是,不用局限于某特定地方采集数据,用户可以通过自己实际的情况,在一定的范围了,随时随地的对数据进行采集...

    基于C8051单片机的大容量SD卡存储系统的研究

    通过利用C8051单片机上的SPI接口与SD卡进行通信,不仅能够实现大容量数据的高效读写,而且可以显著降低系统的成本。这种设计方案对于那些需要在8位单片机平台上处理大量数据的应用场景来说具有重要的实际意义。未来...

    STM32-W25Q64存储并读取图片数据,显示在LCD屏幕上

    W25Q64是一种串行闪存芯片,具有大容量(64Mb)的特点,适合存储大量的二进制数据,如图片。它通过SPI(Serial Peripheral Interface)接口与STM32进行通信,实现数据的读写操作。SPI是一种同步串行通信协议,由四个...

    LED电子显示屏的数据存储和处理

    同步型显示屏需要电脑支持,其优点是规模大、显示花样多,支持彩色显示,但成本高、体积大且需要专业人员操作。与之相对的是异步型显示屏,其微处理器一般是单片机(MCU),显示内容通过电脑通信发送到单片机系统的...

    查询磁盘占用大容量类型文件

    为了解决这个问题,"查询磁盘占用大容量类型文件" 是一个非常实用的功能。它能够帮助用户找出那些占用大量存储空间的文件,以便进行清理或者优化。这个功能通常涉及到一些系统工具和方法,下面将详细解释相关知识点...

    基于ARM与大容量NANDFLASH的GNSS数据采集系统设计与实现.doc

    【基于ARM与大容量NANDFLASH的GNSS数据采集系统设计与实现】 嵌入式系统在当今科技领域中扮演着重要角色,它们结合了计算机、半导体和电子技术,能够根据特定应用需求定制软硬件,以适应功能、可靠性和成本等多种...

Global site tag (gtag.js) - Google Analytics