NeralJS需求整理及思路
NeralJs希望通过解析json数据,动态创建和渲染报表,每个报表呈现一定时间范围的数据,通过使用表格图表等不同的方式,使数据的呈现不死板,且更容易看出规律。
说通俗点,就是动态在一个区域内生成多张图表。
经过深思熟虑(其实写之前什么都没想,想到一点写一点),有以下几个问题需要考虑:
1、由于数据是在报表呈现时从后台直接拉取的,那么在json中应该保存的就是这组数据的定义,如何定义?
如某淘宝商店销售天数据:[10,12,8,9,3,1,12],这些数据都被保存在后台,并被命名为DayIncom,当然天数据每天都有,所以数据库中根据时间存了很多组,所以还需要确定时间区间。如时间是2014/12/5至2014/12/12日。
最后json中保存格式变成这样:
{
title:'淘宝销售天数据',//对应到图例
uid: 'DayIncome',
dataRange: { start: '2014/11/8', end: '2014/-1/-1' },
}
通过ajax向后台发送请求,请求内容如上,后台解析数据返回需要的内容。
2、动态数据加载,如果数据组太多,如何减少请求?
如果一个报表页面每个需要加载10个左右的数据组,那么ajax服务就需要请求10次,不仅效率低下而且服务器会负载,所以需要建立一个ajax的管理模块,将需要请求的数据收集起来,一次发送,同时在接收完毕时触发自定义消息,通知视图管理模块更新图表内容。
3、ajax管理模块ajaxManager的功能确定
ajax管理模块需要接收多组如上1中所说的数据对象,并统一发送请求,并允许对象监听请求成功事件,将指定的数据告诉视图管理模块。整理一下这句需求得到下面的几个函数:
function AjaxManager(){
void addRequest(info);//接收多组数据对象
void DoRequest();//统一发送请求
void OnReady(uid,function);//允许对象监听请求成功事件,并返回对应的数据
}
4、视图管理模块ViewManager的确定
视图管理模块需要对所有的视图进行管理,考虑到之后可能会需要修改和移动视图的功能,暂定功能为增、删、改。同时,为了模块清晰,功能单一,只是生产一个空的div框,内部实现,如多标签等功能,交给Panel模块实现。模块需要增删,所以不能简单的使用内部index的方式定位到模块(原来有3个div,编号0,1,2。现在删除1号视图框,则2号的实际保存编号变成1),使用随机生成的GUid作为框体的id属性
{
x: 20,
y: 20,
width: 800,
height: 510
}
5、Panel模块的确定
Panel模块用于生成多标签的框体,同时控制内部内容的显示。何为内部内容显示,即需要解析json数据,向Ajax管理模块增加ajax请求,并读取返回的内容,渲染图表。
下图创建一个两个标签的panel:
{
tab_count:2,
tab_text:["标签1","标签2"]
}
6、综合
{
components: [
{//对应一个chart控件
type: 'line',
series:[
{
title:'淘宝销售天数据',//对应到图例
uid: 'DayIncome',
dataRange: { start: '2014/11/8', end: '2014/-1/-1' },
}
],
panel_index:"标签2"
}
],
panels: {
canvas: {
width: 1200,
height: 600
},
data: [
{
x: 20,
y: 20,
width: 800,
height: 510,
tab_count:2,
tab_text:["标签1","标签2"]
},
{
x: 835,
y: 20,
width: 300,
height: 250,
tab_count:1,
tab_text:["标签3"]
},
{
x: 835,
y: 280,
width: 300,
height: 250,
tab_count:1,
tab_text:["标签4"]
}
]
}
};
NeralJS需求整理及思路的更多相关文章
- 用MVC5+EF6+WebApi 做一个小功能(二) 项目需求整理
在一个项目开始前,需求整理大概要占到整个项目周期15%甚至30%的比重,可以说需求理得越清楚,后续开发中返工几率越小.在一个项目中,开发新功能的花费的精力要远远小于修改功能的精力,这基本是一个共识.老 ...
- CMDB服务器管理系统【s5day87】:需求讨论-设计思路
自动化运维平台愿景和服务器管理系统背景 服务器管理系统 管理后台示例 需求和设计 为什么开发服务器管理系统? 背景: 原来是用Excel维护服务器资产,samb服务[多个运维人员手动维护] 搭建运维自 ...
- python UI自动化实战记录一:测试需求与测试思路
测试需求: 项目包含两个数据展示页面,数据均来自于四个数据源接口. 测试操作步骤: 选择5个大类型中的一个,每个大类型下有3个子类型,选择任一子类型,页面数据更新.需验证页面上的数据与数据源接口数据一 ...
- python接口测试-项目实践(一) 测试需求与测试思路
测试需求: 第三方系统提供了3个接口,需要测试前端显示的字符串里的对应数据与接口数据是否一致. 测试分层: 开发人员的设计:每周从接口取一次数据,拼接完成后保存到数据库.再从数据库取数提供接口给前端开 ...
- 常见 git 需求整理(持续更新中)
首发于 语雀文档 突然感觉自己对 git 还是挺熟悉的,因为团队里新来的七八号应届生来问我 git 问题,基本没有答不上的情况,但为了能更好地对知识进行整理,还是记录一下为好. (希望能)持续更新.. ...
- Axure XMind整理交互思路
本部分主要是为了研究Xmind思维导图总结设计原型的思路
- mess系统 开发技术,需求整理
1.1.WEB开发的相关知识 WEB,在英语中web即表示网页的意思,它用于表示Internet主机上供外界访问的资源. Internet上供外界访问的Web资源分为: 静态web资源(如html 页 ...
- 怎么用思维导图软件iMindMap整理发文思路
如果你是一个普通的博客作者,那么你就应该明白在枯竭时寻找灵感就像是一场噩梦,即使你有一千个想法,但是你无法将它们关联起来也是无用的,所以,为什么不试试iMindMap思维导图呢,尝试创新,进行组建,你 ...
- 16.MindManager整理交互思路
点住主题同时按ins键可以插入一个支节点 右键主题选择下方的排列图表 可以选择排列方式 按住主题同时ctr+v就会粘帖成一个子主题 文本也可以复制黏贴 主题内容可以直接选择拖动更改结构 选择主题框上的 ...
随机推荐
- oracle 存储过程,函数和包
创建存储过程: 语法:create [or replace] PROCEDURE 过程名(参数列表) AS PLSQL子程序体: 调用 存储过程的方式 两种1.execute(exec) - ...
- linux笔记2.21
命令dmesg显示本次内核启动信息 init是系统运行的第一个进程 Linux运行级别: 0 关机 1 单用户模式 2 不带网络的多用户模式 3 命令行多用户模式 4 未使用 5 ...
- C# 配置文件读取与修改(转)
C# 配置文件读取与修改 配置文件在很多情况下都使用到, 配置文件分为两种 一种是应用程序的配置文件, 一种是web的配置文件. 两种配置文件最大的区别是web的配置文件更新之后会实时更新, 应用 ...
- 移动端(html5)微信公众号下用keyup实时监控input值的变化无效
搜索框依据用户输入的值实时检索,一开始自然而然想到keyup,在拼音状态时,啥问题也没有, 问题1:切换到中文输入法,问题出来了,keyup事件不灵便了,后来在网上搜了下,找到了思路, 问题2:微信公 ...
- php 操作xml文件
读取xml:$doc=new DOMDocument(); $doc->load('news.xml'); $news=$doc->getElementsByTagName("n ...
- 第几天 AC 杭电
第几天? Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submi ...
- 转:Windows下载Android源码
原文来自于:http://blog.csdn.net/hlf48641715/article/details/7188450 下载msysgit,安装 官方下载:http://code.google. ...
- 是用VLC API将RTSP流convert为视频文件
一直在文档中找不到,接口设计的也不大好.不过终于在stackoverflow上找到解决方案了. 原来在LIbVLC库实例化的时候就需要传递相关的参数.我的代码大致是这样实现: const char * ...
- BZOJ1640: [Usaco2007 Nov]Best Cow Line 队列变换
1640: [Usaco2007 Nov]Best Cow Line 队列变换 Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 493 Solved: 2 ...
- android实现类似于支付宝余额快速闪动的效果
效果如下: 此图片不会动,但实际上是会快速跳动的. 之前看到有支付宝的效果非常牛逼.就是进去看到余额呼噜噜的直接上蹿下跳到具体数字,效果帅,但不知道怎么实现,最近终于知道了. 思路: 首先经常用 ...