[周末课程]什么是“页面业务流程”分析思维导图?如何编写页面假JSON数据? &下一个前端组件“日历”
大家好,时间飞快一晃又到了周末了,今天要跟大家一起学习的有以下这些内容:
-- 什么是“页面业务流程”分析思维导图?如何编写页面假JSON数据?
-- 进入下一个前端组件“日历”。
先来说第一个,页面业务流程。什么样的页面会有业务流程呢?
第一,业务型,电商网站、
第二,强交互型,知呼、QQ空间、音乐播放器
第三,展示型,随着鼠标滚动或页面拖动,菜单或页面有不同显示切换
常会有同学说不知道如何
下手写JS,不知道从哪开始写,不知道操作什么。这就是业务不清晰。
你这个业务,想要实现。那么每一阶段业务,是哪几个模块,是哪几个容器?你把ID给谁,把谁独立出来,让谁操作?
那么这个业务流程分析的思维导图,具体怎么画呢?
其它的各行各业的不同岗位的业务分析方法咱们不管,这里我只讲我自己经常用的一个很简单的方法,只是把它的业务按顺序理一遍
现在咱们以“静态页面切图小组”的一张UI设计图为例,
看这张设计图,先把它的需求搞清楚,哪哪有什么交互,然后切图。前端开发嘛,很大程度上,就是看图说话。
具体如何切图做HTML页面,我在这里是不讲的。
html页面做完之后,就假设你是用户,你现在开始操作这个网页了。 然后一步一步的往下进行,每进行一步,就是思维导图上的一个节点;每一个操作分支,就是一个分支节点,把它整个的流程都过一遍,当前这个页面的业务流程,也就是操作的顺序,你就基本了解了。
它的作用,主要就是让你对这个网页做到心中有数。
那这个假数据怎么写呢?首先它肯定是JSON的,然后,从起点开始,你就看这个操作,是否需要数据,如果是那它的数据是哪些?然后用JSON给它组织起来。
那现在我一边讲一边在黑板上画,把它的所有可能需要用JSON数据生成的地方,都画出来。
首先看它的nav导航栏,这个栏目可能是可以自定义数量的。这个数量是多少?取决于JSON的值.
然后它的主导航条每个下来还有子下拉菜单,这个必然也是JSON生成,
然后是大通栏BANNER广告,它的数量有多少?也取决于后台传来的JSON。
这就是三个地方需要JSON了。
再往下,产品展示这里,它所属的NAV,也是可以用JSON来生成的,
还有产品展示所属的滚动轮播,这个也可以用JSON。
这又是二个用JSON的,
再往下是加盟店展示,它的数量也是可以用JSON来生成的。
算到这里,一共是6个地方可以用JSON。
你看我现在已经把这6个可能需要的JSON和它的结构,都在这边写出来了。现在我们把它们装在一起就是你需要从后台获得的总的JSON。
//这就是根据页面业务逻辑,而来的JSON假数据。
然后这个假数据,就是根据业务,来编写一些本地的JSON数据。用来验证页面的业务逻辑能否走的通。
一个点是这样,十个节点也是这样;然后到分支节点了,你看它的分支条件是什么?用什么来判断分支比较好?
就这样,把这些节点的JSON,都定出来之后,你再用一个父级的JSON,把它们包起来,这样一个大的JSON,就出来了。
当然你也可以不把这6个JSON拼合,而是把它们做为6个API接口。
刚才讲的这些东西呢,可以是在开始动手做的时候用,也可以在开会讨论谈工期的时候用。别人问你,啊老尚啊,这个东西做出来大概要多久呀?
你就可以跟他们一边画一边说,这个我得需要XX时间啊,那个我得需要xx时间啊,然后这些时间加在一起,我还得有个余量,还得测试调整,这个东西我至少需要二个月以上!!
这个时候,别傻呼呼的觉得自己报的时间少显的自己牛B。
开发工期是固定的,你报的少了,别人的时间就多了,你报的时间多,别人的时间就少。谁报时间少,谁加班!
要不为什么开会总是开着开着就吵起来呢,,多数就是因为这个
这东西吧,潜移默化,现在听我讲这些,可能没什么感觉,但以后上班时间长了,可能说不定什么时候就想起来,哎,这个情况,老尚以前讲过,。。
能有这个效果,就说明我没白讲。
====================
第二段内容,就是新的前端组件,日历。
这个日历组件,简直是常用的不能再常用了。几乎到处都有它的影子。
现在我们先来画一个日历,
首先,最上一排是星期一至星期日,第二排至最后一排是当月的日期。
然后第二排的左起前几个格要空着,为啥呢,因为当月的第一天可能不是当月的星期一,就是说,当月的1号是星期几,1号之前就空几格。
咱们先来验证思路,什么闰年啊,点击按钮月份切换啊,咱们都不管。先来实现一个最简单的日历,它只有一个功能,就是显示当前月份的日历。
日历组件,实际上是操作Date日期对象。如果不熟悉它,这个日历是没法写的。
首先,我们来获取相应的日期,先是new一个日期对象,
var nstr=new Date(); //当前Date资讯
然后是获得年份
var ynow=nstr.getFullYear(); //年份
var mnow=nstr.getMonth(); //月份
var dnow=nstr.getDate(); //今日日期
//把年,月,日是1,把它们传入日期对象,会返回当年当月第一天的日期信息
var n1str=new Date(ynow,mnow,1);
//用n1str来调用.getDay()方法,来获得当月第一天是星期几,
这个很重要,每个月的1号左边空几格,就靠它了。
var firstday=n1str.getDay();
日期信息都有了,现在再来搞一个12个月份的每月天数的数组:
var m_days=newArray(31,28,31,30,31,30,31,31,30,31,30,31);
然后来算一下当前这个月的日历有几行。我们已经确定日历有7列,因为一周七天嘛。
然后每个月有多少天是固定的,已经写在上面的数组里了。唯一变化的就是每个月的第一天是星期几不一定。所以要在每个月的天数这个数字上,再加上是1号是星期几,这样就是当月的日数和1号左边的空白格。
就是下面这行,
var tr_str=Math.ceil((m_days[mnow] +firstday)/7);
接下来就开始用for循环画日历了,肯定是for for嵌套循环了。外层for循环画每一行,内层for循环画每一行里的每一个列,就是格。
就这样一行一行的,把日历画出来了。
- Java多线程详解5【面试+工作】
- Java多线程详解6【面试+工作】
- MySQL备份恢复第二篇(r5笔记第6天)
- SpringMVC 中配置 Swagger 插件.
- MySQL和Oracle对比学习之事务(r5笔记第4天)
- 【面试宝典】Java如何打印数组
- MySQL数据导入导出牛刀小试(r5笔记第3天)
- SpringMVC 异常处理.
- 一条简单的sql在11g和12c中的不同(r5笔记第2天)
- 浅析 SpringMVC 原理和配置.
- 使用impdp不当导致的数据丢失问题(r5笔记第1天)
- MySQL数据库 Event 定时执行任务.
- Tomcat 日志分割.
- crontab导致的频繁发送邮件的问题(r5笔记第20天)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 训练提速60%!只需5行代码,PyTorch 1.6即将原生支持自动混合精度训练。
- TensorFlow 模型剪枝
- 机器人如何使用 RRT 进行路径规划?
- 高效 PyTorch:6个训练Tips
- 机器学习与情绪交易(附代码)
- 社区前端游戏框架LollipopCreator v1.0.X正式开源
- 社区开源框架音效管理模块:AudioManager详解
- 社区开源框架音效管理模块:AvatarManager详解
- vue-element-admin实现一个可编辑的table
- vue+element实现一个excel表格下载的功能
- vue的select下拉框多选项-multiple属性
- HBase基准测试
- Shell数组的使用
- 查询MYSQL锁表情况
- 查看MYSQL表数据大小