利用Ajax提高图书馆网站用户体验的尝试

2022-11-28

1 什么是用户体验

用户体验, 英文叫做user experience, 缩写为U E, 或者U X。在电子商务网站中也被称作顾客体验 (CUSTOMER EXPERIENCE) .它是指用户访问一个网站或者使用一个产品时的全部体验。他们的印象和感觉, 是否成功, 是否享受, 是否还想再来使用, 以及他们能够忍受的问题, 疑惑和B U G的程度。

用户体验是一种纯主观的在用户使用一个产品 (服务) 的过程中建立起来的心理感受。因为它是纯主观的, 就带有一定的不确定因素。个体差异也决定了每个用户的真实体验是无法通过其他途径来完全模拟或再现的。但是对于一个界定明确的用户群体来讲, 其用户体验的共性是能够经由良好设计的实验来认识到的。

用户体验主要是来自用户和人机界面的交互过程。在早期的软件设计过程中, 人机界面被看作仅仅是一层包裹于功能核心之外的“包装”而没有得到足够的重视。其结果就是对人机界面的开发是独立于功能核心的, 而且往往在整个开发过程的尾声部分才开始。这种方式极大地限制了人机交互模块的设计, 其结果带有很大的风险性。因为在最后阶段再修改功能核心的设计代价巨大, 牺牲人机交互界面便是唯一的出路。这种带有猜测性和赌博性的开发往往难以获得令人满意的用户体验。现在流行的设计过程注重以用户为中心。用户体验的概念从开发的最早期就开始进入整个流程, 并贯穿始终。其目的就是保证: (1) 对用户体验有正确的预估 (2) 认识用户的真实期望和目的 (3) 在功能核心还能够以低廉成本加以修改的时候对设计进行修正 (4) 保证功能核心同人机界面之间的协调工作, 减少BUG。

2 当前web开发现状

在互联网短暂的历史中, web应用相关技术一直都在不停的发展。每次新一代的客户和服务器技术都高过前一代技术的预期, 其性能、集成度和响应性在不断改进。w e b应用, 从起初僵硬的代码写成的不能改变的网页到CGI web服务器脚本, 它已经走过了一段长长的路。

然而当有限的技术进步被用来开发更加强大、动态的后台集成应用程序时, 用户对web应用的需求和期望值却以更快的步伐前进, 仍然超越潜在技术的能力。2001年的一项网上消费者调查表明, 61%的被调查者认为在互联网上寻找并发现需要的商品是一件困难的事, 而且超过6 0%的被调查者在线购物时, 因为令人遗憾的购物经历而受挫过。调查结论是, 为了增加网上消费者在总消费者中的比例, 大多数购物网站应在导购和选购方面做到用户界面友好而且便于使用。

这项调查表明, 用户体验的好坏直接影响到网站的效能。方便的导航, 找到所需信息的难易度, 以及全部的在线体验都是意义重大的外在因素。这不仅是针对营销类网站, 对于图书馆网站也是一样, 一个组织良好, 有令人愉快用户体验的图书馆网站, 才能更有效地提升读者服务质量, 更充分地发挥馆藏资源的效用。传统web应用目前正陷入这样的困境, 即不能充分的从视觉上表现目前应用服务所需的复杂性, 往往在单个页面中整合了太多的内容和功能, 或者使用了太多的页面跳转, 以至于令访问者特别的新用户感到迷惑, 从而影响了网站的服务。

3 关于Ajax

Ajax是英文Asynchronous JavaScript and XML的缩写, 无论从技术还是从商业角度, Ajax都让人耳目一新。技术上, Ajax极大地挖掘了web浏览器的潜力, 开启了大量的可能性。商业上, Google和其他主要的参与者通过眼花缭乱的Ajax应用, 让普通大众对于新一代的W e b应用充满了期待。

作为业已存在的技术, Javascript和XML无疑都有着广泛的应用和众多的支持者。从某种意义上说, AJAX本身更像是一个关于技术的整合与创新的范例, 而非一种根本性的新技术。用“旧瓶装新酒”形容AJAX, 可能更为贴切, 但是A J A X并非已知技术的简单堆砌, 而是一种杰出的方法, 它把一系列现有技术重新锻造、拉伸, 超越其原有的概念, 让我们可以应对客户端程序所要面对的复杂情况, 同时提升了用户体验。

A J A X通过技术上的整合将笨拙的w e b界面转化成交互性的应用程序。这一技术的关键, 是一个名为XmlHttpRequest的对象, 该对象使得前台的Web页面能够异步地与后台服务器交互信息。这种“异步”正是实现“免刷新”的关键, 通过这一技术, 用户在web上的操作就如同利用本地桌面应用程序一样方便。

A J A X可以看作是一组技术或者一种体系机构, 其关键元素主要有:

(1) XHTML和CSS, 用于表示页面的普通内容。

(2) 文档对象模型 (DOM, Document Object Model) , 实现页面的动态显示和交互。

(3) XML和XSLT, 进行数据交换与操作。

(4) XMLHttpRequest或XMLHTTP (来自于微软) , 进行异步数据查询。

(5) JavaScript, 将这些绑定在一起。

4 我馆在用Ajax改善用户体验的种种尝试

4.1 图书检索

作为图书馆网站对读者提供的最主要服务, 图书信息的检索模块无疑是使用率最高的, 对于日访问量较大的站点来说并发查询带来的延迟有时不仅影响读者的使用, 甚至是令访问者无法忍受的。因此提高读者的查找效率, 不仅节省用户的检索时间, 同时也提高了用户的使用体验。

通过对数据访问方式的改变, 我们在如何提高检索质量和速度上做了一些尝试。

当前主要的检索方式, 是通过在图书馆网站上的检索入口输入检索条件, 根据模糊查询或者精确匹配, 通过页面程序访问后台的数据库。以asp页面检索为例, 检索页面通过表单上的文字输入域接受用户输入, 在用户点击确定递交按钮后, 表单通过get或post方法将数据传送到下一页面, 即执行检索操作的页面, 该页面的主要功能首先是连接数据库, 然后调用S Q L语句, 将检索页面传输来的关键词数据, 通过组织形成相应的检索语句, 最后执行这个查询语句, 从数据库表中查找相匹配的数据。因为网络使用者的检索词汇千变万化, 所以通常这一匹配都使用like而不是is, 即根据词的词头词尾的匹配来模糊查找, 之所以这样, 是因为要用精确查找找到匹配的数据, 数据库里必须有完全一致的词条, 对于用户的查找尝试来说, 我们是无法预期的, 所以通常使用模糊查询以尽量查找出最接近的数据。

这种检索方式有诸多不足:首先, 在检索的时候, 如果用户并发过多, 会造成因服务器性能瓶颈造成的lag, 因为每个用户的检索都会调用服务器上的操作页面, 在访问量大的时候, 服务器能否及时反映便成为一个重要问题。其次, 对于热门图书来说, 该书的查找频率较高, 这种情况下, 一个读者的检索结果, 别的读者如果能够直接调用, 将省去大量服务器重复检索花费的性能代价和时间代价。最后, 对于检索策略不是很好的读者来说, 同样查找一种图书, 此类读者的查找语句冗长或者难以匹配, 如果在读者输入的过程中类似智能输入法的实现思想, 及时的组织联想词汇, 便可以节省读者对于一类图书的频繁检索测试, 在提高检索效率的同时, 也可以降低服务器的响应。

通过以上分析, 我们在馆内网站检索页面做了一些新的设计, 尝试改进检索性能。首先, 为了实现联想的功能, 我们在从数据库实际检索前, 在用户输入的同时根据用户连续输入的字符作为后台并发查询的检索条件, 从图书馆后台数据库中的图书数据表的题名字段中查找相互匹配的项目, 然后将返回数据传送到前台, 通过脚本显示在输入框下方作为用户提示。

比如, 读者在搜索框中输入“三国”显示如图1:

具体的实现是, 给检索页面中的信息输入框起一个ID名称, 便于下面的程序调用, 如:, 当用户输入检索信息时, 会引起输入框内数据的改变, 我们用onKeyUp事件来捕捉这个改变, 在这个事件的响应代码中来作异步的调用。

为了实现信息的异步传输, 我们首先准备一个实现Ajax技术的方法, 命名为searchOut, 并加入到输入框的标签中, 现在标签应该是这样, 而searchOut这个方法, 就是我们的核心部分了, 主要代码如下:

注: (1) 是文件名, 即支持我们异步传输查询处理的asp文件

(2) 是要查询的图书名, 作为一个字符串参数传送到方法中, 用于组织一个完整的SQL语句, 该参数在传入的时候要做一些去除空白和无效字符的操作

(3) 在filename这个文件中定义的的一个变量, 用于接受通过book传送来的书名参数

(4) 这个方法用于接收异步查询返回的数据, 并组织显示

返回的数据在filename指定的页面中的处理过程与通常的查询处理一样, 只不过这里是在用户一边输入的时候同时就在后台悄悄进行查询, 并 (如图1) 在输入框下方显示相关查询结果, 这就同时解决了常规检索方式的几种不足不处, 实际上是根据馆藏已有的图书书名信息的显示, 给信息的检索者提供了一条更有效率的检索之路。

为了减少并发检索的数目, 在设计时候采用了类似C++中“延迟初始化”的思想, 简单来说就是当用户仅仅是输入查询时, 这时候只提供简单的信息, 作为更为有效的检索的导向, 在当用户实际按下检索按钮时才视情况对后台数据库进行检索。在实际检索前, 对于检索词, 我们采用记数的办法来统计, 并自建了一个小型的数据索引表, 该表独立于图书总数据库, 由于很小, 所以有很高的检索性能。在该索引表中, 存有上一次检索结果的简单信息, 当用户点击“查询”按钮时, 先将检索词与索引表中进行比较, 如果已经有, 就记数+1, 对于热门检索词, 由于之前已有检索结果, 此时通过异步调用, 即刻就可反馈给用户, 而不用再进入图书馆总数据库表中查询, 从而提高了效率, 节约了服务器处理时间, 没有则添加这一条目, 以备下次使用。

4.2 学科导航

除了信息查询这个用户使用最频繁的模块, 我们在其他的方面也做了相应的尝试, 如对本校开设的各专业学科所做的学科导航, 为了给全院师生的学术研究提供更全面详实的资料, 我们收集整理了很多数据资源和相关的网络链接, 但是在实际使用的时候, 经常会出现网络故障或网站更新等种种原因引起的网页无法浏览, 令读者和访问者感到懊丧。由于ajax不仅仅能在后台异步的访问我们自己的服务器, 也可以用来异步的向互联网上的网站链接发送连接询问, 因此, 我们的解决办法是, 在用户将要访问该导航之前, 即在提示小框中以泡泡的方式显示当前网站的可访问情况。 (如图2所示)

4.3 数据推送服务

已往学院教师如需获得感兴趣的学术科研资料, 通常是通过e-mail的方式, 由我们向订阅的老师发送邮件, 但是需要此类服务的读者越来越多, 数据越来越大的时候, 以简单邮件的方式已经无法满足需要, 为了解决这个问题, 我们在网站中加入了专门的数据订阅服务, 实现的主要思想是利用Ajax进行无刷新的数据推送, 在用户订阅了相关内容之后, 当他访问图书馆网站的个人定制页面时, 此时网页会根据当前的订阅内容分类查找数据并且显示出来, 与以往不同的是, 此时的用户页面类似于桌面应用程序, 在我们馆内更新图书数据时, 用户页面也会跟着无刷新的更新数据, 从而实现了信息的同步, 其用户体验是令人满意的。

总之, 互联网技术是不断发展变化的, 在图书馆网站的设计中, 应当根据具体的服务内容和形式合理的加入新的技术, 通过提升用户的使用体验来提高图书馆馆藏和网络资源的服务质量, 同时提高资源的利用效率, 为学校的教育科研工作做出更大的贡献。

摘要:Ajax是当前流行的技术, 本文介绍了Ajax的定义、技术原理和特点, 并对如何使用Ajax在图书馆网站web2.0建设中提升用户使用体验作了探索

关键词:Ajax,用户体验,富客户应用

参考文献

[1] [美]Justin Gehtland、Ben Galbraith、Dion Almaer.Ajax修炼之道.电子工业出版社, 2006.4.1

[2] [美]Dave Crane、Eric Pascarello、Darren James.Ajax实战 (Ajax in Action) .人民邮电出版社, 2006.4.1

[3] 柯自聪.AJAX开发简略http://dev2dev.bea.com.cn/bbsdoc/20051114125.html

[4] 应用AJAX创建搜索引擎前端界面http://www.jluvip.com/blog/article.asp?id=337

[5] 杨国瑞, 张思博.基于AJAX的Web应用架构设计[J].现代电子技术, 2006 (15) .

上一篇:一个(2+1)——维非线性微分方程的精确解下一篇:家畜口蹄疫病的预防与诊治