随着互联网的蓬勃发展,我们已然迈入了 Web 2.0 时代。在这个时代里,用户是主体,互联网以人为本,用户可以在网上发表观点、参与互动,可以分享、聚合信息。这比多年前甚至更久以前的用户单纯从互联网接收信息,有了很大的进步。由此,我们也可以看见互联网的一个基本的发展趋势,那就是被人们所用,为人们提供更好的服务和更优的用户体验。在将来,随着普适计算的推进,我们身边的设备可能都能接入互联网,与人们智能交互,互联网和信息技术也会更加透明地渗透到人们生活的点点滴滴。
我们的生活与互联网的发展息息相关
互联网的发展也离不开宽带建设和运营的发展,在北京,我们看到很多小区都已近光纤入户,在不久的将来,光线到户可能成为一种标准,随小区的建设一同实施,而运营资格由各家运营商竞标决定,这也是值得欣喜的。宽带基础设施服务也一直是IT和互联网发展中的一个重要环节和有力的支撑,从十年前的电话拨号到几年前的2Mb、4Mb ADSL,再到现在的10Mb、20Mb光线,用户能享受到高速互联网带来的畅快体验和无延迟获取信息、参与网络交互的能力。在高性能计算、高带宽容量的互联网上,云计算开始蓬勃发展,它为企业节省了购买服务器和电费以及招聘众多IT管理人员的成本,而是以集中式的数据中心,向企业用户提供他们所需的服务,而且这种方式的使用是可计量的,用户用多少付多少,而且可能灵活根据当前的需求提升或者降级资源使用量。我们消费者也从基于云的服务获益不少,例如不论过什么节假日,淘宝网基于云计算的服务能够保证稳定的运行,大家一起登录、一起抢的时候,您依然可以浏览您所需的东西,并顺畅地完成下单,而不会经常提示您该服务暂时无法访问。互联网的分布式计算的研究和云计算的研究给大规模高性能的稳健计算提供了保障。
咱撇开云计算神马的不说,对于我们用户的日常生活和工作而言,试想,您所使用的计算机或者手机突然没有了网络接入,您会觉得怎样?
我们似乎已经离不开这个接入了互联网的社会了。现代人平均每人拥有超过1部的智能设备(包括手机和电脑),每天与它们相处的时间里,我们很大一部分时间是在跟互联网打交道,使用本地单机应用程序、游戏的时间相对越来越少。像新浪微博、人人网、开心网这样的SNS网络是非常受欢迎的,当然网游和视频网站(优酷、56等)也是很火热的,另外,电子商务(淘宝、京东、各种团购等)和服务类网站(12306火车订票网等)也成了大家口中的生活热点话题。然而,在使用这些互联网服务的时候,您是否有注意到用户体验的重要性呢?
用户体验很重要
很多人可能没有太关注和思考过用户体验的问题,只要大家没有遇到浏览网站和使用服务过程中的阻断性问题(例如页面打不开、页面某些功能无法使用、支付不成功等),大家就觉得这个网站是可用的,而好不好用、应该怎么调整、我该怎么反馈意见和建议是鲜有思考的。当然,网游就不一样,如果服务器经常延迟响应,用户觉得慢,或者觉得不好玩、没有意思,那用户自然不会再往里面投钱。所以在互联网娱乐和服务中,我们能看见用户体验普遍比较好的,用户满意度比较高的,就是这些网络游戏,拼质量、拼画面、拼服务器延迟低、拼游戏内容好玩是他们的努力方向。而您可能注意到,一些其他类型的大一点的互联网公司,也会懂得关注用户体验的重要性,例如我们可以看见新浪微博、人人网、淘宝网等网站的持续改进,而像12306这样的火车票网站,用户可能就不太在乎其美不美观、好不好用,大家但求他能用即可。
既然互联网的发展是以用户为重的,用户体验自然应当得到重视,一个良好的用户体验有助于提升用户浏览的流畅性和内容呈现上的合理性。这个道理很简单,一个美观实用的网站,用户自然会打心底里用起来爱不释手,才会觉得舒服畅快。现在的HTML5技术就是对以往的网页编写语言的又一次升级,那么在技术上为什么W3C要推行HTML5?多年前的 Web 1.0 时代,用户以接收和获取信息为主,一些网站的用户体验不需要做到很绚丽或者设计很多交互功能,而在现在的 Web 2.0 时代,用户的参与和交互的要求越来越高,用户也喜爱富互联网用户体验,因此用户的需求导致了技术需求上的更加丰富和复杂的网页内容。、
HTML5 带来一致而现代的用户体验
我们知道,以往很多网站的内容都是通过Flash或者其他插件呈现的,这会有什么问题呢?在我看来,它的局限性主要存在于两个方面,第一,众多插件导致了浏览器的负担过重,对生态环境造成了影响甚至是破坏,一个性能没有调优或者尚未完好测试的插件肯能够导致用户浏览器的全盘崩溃或者无响应。这里还是以微软的IE浏览器为例,很多用户都会遇到IE无响应、打不开、浏览器崩溃等问题,其实这并不是IE本身的问题,绝大多数的案例里面,是第三方插件和第三方软件引起的问题,很多用户在没有太注意的情形下,很容易在安装一些下载的软件中被捆绑安装众多浏览器插件。第二,像Flash等一些插件,本身就可能有性能问题,曾经我们看见过,当多个网页含有Flash并且同时打开这些网页时,会觉得浏览器有卡顿的现象,而我在之前的博文里面也写过,腾讯QQ的组件一样会导致IE浏览器在打开含有Flash的网页时,可能会造成浏览器假死。除了性能问题,像Flash一样的插件的局限性还体现在开发人员的负担中。开发人员必须遵照Adobe Flash的准则进行开发,得使用Adobe的开发工具,并可能因此耗费很多时间。而且Flash提供的能力是有限的,例如开发一些更为复杂的3D图形图像,或者Flash不能跳出这个插件容器,与网页其他内容自由编排,因此很难做出浑然天成的效果,除非你整个版面是一大块Flash,文字也是Flash的一部分。
HTML5的出现,解放了网页内容被插件禁锢的局面,开发者使用HTML5语言+JavaScript就可以创造出丰富而多彩的网站,满足消费者的审美要求和交互要求,同时还会有比较好的性能和浑然天成的效果。而且,HTML5的出现,对于统一跨平台开发代码也是意义非凡的。说实话,IE9之前,微软的浏览器自成体系,要求开发者使用微软自己定义的一些元素和标签,这是不利于互联网生态系统的,反而给开发者造成了极大的负担,因为他们为了支持不同的设备和不同的浏览器,得制作不同版本的代码,明明是同一件事情、同样的网站内容,但是实施起来得写好几套代码。现在用户们一般安装的各种各样的新版浏览器,大多都支持HTML5,只要开发者编写网站的时候使用的是HTML5 + JavaScript,并且制作的比较精美,相信您会被新的技术所呈现的内容而震撼。
(点击图片前往该网站体验)
如果再使用CSS3里面的一些新特性,例如内容根据屏幕尺寸自适应,那么,开发一遍的内容,同样可以直接在平板、手机等支持HTML5的浏览器中以合适的方式呈现。
新的浏览器和新的用户体验
随着HTML5的成熟和普及推广,越来越多的浏览器厂商提供新版的支持HTML5的浏览器。我个人一直习惯使用IE浏览器,对于其他厂商的众多优秀浏览器也有一定的了解,其实就目前而言,主流各家的浏览器基本都能很好地适应和呈现HTML5的内容,所以大家不妨下载一个然后访问一下HTML5网站试试。
在这里,我还得谈一谈当时走在HTML5前列的IE9浏览器和现在刚推出不久的IE10浏览器。记得IE9是2011年第一季度发布的,当时我去过发布会现场。IE9的特性宣传的有许多,但是我个人最喜欢的有3点,其一,彻底告别了微软IE垄断的HTML元素标签方法等等,开始兼容统一的一套标准,即HTML5 + CSS3 + JavaScript,当然还有其他一部分新的通用技术;其二, IE9 使用了GPU进行方式,全面加速了图形图像和JavaScript呈现,复杂的HTML5和原有的JavaScript编写的内容得以快速呈现,性能非常好,如果您有独显的机器和IE9,相信您已经从中尝到了甜头;其三,一个以内容为重的UI设计理念和风格。随着Web 2.0的演进,更多的网站不再是像一个单纯的网页,而是变成了一个带有丰富体验的应用。为什么应用程序一定要是传统的那种exe或者其他的桌
要学好webservice我个人觉得了解一下xml是很必要的。如果前几篇博客的wsdl文件很模糊的话,看这一章也是很必要的。
1. Schema相比dtd的优点
Schema出现的目的是通过一种更合理的方式来编辑xml(基于xml的语法方式)
Schema可以使用命名空间支持多个名称相同的元素
Schema可以很好的完成对java或者其他语言对象的修饰
2.简单Schema的编写
下面Schema可是说是最简单的一个Schema的代码了,其中注释很清楚,着重了“头文件、复杂类型、简单类型”的引用
<?xml version="1.0" encoding="UTF-8"?> <!-- xmlns为schema的命名空间不可更改。但是可以更改前缀 --> <!-- targetNamespace为自身的namespace,当xml引入约束的时候用到 --> <!-- xmlns:tns 为方便自己类型在自己schema文档中引用而定义 --> <schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.example.org/person/04" xmlns:tns="http://www.example.org/person/04" elementFormDefault="qualified"> <!-- 元素定义引用下面本文档定义的personType复杂类型 --> <element name="person" type="tns:personType"></element> <!-- 定义一个复杂类型供person引用,也就是相当于一个javabean --> <complexType name="personType"> <sequence> <element name="name" type="string"></element> <element name="age" type="tns:ageType"></element> </sequence> <attribute name="id" type="string"></attribute> </complexType> <!-- 定义一个简单类型 --> <simpleType name="ageType"> <!-- 约束规则。base不要忘记。 --> <restriction base="int"> <minInclusive value="1"></minInclusive> <maxExclusive value="100"></maxExclusive> </restriction> </simpleType> <!-- 简单类型和复杂类型的约束很重要 --> </schema>
3、约束的xml举例:
<?xml version="1.0" encoding="UTF-8"?> <person xmlns="http://www.example.org/person/04" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.example.org/person/04" id="12"> <name>zhanglei</name> <age>100</age> </person>
4、图解xml和schema代码再次说明:
5、xml引入命名空间约束说明:
6、DTD的简单案例:
<?xml version="1.0" encoding="UTF-8"?> <!--以下分别为声明元素和属性的案例--> <!ELEMENT classrom (name,grade,student)> <!ATTLIST classrom id ID #REQUIRED> <!ELEMENT name (#PCDATA)> <!ELEMENT grade (#PCDATA)> <!ELEMENT student (age)> <!ATTLIST student id ID #REQUIRED> <!ELEMENT age (#PCDATA)>
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE classrom SYSTEM "test_classrom.dtd"> <classrom id="p2"> <name>116</name> <grade>2</grade> <student id="p1"> <age>12</age> </student> </classrom>
1 常见错误
导包的时候 正确写法 中间是,
<%@ page import="java.util.*,java.lang.String" %>
导包的时候错误的写法 中间是;
<%@ page import="java.util.*;java.lang.String" %>