阅读更多

4顶
0踩

Web前端

原创新闻 富Web应用开发的七大原则

2014-11-12 09:53 by 正式编辑 cao345657340 评论(3) 有8270人浏览
摘要:针对富Web应用,开发者应该注意哪些要点?原文作者Guille认为如何让用户以最快的时间获得想要的数据尤为重要,开发者应注重七大原则,包括:服务器渲染、即时响应用户输入、响应数据/状态变更、增强历史记录处理等。
【编者按】对于Web开发者而言,除了具拥有精湛的开发技术外,还应具备一些软技能。而针对富Web应用,开发者应该注意哪些要点呢?原文作者Guille认为如何让用户以最快的时间获得想要的数据尤为重要,开发者应注重以下七大原则。
译文如下

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


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

1. 服务器渲染是必须的

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

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

2. 即时响应用户输入

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

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



只要在Google搜索栏敲任何一个键,都会直接跳入搜索结果页面

3. 响应数据/状态变更

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

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



4.控制与服务器的数据交换

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



    [1]点击连接,GET获取了新的页面,然后渲染这个页面;
    [2]通过POST或GET提交表单,然后渲染新页面;
    [3]异步装入一个图像或对象,然后渲染它。


其中,上述第二种方式最容易出问题。从性能角度来看,不断触发新页面来发送数据是个效率极差的做法。例如下面这个曾经令人抓狂的错误:



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

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

5.增强历史记录处理

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



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

6. 推进代码变更

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

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

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

7. 预先感知

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

典型的例子是当鼠标悬停在某个链接时,服务器已经开始着手准备数据,这将极大地减少渲染新页面用时。还有就是能针对鼠标动作做出交互反馈,如移动,碰撞,移出/入等。



这是一个用jQuery实现的感知鼠标动作的例子

写在最后:

Web仍然是当前信息传播的最重要媒介之一。当我们不断为页面添加动态交互的同时,我们必须确保新技术能很好地做好承上启下的角色。JavaScript是开拓新局面的当头先锋,随着其使用得更为广泛更为深入,用户体验也会迈进新的台阶。
  • 大小: 44.5 KB
  • 大小: 91.2 KB
  • 大小: 48.9 KB
  • 大小: 145.3 KB
  • 大小: 415.9 KB
来自: CSDN
4
0
评论 共 3 条 请登录后发表评论
3 楼 teacodeing 2014-11-13 16:37
1

















































































































































































































1




























































































































































































1




















































































































































































































































































































































































1












































































































































1






























































































































































































1


































































































2 楼 yixiandave 2014-11-12 17:09
jquery.aim
google搜图找到了。。。
https://github.com/cihadturhan/jquery-aim
1 楼 yixiandave 2014-11-12 13:05
能说明下第七个举例的jquery插件名称吗

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • 第十四届蓝桥杯(Web应用开发)模拟赛1期-大学组

    第十四届蓝桥杯web应用开发组模拟赛1期-大学组。本篇包含所有题目的题解

  • 程序设计的七大原则

    在程序开发过程中,为了让代码更加健壮,更具有复习用性和可维护性,在设计的过程中一般会遵循以下七个原则: 开闭原则 单一原则 代替原则 依赖原则 接口隔离原则 最少原则 合成/聚合复用原则 开闭原则: ...

  • 用Python进行web开发需要学习什么?

    HTML是网页的核心,学好HTML是成为Web开发人员的基本条件。HTML很容易学习的,但也很容易误用,要学精还得费点功夫。  随着HTML5的发展和普及,了解HTML5也将成为Web开发人员的必修课。  涉及到网页外观时,就需要...

  • 七大JAVA Web框架的优缺点对比

    作为集成特殊应用科学的分层 J2EE / Java 框架,该框架为软件工程师提供了用于 Web 应用程序配置,应用程序开发和安全项目的完整工具包。该框架以其发达的生态系统而闻名,它提供了许多附加选项,从 SOAP Web 服务,...

  • WEB开发技术 知识点总结

    WEB开发技术 知识点总结第一章:(填空判断)1、什么是WWWWWW是World Wide Web的缩写,中文译名“万维网”。Web是Internet提供的一种服务,是基于Internet、采用Internet协议的一种体系结构。2、Web三要素:统一资源...

  • 《Web应用开发基础》期末复习整理~2021(九章知识点)

    §1 Web基础知识与开发运行环境 1. WWW的全称是什么? World Wid Web 2. 简述Web的特点 ① 超文本信息系统 ② 图形化、易于导航 ③ 平台无关 ④ 分布式 ⑤ 新闻性 ⑥ 动态、交互 3. B/S体系结构有哪三层? ...

  • web知识点大总结

     针对不同平台开发不同版本  升级应用须重新安装  充分应用客户端硬件资源,构建大型3D效果应用 web系统开发过程,及相关知识体系。 项目提出--需求分析--设计(UI、系统)--开发(前端、后台)--系统测试--...

  • 1.一个WEB应用的开发流程

     毕业至今的大部分项目都是独立完成,虽然也有和其他同事协作的时候,但自认为对团队协作的了解和认知都还有所欠缺。很清楚团队协作的重要性,但尚未有很好的机会在相对成熟的团队中锻炼实践。  先抛开软件开发...

  • 2022年Web前端开发流程和学习路线(详尽版)

    前端侧重于人机交互和用户体验,后端侧重于业务逻辑和大规模数据处理。理论上,面向用户的产品里,所有问题(包括产品、设计、后端、甚至看不见的问题)的表现形式,都会暴露在前端,而只有部分问题(数据问题、计算...

  • Web前端开发学习1:静态网页

     在网站设计中,纯粹HTML(标准通用标记语言下的一个应用)格式的网页通常被称为“静态网页”,静态网页是 标准的HTML文件,它的文件扩展名是.htm、.html,可以包含文本、图像、声音、FLASH动画、客户端脚本和...

  • 【WEB前端开发】基础知识大总结(HTML5+CSS3)

    本文共一万七千字,十六个内容点,七十个知识点。覆盖HTML5+CSS3基础知识,内容包括:转义字符、表单标签、语义化标签、Head标签、CSS引用方式、CSS背景属性、CSS文本属性、基础选择器、伪类选择器、伪元素选择器、...

  • JavaWeb——动态 web 资源开发

    1.5 开发一个WEB系统需要哪些技术?1.6 Java EE是什么?02 B/S结构的系统通信原理2.1 WEB系统的访问过程2.2 域名2.3 IP地址2.4 端口号2.5 WEB系统的通信原理2.6 URL2.7 请求、响应03 WEB服务器软件3.1 WEB服务器软件...

  • 开放式API安全防护的七大原则

    我是架构精进之路,点击上方“关注”,坚持每天为你分享技术干货,私信我回复“01”,送你一份程序员成长进阶大礼包。 在我们日常工作程序开发过程中,难免会涉及与第三方系统进行数据的交互与...

  • HTML5和CSS3 WEB技术开发

    源站可能有防盗链机制,建议将图片保存下来直接上传(img-Uwbid43Z-1672665963237)(asseits/image-20210831212039584.png)]HTML:超文本标记语言(Hyper Text Markup Language),标准通用标记语言下的一个应用。...

  • 01. Java设计模式七大原则

    设计模式七大原则 文章目录设计模式七大原则1. 单一职责原则基本介绍对应实例方案 1方案 2方案 3单一职责原则注意事项和细节2. 接口隔离原则(Interface Segregation Principle)基本介绍应传统方法的问题和使用接口...

  • 网站优化 14条--雅虎十四条优化原则

    雅虎十四条优化原则

  • Web前端开发

    一直想写这篇“十日谈”,聊聊我对Web前端开发的体会,顺便解答下周围不少人的困惑和迷惘。我不打算聊太多技术,我想,通过技术的历练,得到的反思应当更重要。  我一直认为自己是“初级”前端开发工程师,一方面...

  • python 后端web框架知识整理

    python 后端web框架知识整理

  • 【java毕业设计】校内跑腿业务系统源码(springboot+vue+mysql+说明文档).zip

    项目经过测试均可完美运行! 环境说明: 开发语言:java jdk:jdk1.8 数据库:mysql 5.7+ 数据库工具:Navicat11+ 管理工具:maven 开发工具:idea/eclipse

Global site tag (gtag.js) - Google Analytics