75秒极速赛车|秒极速赛车|秒极速赛车|秒极速赛车

2019-03-20 11:20:47分类庆:Web应用开发3708

  对于Web开发者而言协喊淑,除了具拥有精湛的开发技术外的垂退,还应具备一些软技能弄。而针对富Web应用临,开发者应该注意哪些要点呢?小编认为如何让用户以最快的时间获得想要的数据尤为重要吮,开发者应注重以下七大原则捶诗搓。

  网络上有关Web开发未来的热门讨论有很多豢,比如磊擒胁:JavaScript能否替代实现诸如历史记录暮汀霉、网页浏览为亭堡、页面渲染等浏览器功能?开发者应该放弃后端少夺青,直接进行HTML渲染吗?单页面应用会流行起来吗?

  要解答上述问题如,我会尝试以JavaScript为突破口滤盟旦,从用户体验方面进行考虑;如何能让用户以最快的时间获得想要的数据是我最为看重的肚钠。
 

Web应用开发
 

  1滩胖、服务器渲染是必须的

  目前有个比较错误的分立观点你浮:“服务器渲染与单页面应用的对立淌汇伶。”如果我们真的想最大程度地提升用户体验和性能革坛,把这两者区别对待和嫁、互为排斥都不是好的解决方法钵。

  首先步,当进行页面传送时廖,互联网连接本身有个理论速度限制蔽壳。地理位置上两点间的传输速度受到地域森脸窗、带宽讽储、路由等因素影响;减少两点之间往返的通讯次数显得尤为关键喷巫。一个足够灵活的系统应当能够均衡好浏览器端和服务器端的代码渲染工作窝,减少网站和网络应用之间的差别经漠。

  2瘟沫、即时响应用户输入

  当用户访问某个网站时倍人,每个交互动作都应该尽量做到少延迟肖壳逃、快响应糯。

  在HTML中文档的连接是透过超链或标签完成的狈籍。当点击这些链接时村抽,浏览器会发送一个请求沟形,这个请求被接收和响应前的用时是无法确定的密腻。相反咕,JavaScript能够针对用户输入做出即时的响应芦磨。例如谷歌或百度胁,现在我们在其首页进行输入时埔虎惟,不用点击搜索或确定匈伐,浏览器会自动进入搜索结果页面;还有就是智能提醒幻滴,边输入边提醒的功能也是非常人性化的寞。

  3酬、响应数据/状态变更

  现在无论是采用传统的页面刷新还是AJAX交互来对静态页面执行更新都显得稍稍落伍了鲁。目前更好的做法是自行更新(self-updating)圭拉地。

  如果有款应用同时打开了多个标签/页面污沛,如果用户进行了登出操作吧,所有已打开的标签都应该能同时失效溉。要想做到类似的自行更新光龋,状态协调(state reconciliation)是需要多加考虑的醒挟烙。在只是更新少量数据的参合裸娠,我们往往很容易忽略了长时间连接中断后该如何让程序作出正确响应程丁弊。比方说休眠电脑数天后再打开伶,我们的程序该如何对这个状态(如机器状态标识码)进行处理呢?如果我们想在初始页面传送数据摊仆,在客户端脚本装载前必须确保数据是可访问的揩。一旦发生连接中断骇,脚本建立的初始连接必须能够进行会话恢复吨峦。
 

Web应用开发
 

  4菩韭烫、控制与服务器的数据交换

  在万维网中蜕算,客户端和服务器端的数据交换一般限于已下几种形式猛凯惹:

  点击连接穆炯,GET获取了新的页面示,然后渲染这个页面;

  通过POST或GET提交表单槐本鼻,然后渲染新页面;

  异步装入一个图像或对象散掳,然后渲染它奉取。

  其中雌嚼盒,上述第二种方式最容易出问题答轨。从性能角度来看蔫,不断触发新页面来发送数据是个效率极差的做法讹蕾茎。

  现在网络上有丰富的APIs(如XMLHttpRequest,EventSource)不但能帮助我们很好地控制数据流向谜铜,同时能帮助增强用户体验损,如表单的填写涡、发送苛。

  如前述的状态协调盼号扇,如果程序检测到连接中断后庙蔡茅,把数据暂存起来将能帮助日后的会话恢复氮痴奖。服务工作器(Serviceworker)的引入在这时就变得非常重要了坛讽。它能够让JavaScript Web应用在后台运行翱膊。即使程序没有开启楼绊,我们仍然能够在后台同步用户数据靶侵妈。

  5刚茬碾、增强历史记录处理

  一般来说顾旱昂,页面状态的过渡依赖于URL的变更;这给我们带来了增强历史记录管控的机会柬橇虫。

  例如婪琶膝,我们通过手机应用查看商品时容骚颂,发现了心仪物品仇揽澄,一般情况下如果这时候进行购物车操作都会中止当前界面的访问;购物完毕后点击返回朔鹊,如果先前已经翻看了很多页并滚动到某个位置改颗,如果这时能根据历史记录准确地返回之前的位置曹死工,用户会对此非常赞赏的泥。再譬如成,我们填写了某个表单司笔,如果发送失败愁晃,点击返回后能自动帮助用户把已经填好的数据进行恢复割竣储,这也是能极大增强用户体验的诺坛哇。

  6穷、推进代码变更

  如果程序的代码发生变更菠沮现,采用什么方法来使客户端对此做出正确响应是很重要的线膊。

  一个好的代码更新推送机制是如果发现有新的版本兔光疤,能够及时提醒客户端对此进行选择处理据铃豹。又或者是在HTTP请求的头部信息中附加版本号信息枷迷,让服务器针对版本号作出正确处理书。

  更好的一个处理方法是进行热代码重载(hot code reloading)忙。它的意思是不需要对整个页面进行刷新顽软删,而只是对变更关联部分或模块进行在线更新梧识胁。这需要对全局影响进行全面评估普辨,防止部分模块更新后出现其它异常僚赣。

  7山县戈、预先感知

  一个丰富的JavaScript应用能够有效识别用户输入并做出预感反馈瘦梦。

  典型的例子是当鼠标悬停在某个链接时内侧锭,服务器已经开始着手准备数据羔败筐,这将极大地减少渲染新页面用时蒙校。还有就是能针对鼠标动作做出交互反浪┙奘?,如移动少啡,碰撞身篡拧,移出/入等秒。

上一篇镣疾畔:下一篇叭淑窟:无
澳洲快乐8 澳洲快乐8开奖 澳洲快乐8开奖结果 澳洲快乐8官方网站 澳洲快乐8官网 澳洲快乐8网站 澳洲快乐8计划 澳洲快乐8 澳洲快乐8 澳洲时时彩 澳洲时时彩 澳洲时时彩开奖 澳洲时时彩开奖结果 澳洲时时彩官方网站 澳洲时时彩官网 澳洲时时彩网站 澳洲时时彩计划 澳洲时时彩 澳洲pk10 澳洲pk10 澳洲pk10开奖 澳洲pk10开奖结果 澳洲pk10官方网站 澳洲pk10官网 澳洲pk10网站 澳洲pk10计划 澳洲pk10 澳洲幸运5 澳洲幸运5开奖 澳洲幸运5开奖结果 澳洲幸运5官方网站 澳洲幸运5官网 澳洲幸运5网站 澳洲幸运5计划 澳洲幸运5 澳洲幸运5 澳洲快三 澳洲快三开奖 澳洲快三开奖结果 澳洲快三官方网站 澳洲快三官网 澳洲快三网站