web前端开发个人简历(共15篇)
向那些有需求、并看得出你在组织中的价值的人推销你自己吧。先从公司总裁、制造部门主管或销售部门副总等人着手。阅读招聘广告时注意公司的名称。如果所登的职务正适合你,就以广告为线索,研究该公司,认真作准备,再发一封强有力的信件给有权雇用你的人,设法取得面试的机会。
可以肯定,人事部门在你被雇用后对你的帮助,绝对比你还没有被雇用时大得多。
以下是小编J.L分享的Web前端开发个人简历范文,更多个人简历模板下载欢迎访问YJBYS简历网。
关键词:PHR,物联网,云平台
0 引言
个人健康档案是人们健康管理过程的规范和科学记录, 以多种渠道收集信息满足人们自我健康管理的一种手段[1]。个人健康档案的建立是“以人为本”的电子化档案, 有助于人们建立并拥有服务终身健康的信息系统, 在当今社会尤其在国内医疗资源有限的背景下有重要的现实意义。作为个人健康不间断、非静态、数字化的电子记录集, 一方面要求个人及时有效地记录个人自己表征健康状况的生理指标和症状表现;另一方面要求系统快速准确地根据个人身体的现状, 同时结合已往的个人健康档案 (以往在患病、治疗和用药情况) 进行合理的建议或者向医生专家提供准确专业的描述, 以便快速进行治疗。而传统PHR记录, 书写量大、记录杂乱、文件繁多、不易保存、录入效率低、查询困难等种种因素难以满足以上两个方面的要求。这为物联网和云服务等新技术在该应用领域的发展应用找到空间, 本文的研发工作正是围绕这方面来展开。
本文参考国外个人健康档案的现状和发展, 分析国内个人健康档案的提出重要性和需求迫切性的分析;结合个人健康档案服务平台的需求, 初步给出个人健康档案服务云平台系统的构架设计, 具体包括各个功能结构作了详细的功能设计, 覆盖了个人健康档案的一些基本操作;进而根据个人健康档案服务云平台不同对象的不同流程, 以面向对象的编程思想进行编程实现, 给出了系统的设计实践, 展示了一个界面较美观、灵活性和交互性良好的个人健康档案服务云平台系统。
1 个人健康档案概述
1.1. 个人健康档案的提出
1968年美国Weed等首先提出以问题为导向的健康档案记录方式 (problem oriented medical record, POMR) , 要求医学服务者在医疗工作中记录要采用以个体健康问题为导向的方式[2]。然而直到20世纪90年代这个概念才逐渐推广, 在计算机网络技术高度发达的今天, 个人健康档案可借助网络的力量发展的更加全面和快速。2009年我国为贯彻落实《中共中央国务院关于深化医药卫生体制改革的意见》 (中发[2009]6号) 和《国务院关于印发医药卫生体制改革近期重点实施方案 (2009-2011年) 的通知》 (国发[2009]12号) 精神, 推进居民健康档案标准化和规范化建设工作, 卫生部组织制定了《健康档案基本架构与数据标准 (试行) 》 (以下简称“标准”) 等一系列健康档案标准, 为提高我国居民健康水平奠定了基础, 也为个人健康档案系统的建立提供了标准和依据。
1.2. 健康档案数据标准
从有关个人健康数据来源可看出, 建立个人健康档案是一个横跨各个医学科目、贯穿个人一生、跨行政区域, 不断源源累积、随时动态更新、共建共用的一个长期过程。制定全国统一、科学合理、满足个人、灵活适用的个人健康档案数据标准, 是建立个人健康档案, 尤其是个人电子健康档案的关键。健康档案数据标准目前主要包括三类[3]:
(1) 健康档案相关卫生服务基本数据集标准;
(2) 健康档案公用数据元标准;
(3) 健康档案数据元分类代码标准。
依据以上三类数据标准, 系统在第二类公用数据元标准和第三类数据元分类代码标准的准则及分类下, 按第一类相关卫生服务基本数据集标准, 建立拥有基本信息、公共卫生、医疗服务三个一级类目, 其中公共卫生包括儿童保健、妇女保健、疾病控制和疾病管理四个二级类目, 从而产生三级类目32个, 最终建立起一个总计34张表作为主表的数据库。针对“标准”的第二类公用数据元标准, 主要规定个人健康档案所必须收集记录的公用数据元最小范围及数据元标准, 其中数据元是不同业务领域之间进行无歧义信息交换和数据共享的基础。本系统根据需要节选“标准”中2252个数据元的90%的内容, 用此规范和统一个人健康档案的信息内涵和外延, 指导个人健康档案数据库的规划设计。由于健康档案中的数据元之间存在着一定的层次结构关系。第三类数据元分类代码标准从信息学角度对数据元进行科学分类与编码, 继而建立一个统一的、标准化的信息分类框架, 区别不同的数据元之间的特性, 这样PHR就能够分别定位和存储相应数据, 最终做到方便个人健康档案系统用户的快速理解和共享。
2 个人健康档案服务云平台技术与设计
2.1. 物联网与云平台技术
物联网 (Internet of Things, Io T) 通过各种传感设备, 通过一定协议直接或经过多传感器信息融合后, 将这些观察对象与互联网连接。在PHR系统里, 主要心电传感器、脉搏波传感器、血压传感器、体温传感器等测量监测对象对应的生理特征参数[4], 同时扫描二维码采集药品、相关食品信息, 通过与之连接的智能终端将数据实时稳定地传送到云服务器上。
云服务器 (Elastic Compute Service, ECS) 是一种处理能力可弹性伸缩的计算服务, 其通过虚拟技术将传统的分布在不同地域的服务器, 以集群模式将它们整合成为一个逻辑上的大服务器。因此, ECS有良好可扩展性、强大的存储和计算能力、万无一失的灾难备份能力, 并且通过BGP多线独享带宽ECS可以为用户提供快速准确的服务, 而且很好地解决传统服务器由于服务网络提供商、网络攻击、并发访问带来的一系列问题。PHR系统考虑到系统可能面临的大量数据、不同地域用户等问题, 将服务器建设在云端, 目的按需决定服务能力的配备方案, 一方面保证服务能力, 一方面节约资源经费。
2.2. 个人健康档案服务云平台系统设计
2.2.1. PHR系统功能结构图
个人健康档案服务云平台Web前端主要分为登陆和健康知识的展示, 其中登录用户分为普通用户、超级管理员、普通管理员、医生, 图1显示不同角色的用户权限和功能。
2.2.2. PHR系统主要用例图示例
普通用户在注册、修改个人健康信心、修改个人账户信息、设置医生信息账户信息和数据库的交互, 如图2所示。
2.2.3. 主要流程图
从顶层数据流图可看出, 数据流向为用户访问网站页面后数据进行交互后, 信息数据向网站页面显示和数据库数据存储。
从第一层数据流图可看出, 根据用户的交互请求不同, 数据将会有不同的走向, 分别是流向网站页面显示和流向数据存储。
3 个人健康档案服务云平台系统实现
3.1. 开发环境
(1) 开发工具:Myeclipse 8.5, Tomcat 7.0, Oracle;
(2) 开发配置:CPU i3 3.6Ghz以上, 内存2G以上, 硬盘40G以上, 10M/100M网卡, Windows 7/Windows 8.1中文操作系统。
(3) 数据库管理系统:Oracle 10g及以上。
3.2. 云服务架构
PHR系统采用第三方云服务, 直接将程序部署在第三方提供的服务器上, 在确保拥有云服务器的管理权限, 或者是云服务器的空间和接口程序后, 实现网站应用的步骤如下:
1、需要在web服务上配置好网站所需的相应环境;
2、需要添加网站所使用的权限;
3、开启网站使用的端口。
其中部署网站需要注意以下几点:
1、防火墙是否有做一些限制, 如网站的80端口是否有开启;
2、服务器是否有做一些会阻止外部访问网站的安全策略;
3、域名解析方式是否正确, 是否对网站绑定了相应的域名;
4、相关的网站环境是否配置正确, 网站文件的权限是否设置正确, 可以使用探针进行测试。
3.3. Web端具体实现
首页顶部有登录、注册和搜索框, 然后欢迎登陆个人健康档案管理系统, 紧接着个人健康自测入口, 推荐的医疗健康社区入口, 医用App循环推荐, 内容部分是分为吃食、孕幼、用药、医诊、病患、真相六大块, 点击全部可以进入到各块文章具体的图文列表。
普通用户和普通管理员有个人健康档案, 他们可修改编辑个人账户信息, 查看系统根据个人填写信息的推荐内容及个人医生对自己的建议, 同时拥有以下编辑权限:
1.基本信息, 包含姓名、性别、民族、年龄、联系方式、邮箱;生活调查, 包含遗传病史 (一般为家族) 记录、过敏记录、生活习惯描述 (是否抽烟、喝酒、熬夜等) 、特殊病种记录、疫苗注射记录、全身体检记录;体检报告相关指标;家庭常用备药。
2.就诊记录, 包括就诊时间、就诊医院 (或诊所) 、病因、诊断、用药。
3.用药记录, 包含自己用药或医生开的药方, 具体记录用户用药起始时间、期间所用药物、用药持续时间。
4. 健康日志, 记录个人平时生活中出现的不好的身体状况, 包含时间、身体描述、问题解决、后续观察。
在完善自己的个人信息后, 可以浏览这些基本信息, 同时可查看系统医生专家给出的建议和意见。以BMI、生活习惯、血压、乙肝五项的值数据基础, 系统建议针对用户信息进行判断处理, 提出想应的建议。
以医生角色登陆系统的用户, 除了可以通过查看以经授权的用户的详细健康信息, 可以添加写入自己的建议, 同时系统会根据已有数据进行分析, 生成疾病年龄分布、人数数量、性别对比的折线图和饼状图。以直观的效果给出统计学上的数据, 以便指导对相关疾病的诊断、用药和研究。
4 结论
如今当病人和医生需要完整、科学的医疗信息时, 散而乱的医疗记录让人苦不堪言, 导致医疗不尽如意[5]。早在2004年, 美国制定了“确保绝大多数美国人拥有共享的电子健康记录”的目标。到2011年, 美国政府为了电子健康档案的应用变得更好, 实施了“有意义使用”联邦激励项目, 促使医疗健康提供商必须满足一定的要求。随着我国对人口健康的要求, 需要记录、获取居民的健康信息, 进行科学有效的健康管理, 从而拥有更健康的体魄, 提高居民的整体身体质量。个人健康档案服务云平台系统是以个人问题为导向记录完整健康信息, 提供随地随时获取、记录的极大便捷, 为临时诊断、长期治疗和有针对性保健提供数据基础。个人健康档案建立将不断被认可, 将被广泛应用, 个人记录追踪自身医疗史, 已满足个人健康主动管理需求。
本文按软件工程的开发步骤, 参考国外资源和国内的特色, 初步设计并实现了个人健康档案服务云平台的前端系统, 努力做到大部分档案可以电子信息化, 并从服务角度展示了一个界面较美观、灵活性和交互性良好的个人健康档案服务云平台系统。
参考文献
[1]韦凤伶.个人健康管理系统的设计与实现[D].成都:西南交通大学医学专业, 2011.
[2]斐雪.物联网环境下智慧家居系统的交互行为研究[J].新视觉艺术.2011, 8 (2) :56-58.
[3]佚名.卫生部发布《健康档案基本架构与数据标准 (试行) 》[EB/OL].http://news.hc3i.cn/art/201001/1047.htm, 2010-01-16/2010-05-18.
[4]曾绳涛, 曹志龙.基于物联网的智能移动医疗动态监护系统[J].工业控制计算机, 2014, (6) :26-27.DOI:10.3969/j.issn.1001-182X.2014.06.011.
Flash投降
近十多年来,Flash一直是网页展示多媒体内容的标准格式,也是Adobe公司除PhotoShop等产品以外最重要的盈利手段之一。Flash动画曾经风靡一时,用Flash制作的网络广告至今还随处可见,而上传到众多视频网站的视频,早期绝大多数也都是Flash格式。
Flash技术的兴起源自上世纪90年代中后期的浏览器大战。当时,网景和微软都凭借各自的浏览器争夺市场,但激烈的竞争却导致网络内容发布商遭遇了不同浏览器间的兼容问题。于是,为超越对手,网景和微软都在浏览器中整合了专有技术,“扩展”了原有的技术标准,以便让网站在终端用户面前显得有所不同,结果造成了各个浏览器中的显示效果不一,给网站开发者和用户带来了困惑。
这一困惑却让一家名为Macromedia的公司发现了机遇,开发了Flash并被Adobe公司所收购。Flash技术从诞生之日起,就以一个统一解决方案的面貌出现,被广泛应用在网页和网络多媒体制作,使网页变得丰富多彩,不再是单调的不同粗细、不同大小的文字或图片,在当时鲜有能与Flash匹敌的同类技术。
但技术的洪流总是滚滚向前,十多年之后,当移动设备成为上网和娱乐的主流设备时,Flash的问题开始变得越发严重,太耗电的问题使得手机和平板电脑没有足够的电力续航。另外,Flash还占用太多移动设备内存资源。于是,Adobe公司无奈宣布放弃在手机等移动设备上对Flash的支持,将不会再对此投入任何资源。
于是,那些需要在移动互联网时代争夺话语权的大公司们开始蠢蠢欲动,寻找Flash的接班人。2010年2月起,随着iPad的推出,苹果率先宣布了Flash在移动设备上的“死刑”,转而支持新的网页格式,紧随其后的是Google和微软,Chrome浏览器全面转向新的网页格式,甚至专门推出采用新技术的网页程序商店。在微软下一代操作系统的浏览器界面中,也不会再支持那些需要安装特定插件才能运行的技术,包括Flash。
这些大佬们共同将新的支持对象指向了HTML5,随着Adobe在移动设备上对Flash的主动放弃,甚至连Adobe自己都推出了基于HTML5的开发工具“Edge”,HTML5离成为未来网页新标准的那一天已越来越近。“Flash是一个插件,用以弥补HTML4在视频和图像处理等方面的不足,相比较而言HTML5是一套完整的网页语言,随着HTML5的不断更新,网页富媒体处理和对硬件调用能力的不断增强,HTML5技术迟早会取代Flash。”一位业内人士表示。
Web前端开发的十字路口
HTML标准自1999年12月发布 4.01版本 后,后继的 HTML 5 和其他标准均被束之高阁,为推动Web标准化的发展,一些公司联合成立了一个名为“Web Hypertext Application Technology Working Group”(Web 超文本应用技术工作组,WHATWG) 的组织。HTML5草案的前身名为 Web Applications 1.0,于2004年由WHATWG提出并在2007年被 W3C 接纳,成立了新的 HTML 工作团队。
HTML 5 的第一份正式草案已于2008年1月22日公布,最引人注意的两大特点在于强化了 Web 网页的表现性能和追加了本地数据库等 Web 应用功能。对于国内的开发市场而言,HTML5有着深远的意义。App Store和安卓市场在美国占据绝对的统治地位,形成了一个良性的付费市场,而中国的应用商店目前还没有盈利模式。因此,网页应用的开发者从某种程度上通过HTML5可不需要依托应用商店来代替收费,开发者和用户之间完全可借助第三方支付完成交易。
较之上一代HTML标准,HTML5为开发者们提供了完整的平台,不需要借助任何插件,除最基础的音频和视频以外,还支持更多交互功能以及多线程处理等全新特征。这些特征在理论上使浏览器成为了一种通用的计算平台,即用户无需离开浏览器就能完成一切任务。不但如此,消费者还可访问以远程方式存储在“云”中的各种内容,且不受位置和设备的限制。
开发者对HTML5可跨平台开发的优点也大为追捧,意味着可利用这一技术为各种智能手机、平板电脑和PC开发完全兼容的产品,而不用专门针对特定硬件或在线商店进行修改。无论是苹果iOS、Google Android还是微软Windows Phone,甚至是黑莓手机操作系统也无妨,用户只要打开浏览器就能使用程序,这使得开发者们可在最大范围内推广自己的产品。
正是这些特征,使在网页上实现大型程序的复杂效果成为了可能。因此,HTML5不仅有利于开发,也有利于维护。关键在于HTML5在手机等移动设备上表现得比Flash更高效、更节省电力。苹果公司创始人乔布斯就曾提到,用Flash观看视频的耗电量几乎是用HTML5观看视频的两倍。
不过,即使目前HTML 5的优点正在被很多公司、组织和个人大吹大擂,但Web前端开发者不能不静下心来沉思,原因在于各大浏览器对HTML 5的支持良莠不齐,且移动互联网领域原本就是一个标准不统一的行业,HTML 5自身还没有一个统一的标准,因此一个Web前端开发的十字路口正在形成。
浏览器,准备好了吗?
和很多重要的应用技术一样,HTML5在普及和应用前总要经历一段很长时间的积累期。HTML5技术新标准自2008年第一版标准推出以来已沉寂了3年,但始终没有一个最终标准,这是HTML5不能被广泛应用的最大原因,甚至业内有人表示这套标准在2022年才会最终敲定,不过有了苹果、谷歌等大佬的推动,可能这一时间将被大大提前。
苹果Safari浏览器一经推出后,乔布斯就宣布只支持HTML5,将Flash技术拒之门外。在PC领域,谷歌Chrome浏览器对HTML5支持最为出色,影响力最大,此外微软也宣布将支持HTML5技术,而IE这个PC浏览器的王者加入无疑会使HTML5这团火烧得更旺。由此可见,虽然这项属于“未来”的技术还没有一项真正成文的标准,但是思想却已经走在了标准前面。
目前,移动互联网正经历着和PC互联网相同的发展历程,大致可分为三个阶段:从2000年到2004年是第一个阶段,一切以浏览器为中心,应用也很简单;第二个阶段是从2004年到2007年,PC上应用软件开始大行其道;第三个阶段也就是今天,90%的流量通过浏览器。HTML5将使得用户的浏览器使用习惯延伸到移动终端,而这也会彻底改变移动应用的市场格局,作为网页通用入口的手机浏览器将起着越来越重要的作用。浏览器本身是一款应用,但由于技术的限制,这款应用一直被当作是文字内容的入口。随着各种网站独立客户端的出现,这种内容入口的作用又被大大削弱了。此时,HTML5从某种意义来说拯救了手机浏览器,不仅让许多应用可以回归于网页,更可能将功能扩大化,在手机网页上呈现更为多样的富媒体形式。此外,造成浏览器大翻盘的原因首先是电脑上装了太多软件,爆发安全问题,其次是第三方应用需要开发的标准化,无法为所有软件独立开发插件;最后一个原因是浏览器整合能力的提升。
由于HTML5的发展还没有统一的标准,各个浏览器的厂商支持的力度也不尽相同。谷歌收购摩托罗拉从一定意义上来说将推动HTML5的发展,通过硬件厂商和软件厂商的深度结合,使摩托罗拉可能会在Android的平台上产生新的升级,也可能会直接把Chrome浏览器捆绑在摩托罗拉的手机,那么HTML5的应用会迅速地爆发,因为谷歌的Chrome是所有浏览器中最勇于创新的,走在了HTML5技术应用的最前面。业内人士表示,浏览器是与生俱来跑网页的,随着HTML5的出现,现在浏览器要加强跑应用的能力了。HTML5的到来将为手机浏览器带来一个新的发展契机,将会成为手机浏览器从第二阶段过渡到第三阶段的关键因素。
后HTML5时代:原生应用VS网页应用
“原生应用和网页应用未来也许没有一个清晰的界定,网页应用可以套一个壳而变成独立App的形态,原生应用中的一个按钮在你不知道的情况下也许点进就是一个网站的链接。”一位业内人士表示,原生应用现阶段仍然占市场的统治地位,从用户的角度,随着数量的不断增多,用户很难在几十万的应用程序中找到自己想要的,显然这种需求仅凭应用商店那几十个推荐位是远远无法满足的。这是由原生应用本身的封闭性造成的,每一个应用程序都是一个围墙,由于搜索引擎看不到里面的数据,因此不能做到精确的搜索。只有网页才能做到精确的搜索,因为Web是一个基于网页语言开发的开放标准。
HTML5技术对软件开发者的最大吸引力来自于网页应用的跨平台性,不仅如此,HTML5语言相比较原生应用的技术门槛更低。网页应用对于用户最大的便利是无需下载,不用安装,所有数据都在“云”端。由于HTML5的应用是跨平台的,因此从理论上用户在家中PC上玩游戏,只要按下暂停键,就可在地铁上用手机接着玩,给人们提供了无限的想象空间。
但即便有如此多的好处,原生应用也不见得一定会被网页应用所取代,至少现阶段HTML5的发展并不能完全满足开发者对效果的追求,原生应用的运行速度和使用感受依然比网页应用要好。造成这种差异的重要原因是原生应用可以调用手机设备的硬件,而网页应用却无法做到。
“不管是原生应用还是网页应用,关键的问题是运行在系统还是浏览器中,不同的应用适用于不同的形式,那些联网性的应用长期来看一定会跑在浏览器上。”业内人士表示,HTML5将使得Adobe Flash技术显得很多余,因为HTML5的开放,Web标准提供了除Flash之外的富媒体网络内容发布方法。但也有另一些业内人士表示,HTML5的缺点很明显,特别是由于其目前仍处于草案阶段,浏览器兼容性差,而且开发模式单一,目前基本只靠记事本开发。相比之下,Flash的优点在于普及率高,而且依靠多年的积累,众多设计人员和开发者集中在Flash平台,有效地解决了浏览器的兼容性问题,可以提供有效的开发方案。
对于消费者而言,以 Web 为中心象征着朝向真正的“智能”设备迈出的重要一步,“智能”设备能够在任何地方提供同样简单、相关和个性化的体验。消费者行为的这些变化可能会影响电信、媒体、技术乃至广告等诸多行业的经济法则。在一个内容无处不在的世界里,操作系统与 Web 浏览器对制作并分发软件和应用的相对重要性也在变化,这对后来跟进的参与者会有什么样的影响。
WEB标准不是某一个标准,而是一系列标准的集合。网页主要由三部分组成:结构(Structure)、表现(Presentation)和行为(Behavior)。对应的标准也分三方面:结构化标准语言主要包括XHTML和XML,表现标准语言主要包括CSS,行为标准主要包括对象模型(如W3C DOM)、ECMAScript等。这些标准大部分由W3C起草和发布,也有一些是其他标准组织制订的标准,比如ECMA(European Computer Manufacturers Association)的ECMAScript标准。
2、XHTML与HTML有什么区别?你觉得应该使用哪一个,并说出理由。
XHTML1.0和HTML4.01之间的主要差异是它遵守XML编码约定。
标签不能重叠,可以嵌套
标签与属性都要小写
标签都要有始有终,要么以
形式结束,要么以
形式结束
每个属性都要有属性值,并且属性值要在双引号中
别用name用id
3、请解释一下DOCTYPE的作用,有DOCTYPE和没有DOCTYPE有什么区别?
DOCTYPE声明是指HTML文档开头处的一行或两行代码,它描述使用哪个DTD。DTD(文档类型定义)是一组机器可读的规则,它们定义XML或HTML的特定版本中允许有什么,不允许有什么。在解析网页时,浏览器将使用这些规则检查页面的有效性并且采取相应的措施。浏览器通过分析页面的DOCTYPE声明来了解要使用哪个DTD,由此知道要使用HTML的哪个版本。
最近这一个月完成了自己的第一个java web项目,是给某杂志社做的在线投稿系统,虽然进度很慢,但是中间确实学到了不少东西,深刻体会到了自己看几个月书都不如做一个项目来的实在。这个项目自己主要负责的是JSP页面、JS脚本、CSS样式表的编写,虽然主要做的是前端,但是在设计前端后台交互功能时,对MVC架构和数据库又多了一分了解,这一个月的时间,自己在技术上也确实成长了不少。下面分成几块总结一下自己的这个项目中的心得吧:
1.项目开发流程:从确认需求开始,到原型设计,再到原型测试,这些都没什么说的了,主要是刚开始开发前端JSP页面时,自己走了很多弯路,想到有什么页面就写什么页面,GET和POST的路径也是随心所欲,想到什么名字就起什么名字,结果发现这样做严重影响了项目开发的进度,后来经过主管的提点后,我幡然醒悟,其实,面向对象的思想就贯穿在整个项目当中,在前面的原型设计的过程中,除了页面的设计还有数据库的设计,数据库的每个表就对应着Java中的每个实体类,这个类封装了数据库中的列作为属性,封装了数据库的增删改查作为方法,就拿这个投稿系统为例,实体主要有用户、稿件等等,实体间还有着一对一映射或者一对多映射等对应关系。其实,整个系统的开发就是围绕着这些个实体进行的,甚至于我们可以把实体名字做为二级目录,把实体的增删改查作为GET或POST的路径,譬如account/add、paper/delete等等,有了这些路径,那么与之对应的GET和POST的Controller也就有了,接下来我们要做的就是,定义Controller中返回的视图,写完Controller后再把与实体相关的增删改查方法写到服务层中,再把项目的整个骨架搭起来,再去处理细节,很快的,这个项目就成型了。这里前端和后台的配合尤为重要,数据交互是整个系统的核心。
2.JSP页面设计:提到JSP页面,在这里我想说的一点是,其实JSP页面是在服务器生成的,那么传给JSP页面的变量、参数都会在服务器转化为它们具体的值,然后再传给客户端。JSP页面可以实现很多服务器端的功能,因为可以直接在页面嵌入JAVA代码,但是我们必须明确的一点是,JSP页面主要是用来呈现视图的,不要再其中套入大量的代码,要明确前端与后台的分工。
3.JSTL标签:JSTL标签就是JSP standard taglib,即JSP标准标签库,首先,EL表达式可以非常方便的取出Controller返回的View包含的Model,甚至都无需声明EL表达式。其次,JSTL标签可以实现很多的逻辑控制功能,比如最基本的c:if判断、c:forEach循环,甚至有更强大的c:choose,有了这些,我们可以大大简化代码量,JSP页面中用几十行java写的代码,有时用几句JSTL标签组合就实现了,此外,像fmt:parseDate和fmt:formatDate也是很好用的标签,用于日期的解析和格式化,此外JSTL更有强大的函数标签库fn:,项目中我也只用到了fn:length取后台传的list的长度。要善用JSTL标签,但是又不要完全依赖于它,JSTL标签很方便、快捷,但是切记,JSTL功能有限,不要完全依赖于它。
4.shiro框架:shiro框架是apache的一款面向java web项目的权限控制框架,这个框架无论前端、后台都十分好用,在前端,我们可以使用shiro强大的标签库,通过用户角色赋予用户不同的访问权限。譬如,如果一个系统的用户有访客、用户、管理员三种角色,我们就可以通过shiro标签来控制游客不能访问哪些内容,页面向用户和管理员呈现的不同内容,这就是shiro标签的神奇之处。
5.sitemesh框架:这个主要是用来将所有页面套用固定格式,用以页面的复用,其实有些时候标签更为方便,而且sitemesh框架的内存开销是的二倍,还会导致拦截器出现一些莫名的bug,所以并不推荐使用。
6.jquery:在这个项目中写了很多的jquery代码,发现jquery确实是个神奇的东西,jquery的神奇之处就在于jquery强大的选择器可以方便的取到页面的DOM元素,并且给这些元素绑定不同的事件,提到绑定事件,说一下on、live和bind的区别:bind是jquery最早的绑定事件方法,on是jquery 1.7.0以后才有的方法,bind和on都不能将事件绑定给DOM加载完毕后后添加到页面的DOM元素,这时就需要live了。还有一个经常使用的就是jquery的ajax了,其实在做这个项目之前自己一直不理解ajax的作用机理,只是心里又个概念而已,但是,在真正使用的ajax之后,才发现ajax的强大之处,确实如AJAX自身描述一样,异步加载javascript,这就允许我们在不打开新页面的情况POST一些参数给后台,后台得到并处理这些参数后将JSON返回给前端,这个JSON的处理function就写在ajax的success处理function中。在这个项目JSON和AJAX最主要的应用就是翻页,加载一个页面,把页面传给后台然后把得到的JSON呈现给用户,翻页时重新POST参数,然后在用js重新处理一下翻页区域即可。
7.jquery.validate.js:这是一个轻量的jquery框架,主要用于表单的验证,非常方便。
8.twitter bootstrap.js:bootstrap自带的js框架,里面定义了许多与bootstrap样式相关联的函数,使用起来也很方便。
9.正则表达式:正则表达式的模式匹配是很强大的,灵活运用正则表达式,也会简化代码,甚至我们在查找替换时都可以使用正则表达式。
达内web前端简历模板
个人信息
所求职位:网页设计/web前端设计
期望薪资:3000-5000元/月
目前职位:网页设计/网站制作
学 历:大专
工作经验:3-5年 现居住地:广州天河天河公园
联系电话: 电子邮箱:
精通HTML、JavaScript、CSS,熟悉网页设计、商城网站整站制作;
精通Photoshop、Flash、Dreamweaver等软件。
工作经验
信阳天勤科技
20xx-8 至 20xx-2任职网页设计/制作薪资-3000元/月
工作职责:完整的网站开发与建设(程序和美工)负责网站规划、设计、制作。武汉旌麾策划设计机构20xx-3 至 20xx-12任职网站策划薪资3000-5000元/月
工作职责:负责网站规划、设计,包括企业站、商城。广州网纪商务服务有限公司-1 至 现在任职网页设计/网站制作薪资3000-5000元/月
工作职责:
1.淘宝商城装修;
2.完整的商城、企业站制作(含美工及程序);
3.公司技术支持及网络维护
教育经历
20xx-9 至 20xx-9北京新亚研修学院计算机综合性学习专业
20xx-9 至 20xx-7信阳新华电脑学校Web应用程序网站开发与建设学习专业
语言能力
英语:一般
自我评价
关键词:Web前端,开发技术,优化方向
1 Web前端技术的体系和其工作性质分析
在Web前端技术相关的体系中有3个具有支柱性质的关键性因素, 分别是CSS、Java Script和HTML。这3种语言在Web前端技术构成中所扮演的角色是不同的, 虽然这3种语言解决的问题是不一样的, 但是它们之间还有着密不可分的联系。
想要针对Web前端技术进行优化, 并且确保优化后的Web前端技术能够更好的展开, 首先是需要相关工作者对Web前端的工作过程中涉及到的所有细节都需要详细了解, 只有在充分的了解的基础上, 才能够对Web前端进行优化, 并取得良好的效果。
现阶段的网络环境中, 大多数都是B/S结构, 所以应把任务重心放在对用户浏览器进行有关的分析, 是最为贴近现阶段的互联网网络环境特征的。用户获取信息的过程, 一般情况下是, 在浏览器上对服务器进行页面展开请求, 然后输入用户想进入的网址, 通过DNS服务器对输入的域名进行解析, 最后进入网址, 以便解决用户对访问的要求。在这些基本的操作基础上, 用户的浏览器向服务器进行相关的HTTP的请求, 服务器接收到HTTP的请求时, 会依据请求来确定对应的文件信息。而Web服务器在当前的过程中依据相对应的内容和相关的URL参数, 对数据库的相关文件实现使用, 并最终满足用户的最终需求。
HTML形式的文件在浏览器生成之后, 服务器会执行用户对于浏览器的相关请求然后将完成, 有效的HTML形式文件传送到用户使用的浏览器当中, 同时浏览器也会接受服务器中的有效文件。在这一系列的操作中, 不论是用户对网址的输入, 还是DNS的每次请求, 都势必会花费用户的时间, 而技术人员进行优化的最终目的就是使用户的体验满意度增加, 那么, 在输入网址到获得信息中间的各个过程都是技术人员可以考虑进行优化的地方[1]。
2 Web前端技术优化工作重点分析
传递消费者所需要的信息, 以此来满足消费者的需求, 是页面存在的核心价值, 在当今互联网的大环境下, 如果消费用户获取需求信息和等待信息呈现的用时过多, 或者所需信息的展开效果不够好, 这就必然会对消费者的体验产生影响。而从互联网网络提供信息这一角度来分析, 这就是没有将信息本身具有的高效性进行良好的体现, 从客户对于提取的信息角度来看, 这种获得信息的状态会对信息对称环境造成不良影响, 如果情况相比较严重可能还会影响到这些信息在相关社会行为的使用。
根据以上出现的问题, 对于Web前端技术进行相关的优化和互联网页面信息展开的体验进行切实的提升, 从而实现信息的价值。总而言之, 相关工作人员可以从以下几个方面对Web前端进行更新, 更新技术人员应将以下几点当作更新目标, 将Web前段进行更好的优化。
2.1 关于HTTP优化的请求
技术人员针对HTTP的请求进行优化, 主要是针对不必要的、消耗时间的请求应当进行减少, 这是可以提高全部的Web前端技术体系的工作重点和首要的职业。一个完整的HTTP的请求, 其中包括很多方面, 比如, DNS寻址、双方间数据的传送、服务器与浏览器之间创建连接等等许多环节。而这许多环节中的每一个, 必然都会需要一定的时间来完成, 每一个细节所需要的时间进行相加, 就是消费者在展开信息前所需要的时间, 这些时间会成为用户端的时间成本, 同时也是对数据通路商的宽带资源的一个消耗。因此对时间上进行的优化是无需质疑的, 那么技术人员对HTTP请求时的数量就必须进行有效的控制。常用的做法是将多个的CSS文件和Java Script文件集合成一个有效文件, 确保在一次操作下对多个文件进行打开;同时也要在图片地图方面进行优化, 技术人员可以考虑, 在图像上的不同区域注入不同映射的连接;而对于网页中需要的内联图像, 要尽可能的保持图像能够与文本一同下载并显示出来。
2.2 对其文件的规模上进行优化
针对文件的规模这一方面进行优化, 技术人员需要进行的工作是较为琐碎的, 其中主要的工作内容是CSS文件和Java Script文件他们所涉及的代码进行展开相应的优化, 其所开展的工作主要是对一些可以不用存在的HTML标签进行相对应的删除, 以避免其存在联式或是样式这两方面, 以达到优化的效果, 除此之外, 另外还有一项不能忽略的工作就是对CSS的研究。
2.3 对其内容上进行优化
对于内容的更新, 工作人员主要可以从样式表和Script开始着手, 可以将样式表放在顶部, 同时将Script放在底部。因为CSS具有层叠性和覆盖性的特征, 所以通常的情况下, 浏览器会在对所需文件加载完成后, 再来考虑进行工作渲染。所以想要实现对于Web客户端的更新, 可以从CSS本身加载方面来考虑。另一方面, 将Script放在底部的主要原因, 是为了防止Script脚本在执行期间对当前页面产生了阻碍导致下载速度的缓慢, 进而使页面及其相关组件下载速度过慢, 页面加载的时间过长, 等等问题的产生[2]。
2.4 最大程度的减少DNS的使用次数
DNS是导致消费用户等待时间过长的另一大原因, 通常解析一次DNS大概需要20ms~120ms的时间, 如果DNS的解析请求过去频繁, 就会导致消费者等待的时间变长, 降低信息传输的质量。更重要的是, DNS查询本身就是浏览器可以进一步完成工作的基础, 所以, 技术人员针对DNS查询请求次数要进行有效的控制, 对于Web前端技术来说, 对其的优化的作用也是十分关键的。
2.5 对重定向的有效避免
这个也是造成消费用户等待的时间太长的原因之一, 导致它产生的原因比起其他几个原因相对复杂一些。每一次的重定向都会导致页面增加一次对Web请求。针对这一原因, 技术人员可以考虑一下在Web目录后面添加“/”, 保证对重定向的有效避免[3]。
3 结论
Web前端的技术开发的优化水平, 这是影响消费用户的自身体验的关键, 所以这需要引起运营商对此的重视和注意。此外还需要对这些已经出现的问题, 进行有针对性改进和优化。只有技术人员不断的在实践工作中对相关领域进行学习, 同时根据实际情况积累经验和技术, 并且对页面的工作状态进行观察, 从多个角度入手, 才可以达到Web前段技术优化能够取得良好的效果。
参考文献
[1]陈鲱.Web前端开发技术以及优化方向分析[J].新媒体研究, 2015 (7) :39-40.
[2]曹刘阳.编写高质量代码:Web前端开发修炼之道[M].北京:机械工业出版社, 2010.
块级元素
块级元素生成一个元素框,(默认地)它会填充其父级元素的内容,旁边不能有其他元素。换句话说,他在元素框之前和之后生成了“分隔”符。我们最熟悉的HTML元素是p和div.行内元素
行内元素在一个文本行内生成元素框,而不会打断这行文本。行内元素最好的例子就是XHTML中的a元素。strong和em也属于行内元素。这些元素不会在它本身之前或之后生成“分隔符”,所以可以出现在另一个元素的内容中,而不会破坏其显示。
注意,尽管“块”和“行内”这两个词与HTML和XHTML中的块级和行内元素有很多共同点,但也存在一个重要的差别。在HTML和XHTML中,块级元素不能继承自行内元素(即不能嵌套在行内元素中)。但是CSS中,对于显示角色如何嵌套不存在任何限制。
恩,还是不能把CSS跟XHTML完全的分开谈,没办法。现在大家了解了什么是块级元素和什么是行内元素了吧。还是回过头来接着说我们的结构化吧,以上讲了这么多,我都是在讲XHTML标签要结构化,所以基本跟CSS关系不大,那么我们下面看看我写的这个页面的代码在没有CSS的情况想,是否结构清晰吧:
看看,页面是不是依旧很清晰,很容易看出,哪里是标题,哪里是导航,哪里是搜索表单?呵呵,其实我这么给大家看的页面,跟我们的搜索引擎查看页面的结构很接近了,到这里大家可能体会到一些搜索引擎友好的意思了吧?
其实让我们看看这个页面的DOM数状图,可能我们对一个简洁合理的结构化布局的页面有更直观的了解。
看看,是不是做到了我说的:XHTML标签充分的语意化、尽量少的嵌套、页面里基本只显示用户需要看的数据、对搜索引擎友好(没有CSS支持时,浏览页面时同样清晰,层次分明,十分容易查看的数据。),已做了基本的SEO优化
呵呵,说到这里我才回答了“怎样的一个页面才算是合理的布局的呢?”,做到上面4点,我个人觉得这个页面就已经做到了合理布局。而至于说要通过W3C的XHTML语法验证,只是很基础的开始。一个通过验证的页面和一个合理布局的页面是两码事的。这里我再罗嗦一下,我一直都在说的是个人认为如何才算是一个合理布局的页面?要达到什么要求才能算合理布局?因为只有理解了这个,之后的CSS的技巧(浏览器的兼容处理等)都是围绕着让XHTML页面布局更合理来进行的。而不是单纯做到各个浏览器下都显示正常(一致)。所以请记住在开发时做到:
1.XHTML标签充分的语意化 2.尽量少的嵌套
3.页面里基本只显示用户需要看的数据(我们用CSS直接控制用户需要看的数据的显示的样式)
4.页面对搜索引擎友好(没有CSS支持时,浏览页面时同样清晰,层次分明,十分容易查看数据。),已做了基本的SEO优化
1.参与SCRUM敏捷开发实践,负责平台和产品的开发工作;
2.参与前端框架开发、通用组件方案制定、性能优化等相关工作;
3.协同制定前端统一标准,推动工程化,自动化和工具化建设;
4.负责前沿技术研究和新技术调研。
岗位要求:
1.3年以上相关工作经验,有强烈的技术研究精神;
2.深入了解Vue/React等至少一款前端开发框架,具有Vue全家桶开发经验者优先;
3. 熟悉less/sass等至少一款CSS框架,熟悉webpack等构件工具;
4. 具有2年以上移动端页面开发经验,熟悉SPA及MVVM开发模式;
5. 有hybrid模式开发、微信页面开发经验者优先;
6. 具备良好的交流沟通能力和团队协作能力,思路清晰;
7. 富有责任感,有积极性,有职业规划,热爱技术,并且能够自主学习新知识;
1 减少HTTP请求
浏览器和服务器之间通过HTTP协议相互通信,HTTP响应包含状态码、头和响应体,即便请求返回的内容为空,请求也依旧包含大量的头部信息[2]。根据黄金法则,改善页面呈现时间最简单的途径就是减少页面中组件的数量,并由此减少HTTP请求的数量[3]。
1.1 合并静态文件
网站中的静态文件主要包括脚本和样式表,如果遵循软件工程的思想和模块化原则将代码分割成多个小文件,则会降低浏览器的性能,因为每个文件都会导致一个额外的HTTP请求。如果将多个文件合并到一个文件中,可以减少HTTP请求的数量并缩短最终响应时间,提高网站性能。常用的实现方式如下:
在combo.php中获取所需的文件名并进行合并,一次发送到客户端。这种方式大大的降低了HTTP请求数,同时也减少了URL代码量,这对于Web性能优化来讲至关重要。同时也不会对原有文件的部署产生影响,开发人员人可以采用原有模式进行模块化开发。
1.2 CSS Sprites
CSS Sprites是将页面中一些背景图片合并到一张单独的图片中,配合使用CSS的“background-position”和“background-repeat”属性将背景图片放置到HTML元素期望的位置上,其中“background-position”可以用数字精确的定位出背景图片的位置。
使用CSS Sprites大大减少了页面对图片的请求数目,能够有效的减少HTTP请求的数量。但也同时增加了开发人员合并图片的时间成本,后期的维护成本也同样会增加。
2 减少网络传输量
除了减少HTTP请求的数量,也可以通过减少每次HTTP请求产生的响应包的大小来加快响应时间。
2.1 使用Gzip压缩
Gzip是GNUzip的缩写,它是一个GNU自由软件的文件压缩程序[4]。HTTP协议上的Gzip编码是一种用来改进Web应用程序性能的技术,目前被绝大部分Web服务器和浏览器支持。在服务器端启用Gzip后,一般能够将HTML文档、样式表和脚本等文件的大小压缩至70%左右。
2.2 压缩静态文件
在Java Script脚本和CSS样式表中,通常包含大量的空格、换行符和注释等。这些内容对于页面来讲是没有作用的,而且会增大文件的体积,影响网络传输。为此,可以利用一些方法和手段在产品上线前,对静态文件进行压缩,压缩的原理主要有以下几点:
1)压缩多余的空格和换行符;
2)删除注释;
3)把Java Script中较长的变量名和方法名统一替换为较短的名称;
成熟的压缩工具有很多,例如老牌的JSMin和YUI Compressor(简称YC),它们都可以用来压缩脚本文件,YC还可以处理CSS。Google Closure Compiler(简称GC)是Google推出一款脚本压缩工具。GC与YC的不同之处在于YC只是一个压缩器,而GC更像一个编译器,也就是说GC的压缩并不仅仅是去除注释和空白,还可以在保证代码正确性的情况下进一步改写代码,压缩效果更高。
2.3 最小化HTML
在网页的HTML文档中也通常会包含大量的空格、换行符、注释,一般来讲这些内容对页面的展示是没有作用的,因此在将HTML发送给客户端之前可以采用相关技术移除这些没必要的字符以减少网络传输量。但是压缩HTML也是存在风险的,例如pre标签里的空白符是不能去除的,IE条件注释也是不可以删除的。不过在特定系统中,风险可以规避或者通过测试排除。
2.4 使用缓存
浏览器缓存是为了加速页面浏览速度,浏览器在用户磁盘上对最近请求过的资源进行存储,当访问者再次请求这个页面时,浏览器就可以从本地磁盘读取文档,这样可以减少HTTP请求数量和响应的大小,使Web页面加载得更快。因此合理配置缓存,将会对用户浏览速度有很大的提升。
2.5 减少Cookie,采用服务端Session
在每次浏览器与服务器发生通信时,HTTP的头部都包含了Cookie信息[5],在有些请求中这些Cookie是有用的(例如验证是否登录),有些则是没有必要的(例如请求图片)。Web页面中通常包含大量的图片,每次请求图片都会包含该域所有的Cookie,如果Cookie过大的话,这将增加很多没有必要的通讯内容。为此,通常采用的策略是减少Cookie,采用服务端Session;另一种策略是通过合理的划分主域将静态文件(图片、脚本、样式表等)放到无Cookie的域下。
3 浏览器渲染
3.1 将样式表放到顶部
浏览器渲染页面的过程是流型的,即对HTML文档边加载边匹配样式表进行渲染。如果将样式表放在文档底部会先在加载HTML最后进行渲染,这会导致在浏览器中阻止内容逐步呈现的过程。因此将样式表放在顶部head标签内更有利于页面渲染。实际上这一原则对页面实际的加载时间并没有影响,其影响的是用户的感觉。
3.2 将脚本放到底部
浏览器加载组件的方式有两种,一种是并行,另一种是阻塞方式。并行的方式是明显的,即可以同时加载多张图片或样式表。图1是测试页面加载资源的HTTP瀑布图,它显示了3种资源:一个HTML文档(index.php)、4张图片和一个Java Script脚本的加载情况。从中可以清晰的看到浏览器在加载“one.jpg”和“two.jpg”是并行的,再加载“base.js”时是阻塞的。浏览器加载并执行完“base.js”后才会加载另外两张图片。优秀的体验是让用户尽快的看到页面的视觉效果,并行的加载方式能够更快的将页面呈现给用户,因此将阻塞加载的Java Script脚本移至页面的底部,将会大大加快页面的呈现速度,这将很大的提升用户体验。
3.3 减少Reflow
在CSS规范中有一个渲染对象的概念,通常用一个“盒子”来表示,Mozilla浏览器通过一个叫做frame的对象对盒子进行操作。frame主要的动作有三个:
1)构造frame,用来创建Dom树;
2)Reflow,以确定对象的位置(坐标)、宽度、高度;
3)绘制,以便对象能显示在屏幕上。
总的来说“Reflow”就是载入Dom树,创建或更新frame结构的一种过程。通过减少Reflow的开销可以提高页面性能,通常采用的方法如下:
1)如果事先能够确定图片宽高,最好在HTML或CSS中指定;若未指定宽高,图片的载入会使页面Reflow,因为要根据图片宽高来更新frame。
2)使用“visibility:hidden”替代“display:none”。在编写一些常见的动态效果时,一般使用CSS的display来切换可见性,但这会产生reflow。把元素设置为display:none,相当于把这个元素的frame销毁了,再置回非none时,需要重新构造frame,这就产生了reflow。而另外一个切换可见性的属性visibility则不存在reflow问题。
3)一次性更改对Dom的操作结果。如下面的一段代码:
这种方式效率不高,因为每次调用append Child方法都会更改Dom树的结构从而产生Reflow。如果调整为下面的代码,则只会产生一次Reflow。
4 延迟加载
4.1 图片延迟加载
现在许多大型网站,一些图片是在拉动滚动条的时候才加载的,这样不但提高了用户体验,减少页面加载时间,同时也减少了不少http请求。为了减少页面首屏的展示时间,对图片进行延迟加载成为了常用的策略之一。所谓图片延迟加载,就是将屏幕之外的图片隐藏掉不让其加载,等到用户滚动屏幕时再加载响应的图片。代码如下:
隐藏图片的部分代码:
4.2 图片预加载
用户在浏览页面的时候,浏览器不是每时每刻都在工作的。如果能够根据分析用户习惯,预知用户操作,利用浏览器“空闲时间”将预知操作中所需的图片提前加载下来,这将会改善用户体验,提高页面性能。通过下面的方法可以将图片预先放到浏览器的缓存当中,用户浏览页面时会大大减少等待时间。
4.3 内容延迟加载
Web页面中有许多内容是不需要在页面初次加载时就需要的,例如选项卡里的内容。当用户切换到响应的Tab时,再通过Ajax等异步方法加载内容,实现内容的延迟和按需加载。这种方法已日趋成熟,在很多大型网站中已大量使用,大大增加了用户体验性。
4.4 适时加载脚本和样式表
一张普通页面通常都会包括很多的脚本和样式表,大小一般都会在几百K,甚至更大。一般来讲某一时刻页面所需的脚本和样式表却很小,当用户的某些操作需要相关脚本或样式表时再去加载,这里就引出了另一个提高Web性能的策略,即使用Java Script动态加载脚本和样式表。
5 创新
社会和行业的进步需要都需要以技术创新作为驱动,技术创新是具有创造性的行为,必然会遇到未曾遇到的问题,这就带来了不确定性和风险,因此创新是需要勇气和智慧的。对于互联网也同样如此,2005年Ajax的出现,促使Web2.0时代的来临。近些年在Web性能优化上的主要代表应用有Facebook的Quickling、Page Cache、Big Pipe,以及Google的Chrome、SPDY、Web P等。通过技术创新也让他们获益匪浅,例如Facebook通过Quickling将所有的用户点击访问自动地转变成Ajax调用,避免了大量的服务器端重复计算和客户端的重复渲染。数据显示,使用了这个技术以后,加载时间降低了10%~30%,生成时间降低了20%~30%。
6 结束语
伴随着互联网的快速发展,网站的性能越来越受到重视。对性能优化最重要的是优化内容,但这不是本文的重点,本文主要是从减少HTTP请求、减少网络传输量、浏览器渲染、延迟加载和创新五个角度对Web性能优化的方法和策略进行研究。本文所述的方法和策略并不是十全十美的,绝大部分都是优点和缺点共存的,例如将图片放到无Cookie的单独域下,就会增加页面的DNS查找时间。取舍之间如何权衡需要开发者根据自身情况做出选择。
参考文献
[1]Steve Souders.High-Performance Web Sites[J].Communications of the ACM.2008,51(12):36-41.
[2]钱宏武.HTTP协议之前世今生——兼谈网络应用结构设计[J].程序员,2008(5).
[3]王保平.性能优化的简单法则[J].程序员,2009(9).
[4]陈鹤年,季文天,王成,等.支持Gzip压缩和编码转换的网络爬虫设计[J].电脑知识与技术,2010(30).
1、根据公司项目需求,负责多终端产品的前端设计、开发、优化、维护;
2、参与项目需求评审、与相关人员沟通、保证开发的质量和效率;
3、配合交互设计师及视觉设计师实现交互效果,配合后台工程师完成应用开发;
4、javascript程序模块开发,通用类库、框架开发。
5、能够带领5人团队完成产品的开发工作并保证软件性能,质量和安全;
任职要求:
1、大学专科及以上学历,计算机相关专业优先,5年及以上前端开发经验,2年及以上vue开发经验,有基于vue相关技术开发微信小程序和公众号经验,对符合移动端标准的前端开发有丰富经验,有成功作品;
2、精通javascript、es6编程语言,良好的OOP编程思想;
3、精通vue、vue-router、vuex、vue-resource等vue相关技术的应用;
4、熟悉bootstrap、sass、webpack、jquery等前端技术;
HTML和XHTML页面都是由“内容、结构、表现、行为”这4个方面组成的。内容是基础, 然后附加上去结构和表现, 最后再对它们加上行为。而为什么在“前端开发”火热的现在还提遵守WEB标准这个问题?我觉得有必要站在架构的层面, 也站在众多的、辛苦的网页制作耕耘者的立场上, 全局看待web标准。
没有统计数字也可以从现在的网页产品中看到, 国内几乎大部分的网页设计师没有遵守W3C标准。非标准化的应用, FLAS H眩目的动感, 可以帮你让领导认可, 让客户点头, 让自己的工作效率快快, 产品多多。大家在匆忙中忽视或是避让了标准和规范, 暂时忘记了真理才会永恒, 然而, 每一个设计师都有追求完美的心理, 他们永远对自己的作品不满足, 一定不会给自己打满分。在这个追求完美的过程中, 他们要到达目标, 其实就是前面的标准。也许, 当网页制作中的每个成员接近或是抵达这个目标时, 内心一定非常释然。
作为一名合格页面工程师, 要学会熟读标准, 认识和了解标准。要检验你的代码是否和标准一致, 要了解W3C标准的优势和用意, 假如用语言距离, 普通话让中国人彼此能够沟通, 英语让世界人可以沟通。W3C标准就是让页面在不同的终端都可以运行, 让使用各种终端的用户都能浏览你的页面, 也就是跨越平台, 获得更大众化的用户的认可。更像一个平凡的人走向优秀, 一个产品走向品牌。
落后的页面工程师体系, 美工代劳的页面代码, 唯有IE才能浏览的页面代码, 用图形工具直接导出的页面代码, 使大量流量消耗的页面代码, 速度慢的像蜗牛的页面代码……每次改版修改都要大动干戈, 一种让页面工程师和民工一样的页面代码!网页设计师多了, 站长多了, 但质量标准却越来越差。模仿得形似神不似的韩版界面, 让我们倍感失落。似乎想看到唯美一些的网站, 打开时总需要我们有足够的耐心去等待, 或者有足够的技术安装插件。WEB标准就是一场革命, 革命——就是推翻旧的落后的体制, 建立一个全新的先进的体制。这样, 我们才会有秩序, 才会和谐发展。
如何遵循标准, 其实标准有很多, 结构标准, 表现标准, 行为标准。选择标准规范, 就优先选择W3C推荐的标准。结构标准可选项, 建议选择适合你公司和团队的标准, 其实核心理念还是让项目统一遵循一个标准, 严格的XHTML是这样的。
XHTML的媒体类型是application/xh tml+xml, 而不是被大多设备都识别的text/html。增加xml头部声明还会造成IE6的q uirks模式。总得来说, 不是通用性很强的标准, 使用的时候需要舍弃W3C的一些说明, 改良后的应该是去掉xml声明, 去掉媒体类型是application/xhtml+xml。不要给你们团队的开发造成不必要的困扰。
建议选择XHTML1.0标准的过渡型, 如果你觉得XHTML过于花俏, 不适用, HT ML4.0的严格型也是很好的选择。HTML2.0已经被HTML5所取代, 看来HTML4还是更具有向后的延续性。
前端性能优化虽然是一个技术性话题, 但对于用户体验有着非常大的影响, 如果你的网站打开要等待三、五秒或者等到浏览器提示无法连接, 用户已经对这个网站产生了负面的抵触心理。更别提流量、品牌影响、用户忠诚度。
前端性能优化和web标准有什么关系?就是对你遵循web标准的一个补偿。前端优化给Web标准提供了一个检验的机会, 用“实践是检验真理的唯一标准”来判断标准化到底好不好, 对不对, 该不该遵守。为什么要这样做就可以提升速度, 这些与Web标准有没有某种关联或者因果呢?我们暂时把这些个条目分成三类:服务端运算优化, 传输优化, 客户端运算优化。
1、服务器端优化
服务器端就是对网站动态语言的执行 (asp, php) , 数据库查询、存储速度等, 总的来说就是输入/输出的运算。这些跟前端没关系, 但是却影响着前端。看不出来?那就自行优化服务器性能, 数据库性能, 多买点服务器扩容吧。提高域名的DNS解析速度。减少DNS的解析个数。相信以后还会有先进的技术来解决。
2、传输优化
这一类很烦, 首先是字节, 字节越小越好, 怎么能小下来, 最有效的方式就是Goog le的方案, 把首页做的极其精简, 图片、htm l、静态文件都非常小, 再就是缓存, 把文件放到本地缓存区读取。还有http请求数, 减少文件传输中的排队等待。
2.1 字节优化
减少冗余html, 用结构化、语义化的ht ml来体现, 行为、表现、结构分离, 独立的ht ml文件将变得很小。这点, 禅意花园做得真好!压缩文本文件, css, html, js去掉注释、空格、换行等。降低图片字节, 选择合适的图片类型, png-8非常好, 再用工具将图片进行压缩去掉, 比如png-8的压缩工具。用合适的图片尺寸, 不要再做菜鸟, 很不负责任的把大图控制一下宽高就用上了。gzip压缩一下, 减小服务器端传输到客户端时候的字节。flash文件和flash+xml的动态flash也减小字节。
2.2 缓存
服务器端配置一下, 提高缓存的命中率和把不经常修改的文件缓存了。Add Expir es headers、Etags、ajax使用get方式便于缓存。把能分离出来的css, js分离成外部文件便于缓存。使flash和xml文件可缓存。打通不同运营商的限制, CDN提高不同类型运营商的网络传输速度, 电信, 网通, 铁通, 教育网等等。
2.3 请求数
尽量减少文件请求数, 能合并到一起的合并一下, css、js、图片等, 减小排队等待和服务器端的开销。分域提高同时加载数, 优化排队等待。避免404无效请求数。避免重定向。
2.5 延迟加载和预载
把暂时不用的文件等主体页面加载完了再加载, 把用户稍后要看浏览的内容预先加载进来, 相册浏览就是很好的例子, 先用小图片放大再把大图展示出来, 看本张图片时把下一张预载进来等等。
3、客户端优化
(1) 讨厌的IE滤镜和CSS expressions少用, 小心把浏览器挂死, CUP被100%占用。 (2) CSS放到前面去, JS能放到后面的放在代码后面, 将页面尽早展示给浏览者。 (3) 减少I FRAME的使用, 这是一个不智之举。 (4) 减少DOM个数, 降低浏览器解析压力。 (5) 使用
而不是@import Choose
(8) 还有小图片的REPEAT背景会提高浏览器的CPU占用率。 (9) 合理的DOM排序, 把重要的内容代码前置, 优先加载。
除了这些, 虽然还有很多没对号入座的有关性能优化的条目, 但至少, 我们已经可以体验到网页工程师的工作是如此烦琐, 任务是如此艰巨, 需要对代码、文件、H TTP协议、缓存、服务器等内容或是技术达到精准的掌握和控制, 达到提供给浏览用户最最基本的体验, 那就是——访问速度。所有的幕后工作浏览用户是看不到的, 但不要因为他们看不到而放弃我们的目标——优化和遵守标准。Web标准的分离思想和结构化、语义化html促成了以上很多行为的实施, 这是美工时代所不能比拟的。只需要每个人的遵守, 相信WEB标准会引领我们进入一个新的时代, 想像那种境界美得像“潘多拉”一样。
摘要:国内几乎大部分的网页设计师没有遵守W3C标准。作为一名合格页面工程师, 要学会熟读标准, 认识和了解标准。要检验你的代码是否和标准一致, 要了解W3C标准的优势和用意。前端性能优化和web标准有什么关系?就是对你遵循web标准的一个补偿。
1.负责公司新产品或新功能的前端开发或小程序开发,提供流畅的体验和较好的扩展性;
2.参与前端系统的开发和工程优化;
3.参与对研发过程的改进及优化,持续提升开发效率;
4.线上系统的日常维护;
任职资格:
1.计算机或相关专业本科以上学历,应届毕业生;
2.熟悉HTML5/CSS3,响应式布局,CSS3动画效果;
3.熟悉JavaScript等前端技术,掌握面向对象编程思想,对js框架应用(如jQuery/Vue/React等)熟悉;
4.熟练使用git等版本管理工具,熟练使用PS等切图工具;
1、从事公司云计算产品相关业务平台的Web开发;
2、与APP、后台工程师合作,实现Web和交互方面的开发;
3、积极响应产品运营对Web交互的需求;
4、按照系统开发计划,协同其他同事一起工作,提交高质量的代码,完成工作任务;
5、学习并分享新的技术知识及心得。
任职要求
1、计算机、通信或相关专业,本科及以上学历,3年以上互联网行业开发经验;
2、精通Web前端技术,包括(X)HTML/CSS/JavaScript/Json/Ajax等,能解决各种浏览器兼容性问题;
3、掌握网站性能优化、服务器端的基础知识;
4、注重用户体验,喜欢不断重构优化代码,对可用性、可访问性等相关知识有实际的了解和实践经验;
5、具备良好的敬业精神,拥有强烈的进取心和责任感,工作细致踏实, 良好的团队协作精神
1 MVC模式与MVVM模式
MVC模式软件工程化设计中的一种规范, 它的思想是对软件的架构进行层次划分, 用来将数据、用户界面和业务处理逻辑相分离, 当用户界面或交互方式发生改变时, 不需要重写业务处理逻辑, 这样可以达到软件模块复用的效果。整个软件系统被分为Model (模型) 、View (视图) 和Controller (控制器) 三部分。其中, 视图 (View) 是软件的界面;模型 (Model) 是视图类所需要的数据, 例如表格需要显示的文字;控制器 (Controller) 连接视图类和模型类, 其任务是使数据 (Model) 显示在视图 (View) 上。MVC架构图如图1所示。
在MVC架构模式中, 各部分之间的通信过程为:View传送指令到Controller;Controller完成业务逻辑后, 要求Model改变状态;Model将新的数据发送到View, 界面得到更新。在上述过程中, 每个步骤的通信都是单向的。
MVC框架的出现, 使系统各层任务明确、逻辑清晰, 提高了代码重用性, 并降低了后期的维护成本。
MVVM是在MVC模式上进一步发展的产物, 它的全称是Model View View Model。该架构最初是由微软的Martin Fowler提出, 它的关注点在能够支持事件驱动的UI开发平台。MVVM模式的核心是对View和View Model进行双向数据绑定, 当View Model的状态发生变化时, 这种变化可以自动传递给视图View。MVVM模式架构图如图2所示:
MVVM架构如图2所示。其中Model仅仅只是代表应用程序所需的数据信息, 它不关注任何行为;View是软件中与用户进行直接交互的部分, 它需要响应View Model的事件并格式化数据, 不负责控制应用的状态;View Model用于封装业务逻辑层, 这点类似于MVC模式中的控制器, 它控制View的很多显示逻辑, 它可以把数据模型的变化传递给视图, 也可以把视图中数据的变化传递给数据模型, 即在Model和View之间建立了双向绑定。
2 前端MVVM框架的运行原理
本章将以Vue.js为例, 讲解前端MVVM框架的实现原理。Vue.js是目前前端开发领域很火的一个框架, 它是对MVVM架构模式的一个实现, 通过双向数据绑定连接视图层和数据模型层, 而实际的界面UI操作 (DOM操作) 被封装成对应的指令 (Directives) 和过滤器 (Filters) 。Vue.js的原理如图3所示:
在Vue.js的架构图中, Observer相当于观察者模式中订阅者对象的代理, 它的主要作用是监听数据模型的变化, 并将数据变化通知给订阅者;Compile是一个编译器, 它的作用是对视图 (Web前端中即HTML元素) 中绑定的指令编译解析, 根据定义的动态模板将指令替换为最终展示给用户真实数据, 同时它还用于绑定界面对应的更新函数;Watcher是订阅-发布模式中订阅者的实现, 它的作用是订阅数据变化的通知来执行指令所绑定的回调函数, 同时Watcher还充当了连接监听器Observer和指令编译器Compile的桥梁;Dep的角色相当于一个消息订阅器, 它的主要作用是维护订阅者Watcher的信息, 当系统中的数据发生变化时出发通知函数 (notify) 并调用Watcher的更新方法 (update) 来进行视图的更新。
当新建一个Vue对象时, 框架进入初始化阶段。Vue在初始化阶段主要执行两个操作:一是遍历系统中数据的所有属性, 来对各个属性的变化添加监听;第二个操作是利用指令编译器Compile对视图中绑定的指令进行扫描进行视图的初始化, 然后订阅Watcher来更新视图, 此时Watcher会将自己添加到消息订阅器Dep中。至此, Vue的初始化过程结束。
在系统运行过程中, 一旦系统中的数据模型发生了变化, 观察者Observer的setter访问器属性就会被触发, 此时消息订阅中心Dep会遍历它所维护的所有订阅者, 对于每一个订阅了该数据的对象, 向它发出一个更新通知, 订阅者收到通知后就会对视图进行相应的更新。以上过程不断往复循环, 这就是MVVM模式在Vue.js中的运行原理。
3 前端MVVM框架实现的关键技术
前一章节中以目前比较火的框架Vue.js为例介绍了前端领域中MVVM模式的实现原理, 本章将针对上述原理图, 深入分析前端MVVM框架实现的关键技术。主要包含以下几点。
(1) 数据变化的监听。
在Web前端中, 数据变化的监听主要通过对象的访问器属性来实现。访问器属性是通过Object.define Property () 方法来实现, 它不能直接在对象中进行设置。具体使用方法如下:
通过上述方法即给对象o设置了访问器属性, 当使用o.prop A语句获取对象o的prop A属性时, 内部的getter就会被自动调用;当使用o.prop A=some Value来对对象o的prop A属性进行赋值时, 内部的setter访问器就会被自动调用。可以在setter和getter访问器属性被自动调用时来进行一些逻辑处理, 这样就实现了对数据变化的监听。
(2) 双向绑定的实现。
双向绑定即将视图View和数据Model进行相互关联, 使一端的变化能同步反映在另一端。在前端中, 这主要通过上一小节中介绍的对象的访问器属性和HTML元素的事件监听来实现。
例如, 对于一个输入框视图<input type=’text’id=’my Text’/>, 要将其与数据对象o的prop A属性进行双向数据绑定。则可以按照如下的步骤来完成:
(3) 发布-订阅模式[3]的应用。
上述介绍了简单的一对一双向绑定的实现, 即一个数据模型只与一个视图进行绑定。当多个View与一个Model进行绑定时, 每次更新Model时需要在Model的set访问器属性中更新多个View, 这样硬编码的方式不利于后期的维护。为了解决硬编码带来的耦合性过强的问题, 在实际实现中, 需要使用到设计模式中的发布-订阅模式。
发布-订阅模式 (又称观察者模式) 是一种常用的设计模式, 该模式包含发布者和订阅者两种角色。可以让多个订阅者订阅同一个发布者发布的主题, 当发布者的主题发生变化时, 对外发送一个通知, 所有订阅了该主题的订阅者都会接收到更新的消息。因此, 观察者模式定义的是一种一对多的关系。
可以看到, 发布-订阅模式非常适合于MVVM双向绑定中多个视图绑定到同一个数据模型的情形。通过将视图看作一个观察者对象, 如果该视图与某个数据进行了双向绑定, 则将其加入到数据模型的订阅列表中, 当数据变化时, 这些视图就能得到通知以进行更新。
(4) 使用Document Fragment[4]优化性能。
在某些情况下, 当数据发生改变时可能需要动态生成界面元素 (HTML标签) 并插入到视图对应的位置。如果生成的数据量较大时 (例如根据数据生成一个很大的列表, 然后将列表逐条插入到页面中) , 会引起页面多次重绘而影响性能。这种情况下, 可以使用DOM (Document Object Model) 中的文档片段对象即Document Fragment来提升性能。
Document Fragment即文档片段, 在片段其中可以含有多个子节点, 因此文档片段的作用相当于是一个节点容器。在将文档片段插入到HTML页面中时, 只有它的子节点会被插入目标节点。由于文档片段中的节点操作都是在内存中执行完毕后一次性插入到DOM中, 而不是逐条插入DOM, 因此它的性能和速度比直接操作其中包含的子节点要有很大提升, 这是Web前端性能优化很重要的一种方法。因此, 当多个视图元素被插入到界面中的同一位置时, 可以先将它们都挂载到一个文档片段, 经过处理后, 将整个文档片段返回插入挂载目标。
4 结语
随着前端的快速发展, 无论是用户界面还是业务处理逻辑都变得越来越复杂, 使用原生Java Script或j Query去操控DOM变得越来越不现实。MVVM模式的出现, 让开发者只需要控制一个View Model并结合动态模板来显示界面, 复杂的Web应用程序可以在不需要传统的元素选择器的情况下做到简单可维护。框架的学习固然有一定的成本, 但是当Web应用的功能和复杂度达到一定的程度时, 使用优秀的MVVM框架反而在总体上会更节约成本。
摘要:MVVM架构[1]模式是在经典的MVC模式[2]上发展起来的一种架构模式, 这种模式主要用于构建基于事件驱动的UI平台, 对于前端开发领域中数据与界面相混合的情况特别适用。笔者首先介绍了传统MVC架构并将它与MVVM架构模式做了对比研究, 然后基于目前前端开发中一个比较火的框架Vue.js, 详细介绍了前端MVVM模式的工作原理, 最后详细分析了前端MVVM框架实现的关键技术。
关键词:MVC,MVVM,VUE,Web前端
参考文献
[1]刘立.MVVM模式分析与应用[J].微型电脑应用, 2012, 28 (12) :57-60.
[2]许鑫, 费翔林.基于MVC模式的应用软件开发框架研究[J].计算机工程与应用, 2005, 41 (30) :102-104.
[3]张宁, 王越, 王东.观察者模式及其在软件开发中的应用[J].大众科技, 2008 (11) :35-36.
【web前端开发个人简历】推荐阅读:
web前端简历06-23
前端开发实习工作计划10-26
前端开发述职报告范文10-28
web前端面试题10-30
web开发实习报告范本10-27
数字电视前端播控技术09-25
技术开发人员简历06-02
软件开发专业简历07-17
数据库开发电子简历06-08
游戏开发工程员求职简历07-24