谈网站界面设计(UI设计)

  categories:资料  author:

来源:互联网

内容摘 要:

今日的网站已经不单单只是人们查询资料的工具,它已糅合了多种功能于一身,在网站为人们的学习、生活、工作、娱乐提供越来越重要的信息时,人们都它的要求也与日俱增,对界面的要求也不仅仅是停留在美观上。就此,本文在讨论一些基本的网页设计原理的同时还特别强调了UI在网页设计中的运用。

关键词: 网页 界面设计 UI 布局 色彩

绪 论

上世纪最伟大的发明莫过于互联网的发明,进入21世纪,互联网代表着一种崭新的信息交流方式,它使信息的传播突破了传统的政治、经济、地域及文化的阻隔,使信息传达的范围、速度与效率都产生了质的飞跃。如果把互联网比做一棵大树,那成千上万的网站则是组成这参天大树的枝条,而每个网站都是由诸多网页构成那么网页就是这参天大树上数不清的叶子,故网页是构成互联网的基本元素。我国这两年的网络发展非常快,每天都有数以千计的网站诞生,其中的网页数量更是成几何式的增长,然而关乎网站形象和浏览者用户体验的网站界面设计却不容乐观。除了一些大的专业网站在版面的编排上比较讲究之外,其他很少见到界面设计考究、美术创意优秀的中文网站。如何设计出美观(吸引受众眼球)的网页,如何用优秀的用户体验赢得受众的一次又一次的浏览仿佛一夜间就摆在了众设计师的案头。就此本文从以下几点讨论了关于网站界面设计所需要重视的问题。

一、认识UI

(一)什么是 UI :

      UI的本意是用户界面,是英文User和 interface的缩写。

(二)什么是 GUI:

     Graphics User Interface 图形用户界面,也就是我们今天要主要研究的东西。

(三)什么是用户界面设计:

在人和机器的互动过程中,最重要的一个方面就是我们所说的界面(。用户界面设计是屏幕产品的重要组成部分。大致界面可分为感觉(视觉、触觉、听觉等)和情感两个层次。界面设计是一个需要多方面专业知识的工作,认知心理学、设计学、语言学等在此都扮演着重要的角色。用户界面设计的三大原则是:置界面于用户的控制之下;减少用户的记忆负担;保持界面的一致性。从字面上看是用户与界面2个组成部分,但实际上还包括用户与界面之间的交互关系,所以这样可分为3个方向,他们分别是:用户研究、交互设计、界面设计。

1.用户研究

用户研究包含两个方面:一是可用性研究,研究如何提高产品的可用性,使得网站界面的设计更容易被人接受、使用和记忆;二是通过可用性的研究,发掘用户的潜在需求,为技术创新提供另外一条思路和方法。用户研究是站在人文学科的角度来研究产品,研究用户的需要,站在用户的角度介入到产品的开发和设计中。对于设计师来说就是研究如何使自己的网站页面更收浏览者的欢迎

用户研究通过对于用户的使用环境、浏览习惯等研究,使得在网站界面设计的前期能够把用户对于网站功能的期望、对设计和外观方面的要求融入到网站的开发与设计过程中去。

2.交互设计

这部分指人与机之间的交互工程,在过去交互设计也由程序员来做,其实程序员擅长编码,而不善于与最终用户交互。在使用网站的过程中最能给浏览者留下深刻印象的一定是网站的视觉因素,也就是我们所谈论的网站界面。所以,很多的网站虽然功能比较齐全,但是交互方面设计很粗糙,繁琐难用,使用困难。如何使浏览者在使用网站时可以轻松自如的找到自己想要的资源,如何轻松实现网站的功能,给浏览者以愉悦的心情,拉拢浏览者下一次的登陆,这些都需要在网站的交互设计上下足工夫。

3.界面设计

在漫长的软件发展中,界面设计工作一直没有被重视起来。做界面设计的人也被贬义的称为“美工”。其实网站界面设计就像工业产品中的工业造型设计一样,是产品的重要买点。一个友好美观的界面会给人带来舒适的视觉享受,拉近人与电脑的距离,为网站创造卖点。如果把网站比做一个人的话,网站的后台编程好比人的骨骼与肌肉,而界面则是者个人的外表,人人都喜欢美人,同样有着良好视觉感受的网站界面也是网站拉拢人气的关键所在。网站界面是网站灵魂的外在表现,忽略网站的界面设计最终会使你的网站输在起跑线上。界面设计不是单纯的美术绘画,他需要定位使用者、使用环境、使用方式并且为最终用户而设计,是纯粹的科学性的艺术设计。检验一个界面的标准即不是某个项目开发组领导的意见也不是项目成员投票的结果,而是最终用户的感受。

(四)界面构成要素

互联网与传统媒体最大的不同就在于除了文字和图像以外,还包含声音、视频和动画等新兴多媒体元素,增加了网页界面生动性的同时也使得网页设计者需要考虑更多页面元素合理性运用。

1.文字

从网页最初的纯文字界面发展至今,文字元素作为网站内容传达的主体,文字有着其他任何元素无法取代的重要作用。首先是文字信息符合人类的阅读习惯,其次因为文字所占存取空间小,节省了下载和浏览时间。网页中的文字主要包括标题、信息、文字链接等形式。文字作为占据页面重要比率的元素,同时又是信息重要载体,它的大小、字体、颜色和排布对页面整体设计影响极大。以文字排布为主的网页界面,只要文字排布得当,版面同样可以生动活泼,分类条例清晰,不会给人单调感觉。 … 阅读全文

TeamViewer之修改id

  categories:资料  author:

 

怎么修改 TeamViewer ID 呢?按照下列的操作步骤,就能很简单的改变TeamViewer的id哦!

1. 开始 > 运行,录入%appdata%,删除TeamViewer的文件夹;

2. 开始 > 运行,录入regedit;   

删除 HKEY_LOCAL_MACHINE\SOFTWARE\TeamViewer

删除 HKEY_CURRENT_USER\SOFTWARE\TeamViewer

3. 开始 > 控制面板 > 系统 > 硬件 > 设备管理器 > 在网络适配器上单击右键 > 属性 > 高级 > Network Address;在数值栏随意输入一个12位数字。

4. 打开 TeamViewer,你会发现你的 TeamViewer … 阅读全文

WordPress投票插件Ludou Simple Vote

  categories:wordpress  tags:,   author:

两个WordPress投票插件:Ludou Simple Vote 和 Digg顶踩投票插件,Ludou Simple Vote为露兜作品,Digg顶踩投票插件为仿制。

Ludou Simple Vote

Ludou Simple Vote使用WordPress的自定义栏目来记录投票得分,支持+1分,反对-1分,卸载该插件后将会自动删除插件创建的自定义栏目,不会给你的博客留下无用数据。这个插件使用cookie来实现简单的防作弊的功能,如果访客的浏览器关闭了cookie功能将无法投票,启动cookie后只能对同一篇文章投一次票。

 

在WordPress中实现简单的支持/反对投票插件,界面样式模仿Discuz!,使用WordPress的自定义栏目来记录投票得分。卸载该插件后将会自动删除插件创建的自定义栏目。

这个插件使用cookie来实现简单的防作弊的功能,如果访客的浏览器关闭了cookie功能将无法投票,启动cookie后在只能对同一篇文章投一次票。

使用说明

在后台启动该插件即可开始使用,打开博客的文章页,内容底部可看到投票按钮。

wpdaxue.com-201211122

如果你想在侧边栏或博客的其他地方显示投票排行榜,显示一个按投票得分排序的文章标题列表,可以使用以下代码:

<?php
    $hight_voting = $wpdb->get_results("SELECT post_title, ID
        FROM $wpdb->posts,$wpdb->postmeta
        WHERE meta_key = 'ludou_ratings_score'
        AND ID = post_id
        ORDER BY meta_value DESC
        LIMIT 
阅读全文

memcached-session-manager介绍

  categories:资料  author:

一些大型的web2.0的网站,在正式部署时一般是部署在不同故障域的多台应用服务器上,以j2ee应用为例,一般我们都会部署在 tomcat下,假如部署了10台tomcat服务器,那这10台tomcat可能是部署在不同的机器上,然后将应用程序copy到这10台 tomcat下,然后启动所有tomcat,一般来说这样做的目的是为了达到负载均衡以及避免单点故障,另外也考虑到国内网络环境的原因,避免跨网络运营 商访问而导致访问速度低下的问题,当然不要忘了坐镇这10台tomcat前端的还有我们的反向代理服务器,比如nginx. 对于这种分布式tomcat环境,如何保证session 的唯一性. 一般来说的大体的解决方案是自己通过编写一段代码或者通过配置tomcat的filter,将产生的session放到同一个内存数据库中,事实 上这确实可行的,Memcached_Session_Manager,简称msm,这就是一个用于解决分布式tomcat环境下session共享的问题的开源解决 方案。

项目地址:http://code.google.com/p/memcached-session-manager/

简介如下:

A tomcat high-availability solution that additionally stores sessions in a memcached compatible key-value store for session failover, while reading them from local memory for optimal performance (for sticky sessions). … 阅读全文

转:Android调试的几个命令实践

  categories:android资料  author:

原文:http://www.cnblogs.com/qianxudetianxia/archive/2012/05/14/2497073.html

在Android的应用开发中,我们会用到各种代码调试;其实在Android的开发之后,我们可能会碰到一些随机的问题,如cpu过高,内存泄露等,我们无法简单的进行代码调试,我们需要一个系统日志等等,下面我把握工作中碰到的几个常用命令和方法给大家演示实践一下。

1.logcat命令
这个命令最简单常用,可查看帮助,我不多说,如果需要打印时间,加参数-v time

adb logcat -v time 

2.bugreport命令

这个命令也非常简单,但是在实际应用中非常有用,会有从开机之后详细的dumpsys,dumpstate和logcat信息,是一份完整的日志记录。对分析用户行为,异常信息,系统状态有很大的参考作用。一般我们会把bugreport导出到电脑上分析。

adb bugreport > xxx.log

我再次强调,bugreport里面包含丰富的系统和用户信息,它是其他很多命令输出的结果的记录,非常有用。

3.dumpsys命令

这个查看系统信息,用的还是比较多的.

image 

例如查看某个程序内存信息:

#查看应用com.tianxia.test的内存使用情况
adb shell dumpsys meminfo com.tianxia.test

效果图如下:

image

里面的信息很有价值,尤其对于分析内存泄露,内存溢出都有极大的作用。

4.top命令

这个查看cpu信息太方便了。

top -m 5 -t

我们看看效果图,其中按cpu大小列出5个进程列表。

image 

com.tianxia.test的cpu过高,会导致手机发烫。同时利用这个信息,可以监控应用cpu的使用,以调整优化代码。

5.配置文件local.prop

目前网上没有查到local.prop的配置使用,工作中本人只使用过如下:

log.tag.SQLiteStatements=VERBOSE 
阅读全文

如何把Web缓存都充分利用上来

  categories:资料  author:

来源:互联网

使用URLs时要确保一致性。浏览器基于URL来缓存资源。当URL改变后,浏览器从源服务器获该资源的新的版本。查询字符串参数的改变也被视为URL的改变。例如,”/default.aspx” 被缓存到浏览器,如果你请求了”/default.aspx?123″,浏览器将从服务器获取新的版本。对于这个新URL的响应,如果你返回的是正确的缓存报头,它仍然会被缓存。这样的话,再把查询字符串改成类似于”/default.aspx?456”,那么服务器将又返回一个新的版本。因此,当你想响应得到缓存时,就要确保你在各处使用了一致性的URL。在主页里,如果你请求了一个URL为”/welcome.gif”的文件,那么确保在其他页面里在请求该文件时也使用相同的URL。常见的一个错误是,有时会从URL中省略”www”子域。www.springload.cn/default.aspx与springload.cn/default.aspx是不同的,两者会被分别的缓存。

静态内容会被缓存得更久。静态内容可以被缓存得更久,例如一个月。 如果你正考虑应该只缓存几天,以便当你修改文件后,用户可以很快获取到新的版本,那么你错了。如果一个文件是通过设置过期报头(expires header)来缓存的,当你更新它时,新的用户可以立即获取到最新的版本,而老的用户只能看到旧的内容直到它在浏览器端过期。因此,只要你正在使用过期报头来缓存静态文件,把值设的越大越好。 例如,你已经通过设置过期报头值为3天来缓存一个文件,一个用户将在今天获取到该文件,并且保存在缓存区里直到三天过后;另一个用户将在明天获取到该文件,并缓存起来直到明天之后的三天。如果你后天改变该文件,第一个用户将在第四天看到它,第二个用户将在第五天看到它。因此,不同的用户将看到该文件的不同版本。结果是,设置一个低值对于保证所有用户在最短时间内得到最新的版本是没有帮助的。你将不得不通过修改文件的URL来确保所有人立即获得完全相同的一个文件。 你可以使用IIS管理器来为静态文件设置过期报头,后面的内容将会介绍如何设置。

使用缓存友好的文件夹结构。把要缓存的内容存储在一个共同的文件夹内。例如,把你网站的所有图片存储在”/static”文件夹内,而不是把图片分别地存储在不同的子文件夹下。这将有助于你在整个网站范围内使用一致性的URL,因为从任何地方你都可以使用”/static/images/ somefile.gif”。稍后,我们将学到,当把静态缓存文件放在一个共同的根文件夹内后,转移到一个内容传送网络将很容易。

重用相同的图形文件。有时我们把相同的图形文件存储于几个不同的虚拟目录下,以便可以书写很短的路径。例如,你有一个indicator.gif文件在根目录,一些子目录和CSS目录里。这样做是因为你不必担心从不同地方访问的路径问题,你只需要使用文件名作为相对URL。这却对缓存没有帮助。文件的每个拷贝都分别地缓存在浏览器端。因此,你应该把工程中所有的图像文件汇集到根目录下的”static”文件夹下,除去重复的,在所有页面和CSS文件里使用相同的URL。

改变文件名来使缓存过期。当你更改一个静态文件的时候,不要仅仅只是更新文件本身,因为它已经在客户端的浏览器缓存了。你需要更改文件名,并且更新所有各处的引用,这样浏览器才会获取到新的版本。你也可以把文件名存储在数据库或者配置文件中,通过数据绑定来动态的生成URL。以这种方式,你可以在一处来改变URL,而使整个站点立即得到更新。

使用版本号来访问静态文件。如果你不想因为要保存同样的文件的不同拷贝而使静态文件夹变得混乱,你可以使用查询字符串来区分同一文件的各个版本。例如,一个GIF文件可以和一个虚拟的查询字符串组合来访问,如”/static/images/indicator.gif?v=1″。当你更改了indicator.gif,你可以覆盖掉原来的文件,然后把所有到这个文件的引用更新为”/static/images/indicator.gif?v=2″。这样你可以重复修改同一文件,然后用新的版本号来更新所有到这个文件的引用。

把可缓存的文件存储在不同的域中。把静态内容存储在不同的域中,总是不失为一个好的办法。首先浏览器可以打开另外的并发连接来下载静态文件。另一个好处是你不需要发送cookies到静态文件。如果你把静态文件和你的web应用放在同一域中,浏览器会发送你的web应用产生的所有ASP.NET cookies和所有的其他cookies。这使得请求报头不必要的变大,浪费带宽。访问静态文件时你并不需要发送这些cookies。因此,如果你把静态文件放在不同的域中,那些cookies将不会被发送。例如,把静态文件放在www.staticcontent.com域,而在www.dropthings.com域运行你的网站。不同的域并意味着必须是完全不同的网站。它可能仅仅是个别名,而物理上和web应用共享同一路径。

安全套接字(SSL)不会缓存,尽量少用。任何经过SSL处理的内容都不会被缓存。因此,你需要把静态内容置于SSL之外。此外,你应该尽量将SSL应用于一些安全页面,如登录页面或者支付页面。其余的应该使用常规的HTTP而不是SSL。SSL加密请求和响应,因而增加了服务器的额外负担。加密后的内容也比原始内容要大,因而占据更多带宽。

HTTP POST请求从不被缓存。缓存只相对于HTTP GET请求。HTTP POST请求从来不被缓存。因此,任何形式的AJAX调用,如果想被缓存,需要以HTTP GET的形式调用。

生成内容长度响应报头(content-length reponse header)。当你通过web services调用或者HTTP handlers动态地提供内容时,请确保生成了Content-Length报头。浏览器通过查看响应的Content-Lenght报头会知道有多少内容要被下载,这样它会有多种优化方案来提高下载速度。如果有这个报头信息,浏览器会更有效的利用持续连接。这将避免浏览器为每个请求新开一个连接。在没有Content-Lenght报头信息的状况下,浏览器不知道要从服务器接收多少内容,因而只要它从服务器端获取到字节流,就会保持连接为打开状态直到连接关闭。因此,你失去了持续连接带来的好处,它可以极大的缩短一些小文件的下载时间,如css、javascripts、以及图片文件。

如何在IIS中配置静态内容的缓存。在IIS管理器中,网站属性对话框有个“HTTP Headers“页,在那里你可以对所有IIS处理的请求定义过期报头。在那你可以定义内容立即过期,或是几天后过期,或者在某个特定日期过期。第二个选项(Expires after)使用的是相对过期,不是绝对过期。这个非常有用,因为它对每个请求都起作用。无论谁请求了一个静态文件,IIS会基于Expire after选项天/月的数字来计算过期日期。 对于由ASP.NET来处理的动态页面,一个handler可以修改过期报头的值来覆盖IIS的默认设置。… 阅读全文

消息队列的原理与实现

  categories:资料  author:

来源:http://www.springload.cn/springload/detail/312

简介

消息驱动机制是 GUI 系统的基础,消息驱动的底层基础设施之一是消息队列,它是整个 GUI 系统运转中枢,本文介绍了一个基于环形队列的消息队列实现方法,给出了它的数据结构、主要操作流程和核心代码。

环形队列

环行队列是一种首尾相连的队列数据结构,遵循先进先出原则,如下图所示:

ring buffer 示意图

在环形队列中用一组连续地址的存储单元依次存放从队列头到队列尾的元素,通过两个指针 read_pos 和 write_pos 分别指向读取位置和写入位置。

初始化队列时,令 read_pos = write_pos = 0,每当写入一个新元素时,write_pos 增 1;每当读取一个元素时,read_pos 增 1 。若队列已满,不能往队列写入数据;若队列为空,则不能读取数据。判断对列是否为满的的方法是看(write_pos + 1)% QUEUE_SIZE == read_pos 是否成立,判断队列是否为空的方法是看 write_pos == read_pos 是否成立。

鉴于多个线程同时访问环形队列,需要考虑线程之间的互斥和同步问题,拟采用锁控制多个线程互斥访问环形队列,使用信号量控制线程之间的同步。

一段时间内只能有一个线程获得锁,当它持有锁时,其它线程要访问环形队列必须等待,直到前者释放锁。由此,锁可以保证多个线程互斥的访问环形队列。

阅读全文

转:Android App集成支付宝

  categories:android资料  author:

来源:http://www.cnblogs.com/qianxudetianxia/archive/2012/04/04/2432406.html

手机的在线支付,被认为是2012年最看好的功能,我个人认为这也是移动互联网较传统互联网将会大放光彩的一个功能。

人人有手机,人人携带手机,花钱买东西,不再需要取钱付现,不再需要回家上网银,想买什么,扫描一下,或者搜索一下,然后下单,不找零,直接送到你家,这将是手机支付给我们带来的全新交易体验。

谷歌刚推出了谷歌钱包,这必是我们后面要使用的主要手段,但是鉴于当前国情,我觉得有必要介绍一下android手机集成支付宝功能。

1.下载官方架包和说明文档
其实官方已经提供了安装指南,下载地址:
https://mobiless.alipay.com/product/product_down_load.htm?code=SECURITY_PAY

里面有有个pdf,详细说明了说用指南,写的比较详细,可以重点参考。

image_thumb[3][1]

下载下来,我们主要是用到Android(20120104)目录下的alipay_plugin.jar和AppDemo/assets下的alipay_plugin223_0309.apk,这两个文件是我们不能修改的支付宝api和安装包。

2. 商户签约
现在的安全机制,都是这样,客户端需要先和服务端请求验证后才能进行进一步操作,oauth也是如此。
打开https://ms.alipay.com/,登陆支付宝,点击签约入口,选择"应用类产品",填写并等待审核,获取商户ID和账户ID。
签约的时候还要向需要提供实名认证和上传应用,所以我建议先把应用做好了,最后再集成支付宝。

image_thumb[5][1]

我大概等了1-2天审核,审核是失败的,回复是应用类型啥的应该是"虚拟货币",我改成那个马上自动就审核通过了。

3.密钥配置
解压openssl-0.9.8k_WIN32(RSA密钥生成工具).zip,打开cmd,命令行进入openssl-0.9.8k_WIN32(RSA密钥生成工具)\bin目录下,
(1).执行

openssl genrsa  -out rsa_private_key.pem 1024

生成rsa_private_key.pem文件。

(2).再执行

openssl rsa  -in rsa_private_key.pem  -pubout -out rsa_public_key.pem

生成rsa_public_key.pem 文件。

(3).在执行

openssl pkcs8  -topk8  -inform PEM  
阅读全文

WordPress为指定分类的所有链接添加nofollow属性

  categories:wordpress  tags:,   author:

如果出于特殊需求,你要为某个WordPress分类下的文章的所有链接都添加nofollow属性,那你可以将下面的代码添加到主题的 functions.php 文件即可:

function nofollow_cat_posts($text) {
global $post;
        if( in_category(1) ) { // 修改这里的分类ID
                $text = stripslashes(wp_rel_nofollow($text));
        }
        return $text;
}
add_filter('the_content', 'nofollow_cat_posts');
How to add nofollow attributes to all links in a specific category

Sometimes you may want to … 阅读全文

编写Android程序实现手机通讯簿导入

  categories:android资料  author:

原创文档,转载请保留原文url地址

介绍

新购买了android手机,感觉很好, 新问题也来了, 如何把iphone手机中通讯簿导入到 android中。

在百度中搜索,有几个软件可以完成这个功能。 大家可以去百度搜索。

最近在学习android的开发, 因此考虑通过程序来实现这个功能。

下面介绍根据网络上教程来实现android手机通讯薄访问教程

参考教程

http://pan.baidu.com/s/189GI8

建议大家先看一遍教程有一遍初步的了解, 然后创建一个android项目, 然后依照教程中的信息,将代码一一敲入, 然后启动模拟器调试程序, 最后接入android真机测试相关程序.

视频中, 请密切注意如何介绍的发现通讯录的存储方式,通过导入sqlite数据库, 了解源代码,分析相关android代码,得到通讯录的读写方法,这个研究方法是以后编写android代码必须的手段。另外其他通讯录的读写api也可以参考

程序实现中需要android的ContentProvider等相关知识等, 大家可以参考:

http://pan.baidu.com/s/1AB92B

相关情况如下:

1. 创建android项目

wps_clip_image-14982_thumb[1][1]

2. 编写项目源代码

根据相关视频介绍, 编写相关源代码

项目创建完成后项目结构如下:

wps_clip_image-22792_thumb[1][1]

3. 项目源文件

AndroidManifest.xml文件, 通过在文件中添加main类, 以及相关应用程序的权限

<?xml version="1.0" encoding="utf-8"?> … 阅读全文



快乐成长 每天进步一点点