ExtJS14:GoogleChart渲染的性能优化

Extjs 性能优化 High Performance ExtJs 本文适合有一定javascript基础(明确js的面向对象,继承,作用域等)并能熟练使用extjs框架(明确各组件间的继承关系)的人阅读,目的在于对extjs的前台架构进行性能上的优化,核心思想为:“按需索取,晚使用,晚加载晚声明;不使用,不加载不声明;经常访问使用,进行缓存”。如果你不知道这里在说什么,下面就是一堆Dog shit,不要再看了。 立即下载
如果使用《Ext汇总整理(三)Google Chart应用》中的应用方案,如果后台的统计数据需要等待很长时间,而发送的请求是同步方式的,必须等待请求回来之后才会继续往下执行,这样整个界面就会被阻塞,很可能造成界面死掉。
思考:所以画图渲染界面的过程必须使用异步方式进行渲染,这样可以先将图那一块的控件设为空,这样就不会阻塞其他组件的渲染,在渲染其他的组件的过程中,如果异步请求的统计数据返回成功了,即可将返回的统计数据渲染到原来为空的饼图控件位置。

优化方案:
// 初始化组件
initUIComponents : function(_cfg) {
//1.定义异步请求,渲染控件。
//   之所以要在渲染界面之前就异步发送请求,是因为从后台调用统计数据的时间远比界面渲染的时间要长得多,
//   所以先异步发送请求从后台读取数据,在取到数据之后,此时id:'piechart'控件的位置已经渲染出来,便可以
//   将GoogleChart控件渲染到该盒子位置。
    Ext.Ajax.request({
url : __ctxPath + '/outb/listCountsObSaletask.do?comId=' + _cfg.comId,
method : 'post',
success : function(responsea) {
var result = Ext.util.JSON.decode(responsea.responseText);//解析数据
var data = [result.LAY_UP,result.PLAN,result.FLOWING,result.FAIL_CASE,result.SUCC_CASE,
                                            result.NO_EXEC,result.CANCELED];
pieLabel = ["未执行,"+result.NO_EXEC,"预约,"+result.PLAN,"已取消,"+result.CANCELED,
                                            "已失败结案,"+result.FAIL_CASE,"已成功结案,"+result.SUCC_CASE,"待追踪,"+result.FLOWING,
                                            "搁置,"+result.LAY_UP];
var pieChartPic = new Ext.ux.GoogleChart({
    chartType:"pie3d"
    , id : 'pieChartPicID'
    , width : 300
    , dataType:"extended"
                           ,  chartColors:["ff2400", "94660e", "9B30FF","D3D3D3","FFFF00","ADFF2F","8E388E"]
//       ,   title:""
//       ,labels:["未执行","预约","已取消","已失败结案","已成功结案","待追踪","搁置"]
                        });
pieChartPic.addData("data", data);//加载数据
pieChartPic.labels = pieLabel;//定义标签
pieChartPic.render('piechart');//渲染GoogleChart组件
                  },
failure : function() {
Ext.ux.Toast.msg('操作信息', '统计数据读取延时,请联系管理员!');
}
    });
......
//2.声明一个空控件。
{
columnWidth : .5,
border : false,
style : 'text-align:center',
id:'piechart',//控件ID,异步请求需要调用的渲染的标识
items:[]//初始化为空
}
//开始渲染界面
},// end of the initComponents()

AUTOSAR/汽车行业 AUTOSAR架构及汽车产业链相关介绍 阅读详情

相关推荐

Arch Linux双系统安装避坑指南:从Windows分区到桌面环境全流程

本文提供了一份详尽的Arch Linux与Windows双系统安装避坑指南。内容涵盖从安装前的UEFI环境确认、BitLocker处理、分区规划,到Live环境进入、基础系统安装、GRUB引导配置,再到显卡驱动安装、KDE/GNOME桌面环境部署及中文化设置的全流程。重点解决了双系统安装中的核心痛点,帮助用户在不破坏现有Windows系统的前提下,顺利完成Arch Linux的安装。

nice1的博客 535

Ext.js性能优化漫谈

Ext.js是一个用于建立企业级应用的纯JS框架。毫无疑问,它为我们提供了大量的组件,比如container,panel,field,grid,这些组件使用起来很方便,不需要去写js和html,但是ext.js的性能却存在很大的问题。比如,我在公司负责的页面,在本地的加载时间居然需要十几秒,当然这可能和后台服务有关,但是前台的渲染和执行也耗费了大量的时间。下面就我个人感受和网上的一些信息对Ext.j

neal1991的专栏 2104

代码审计工具学习之Seay(安装以及初步认识)

目录 1.1名词解释 1.2代码审计的重要性 1.3代码审计的步骤 1.4代码审计的内容 1.5常见的代码审计工具 2 Seay 2.1什么是Seay 2.2Seay的安装过程 3典型漏洞分析 3.1什么是命令注入漏洞 3.2 如何理解命令注入漏洞 3.3 如何防御命令注入漏洞 4 利用工具对命令注入漏洞进行分析 4.1DVWA靶场命令注入漏洞分析 4.2 Pikachu靶场命令注入漏洞分析 1.1名词解释 软件代码审计是对编程项目中源代码的全面...

weixin_52515588的博客 2万+

Extjs使用技巧之,大数据量Grid做数据移除和添加效率优化

慢的原因: 因为每一次从Store中移除一条数据,Grid都会进行重画,当数据量比较大的时候,需要的时间会很长,例如在1500条Grid中移除1条可能需要2秒左右,移除10条就需要10多秒,移除800条,谷歌浏览器就有崩溃的嫌疑。 解决思路: 1、先禁用掉Ext的重绘,等删除完成后在恢复重绘功能,代码如下 Ex

HouYing 5595

uniapp中renderjs实战:手把手教你实现SSE即时通讯(附完整代码)

本文通过一个完整的实战案例,详细讲解了如何在uni-app中使用RenderJS实现SSE即时通讯功能。文章剖析了RenderJS作为Vue视图层强力补充的原理,并提供了包含自动重连、状态管理等健壮性设计的完整代码,帮助开发者突破框架限制,高效集成浏览器原生API。

weixin_29005499的博客 189

要理解成本中心与利润中心的根本区别与适用场景,需从 “责任范围、考核核心、管理目标” 三个核心维度切入,同时明确二者在企业管理体系中的联动关系

摘要: 成本中心与利润核心区别在于责任范围、考核目标和管理权限。成本中心仅对成本负责(如生产、行政部门),考核成本控制能力;利润中心需同时管控成本与收入(如独立产品线、区域分公司),以利润为核心指标。选择标准取决于单元是否拥有收入决策权:无收入权的支持/执行部门设为成本中心,能独立经营、核算盈亏的单元设为利润中心。二者协同运作,成本中心为利润中心提供基础支持,利润中心的需求动态影响成本中心资源配置,共同实现企业整体目标。划分本质是确保考核指标与责任范围匹配,避免管理失效。

金牌架构师 657

Google Chart Tools学习笔记 二 Area Chart

今天我们来学习一下,不同chart 的具体使用方法。本次的主角是Area Chart。 概述: 面积图(Area Chart)使用SVG 或者VML显示在浏览器中,可以在鼠标悬停时显示提示信息。 作用:Google 示例: 示例代码: type="text/javascript" src="https://www.google.

1888

第1章第11节:创建可容纳多行滚动文字的输入框TextEditor [SwiftUI快速入门到实战]

TextField可以让用户输入单行的文字内容,若想输入多行的文字内容,可以使用能够容纳多行滚动文字的 TextEditor。 定义一个字符串属性,用来存储用户输入的文字内容。接着定义一个布尔属性,用来标识是否弹出警告窗口,以显示用户输入的内容。 TextEditor是由UIKit中的UITextView演变而来,因此可以在init方法中,通过UITextView修改TextEditor的外观属性。 添加一个VStack视图,作为子视图的容器。 创建一个TextEditor,Te..

互动教程网[www.hdjc8.com] 832

ExtJs性能优化

在使用ExtJs过程中,性能一直是一个比较头疼的问题,从用户的角度来看,就一个字:慢。从技术的角度来说,这个“慢”字可以分为两种,加载“慢”和渲染“慢”。想分辨这两种情况很容易:如果居于网不慢而互联网上慢,说明是加载慢;如果Chrome不慢而IE慢,就是渲染慢。还有另一种情况:越用越慢,这个“慢”通常是内存泄露造成的。针对以下这三种情况讨论一下解决方案:1,加载慢1.1 减少要加载的东西不要动不动

璀璨星空 985

vue2/3 - 详细实现高德地图轨迹回放,vue高德地图车辆历史行驶轨迹播放,在地图上绘制行程轨迹|起点和终端的路程绘制|用户运动轨迹绘制及播放等(支持开始/暂停、进度条拖放、控制播放轨迹的倍速等)

vue2,vue3,nuxt,高德地图,轨迹,vue高德地图轨迹回放,历史轨迹回放,轨迹回放功能支持倍速及进度条拖拽,VUE高德地图轨迹回放、倍速调整、进度条拖拽,vue3高德地图轨迹回放,Vue实现地图路径回放,vue中使用高德地图实现历史轨迹回放并能控制播放轨迹的倍速,多条轨迹陆续播放,巡航轨迹做带进度条和倍速的轨迹回放,Vue高德地图路径回放,历史轨迹回放并能控制播放轨迹的倍速,使用高德地图实现轨迹播放和进度条控制,vue高德地图如何实现轨迹回放,高德地图做轨迹绘制用什么api,高德轨迹API,驾车轨

✅ 精选推荐文章 1万+

最优化方法与数学建模

在本篇博客中,我们将探讨最优化方法在数学建模中的应用。首先,我们将介绍几种常见的最优化方法,如梯度下降、牛顿法和遗传算法。接着,我们将详细阐述这些方法的原理和算法。最后,我们将通过一个数学建模案例,展示如何使用Matlab实现这些方法。本文旨在为大家提供一个清晰的思路,以便更好地理解和应用最优化方法。

YOLO 439

ExtJS 性能优化注意要点

1. 不要过度定义panel2. 尽可能延迟HTMLElement创建示例:renderTo的不必要使用var window=new Ext.window({ renderTo:document.body, title:'Title' } ); window.show();上面代码运行时,窗口就会创建并隐藏在body里,这是不必要的。3. 挂起渲染var tb = Ext.crea

猿来这样-谢厂节的博客 3128

PCL 最小生成树用于法向量定向【2025最新版】

PCL 最小代价生成树用于点云法向量的定向。博客长期更新,本文最近更新时间为:2025年9月15日。

点云侠的博客 2067

Ext4.0性能优化

Ext的性能优化可以从3个方面着手: 1. 加载慢----通常加载慢的原因都是由于外网传输速度产生的 所以,根据这一特点解决方案如下: ①  减少ext-all.js的大小,ext4.2以前官网上都有提供定制的工具。但是4.2后就没有,并且ext-all就已经过压缩的,所以手动删减代码也是很尴尬。 ②  给出加载提示:如进度条等 ③  为js添加过期时间,尽量减少重复

闸北米 1882

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

关于 Grid 的 Buffered(延迟渲染/无限滚动)相关配置在 ExtJS 各版本中变化

数据量大的时候,GridPanel 如果开启了 Buffered(延迟渲染/无限滚动),会极大提升性能。原理是,重复利用表格行 Dom 元素,每次只渲染可见(一屏)的数据。所以,即使数据量再大,对性能的影响也很小。 Ext JS 4.0.7 Ext.data.Store: 只有buffered:Boolean配置项,默认为false,当有多数据记录时,设置为true,显示数据效率上会有提高。 Ex...

小桥流水丿小溪 1028

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

ExtJs性能优化3

1.http://man1900.iteye.com/blog/675687   2.压缩代码,能用BoxComponent就不用Panel或Container,window如果你不追求完美,可以设置shadow:false。能不显示边框的就不要显示边框。frame:true其实不好看,就默认白色就不错。 3.几个建议,比如里面的window,不要关闭,而是隐藏,如果是删除或添加,不要从数据

兰丝龙 专栏 2177

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

ExtJS11:大数据量延时查询,延时旋转遮罩显示

var myMask = new Ext.LoadMask(Ext.getBody(), {             msg: '正在查询,请稍后...',             removeMask: true //完成后移除  }); myMask.show(); Ext.Ajax.request({             url :  __ctxPath + '/outb/q

1005

EXTJS的渲染优化以及JS同步的模拟

<br />      最近在看一个项目中的优化问题,项目是用extjs写的.面临的问题是项目中的页面打开时的显示时间让人头疼,看了下它的编码.发现它在EXT的基础上又包装了自己写一层渲染的结构方法,而HTML页面里的BODY居然是空的!!!它的页面显示全是在JS中进行执行来输出的,这个方式自然会因为JS的执行以及输出之间的阻塞而导致页面的显示时间的变慢.<br />      我个人其实比较崇尚页面编写的傻瓜化,象基础的页面框架可以用HTML+CSS来代替,而只在使用对应功能的时候来使用JS框架的UI.但

loenwang的专栏 1484

ExtJS05:动态构造复选框组CheckboxGroup

Ext.Ajax.request({ url : __ctxPath + "/unim/listAgtUnimAgent.do?Q_ismonitor_L_EQ=0", method : 'post', success : function(response) { var result = Ext.util.JSON.decode(response.responseText);//解析数据

2255

ExtJS12:Ajax发送请求:同步和异步

1.Ext异步请求发送 Ext.Ajax.request({         //需要发送的url请求 url :  __ctxPath + '/outb/isProjComsEnableObProject.do?projId='+id,         //发送方法:post method : 'post',         //请求成功时的回调函数 success : fun

1082

ExtJS03:Grid表格中删除一行问题

在EXT的grid中,只删除Grid中的一行,但是不删除数据库,怎样执行?EXT中没有像ASP中的GridViewRow ,请问该怎么解决? grid.getSelectionModel().getSelected();//获取选中的第一条记录,返回record类型 grid.getSelectionModel().getSelections();//获取选中的全部记录,返回一个数组,里面全是re

1079
上一篇: ExtJS13:Google Chart应用
下一篇: ExtJS21:ComboBox联动下拉菜单示例
江南侠客
博客等级 码龄16年 1粉丝 18原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值