内容提示:应用程序是一个需要与用户进行沟通交流的工具。为此难免要让用户在界面中输入相关的信息,Web应用程序也不例外。但是总会有用户抱怨,Web应用的界面设置的不合理,使得他们输入的数据老是抱错。确实由于用户文化层次的差异,有些用户甚至是第一次接触电脑,让他们按程序人员的意图输入准确的数据,有一定的难度。为此开发人员在开发应用程序的时候,必须采取必要的措施,来提高开发人员数据输入的准确性。笔者这里就以Java Web应用为例,谈谈这方面的技巧。
一、在客户端加强用户数据校验。
如当用户提供的身份证号码不符合即定的长度(有时候还需要跟出生日期进行对比),那么就会立即提醒用户,身份证号码有误。这种友好的提示,可以提高用户数据输入的准确性。
要在Java中实现这一功能,最简单的方法就是采用JavaScript在输入表单发送时对数据进行校验。如可以在HTML的Form标签中加入一个onsubmit属性来激活相关的校验程序。笔者这里就举几个简单的例子作为说明。
第一个例子是如何限制某个字段不能够为空。先来看一下相关的代码。
if(from.password.value = = “”){
alert(“密码不能够为空,请重新输入密码”);
from.email.focus();
return false;}
return ture;
这段代码主要是保证输入表单中某些必须要输入的字段必须有相关的内容。如上例,要求用户在注册信息的时候必须输入密码。如果密码为空,则系统就会触发Alter方法中的警告信息,让用户重新填写。然后会使用focus方法将光标定位在输入的对话框中。虽然这不是必须的,但是这可以提高用户界面的友好性。最后应用程序会返回一个false的结果,告诉系统不需要将这个值返回给服务器。通过这种方式就可以实现限制某个字段不能够为空。
在使用JavaScript来进行用户数据校验的时候,有四个地方笔者要强调一下。第一需要知道浏览器之间的差异。也就是说,对于不同的浏览器,在语法上会有细微的差别。为此如果应用程序要支持不同的浏览器,如要支持非微软浏览器,那么最好在编程的时候加入相关的判断。第二个问题是保密性问题。因为应用程序的源代码在客户端是可以看到的。所以如果有版权需要的话,那要进行额外的控制。第三个问题是性能的问题。因为在客户端使用大量的繁琐的JavaScript应用程序可能会明显降低程序的性能。所以在实际工作中,往往将复杂耗时的数据校验功能放置在处理速度比较快的Web服务器端。第四个问题是光标的重定位问题。如上例所示,当发现某个字段没有按要求来输入数据的时候,最好能够将光标重定位到出错的字段上。虽然这不是必须的,但这可以在很大程度上方便用户的操作。
总之要实现具体的控制,如书写以上代码,可能难度并不是很大。而比较困难的就是,在控制的同时也要顾及到用户的感受。如通过光标定位帮助用户迅速找到问题的源头等等。还有就是从提高兼容性考虑,要注意不同浏览器之间的代码差异。
最后笔者再提供一个技巧。有经验的程序开发人员,往往会将一些校验代码保存起来。因为很多校验代码可以重复利用,如限制某个字段不能够为空、某个字段不能够包含特殊字符等等。那么下次需要采用的时候,可以通过复制粘贴完成。可能只需要简单的更改字段的名称就可以简化代码的书写,提高开发效率。
二、提供标准的HTML信息输入格式。
除了要对用户输入的信息进行校验之外,如果能够优化用户的输入界面,向用户提供标准化的输入格式,也可以提高Web应用程序输入的准确性。最简单的案例就是通过一个下拉列表来提高数据的准确性。如在陶宝网上,需要用户输入送货地址。为了提高数据的准确性,Web应用就采用了列表的形式。如省份、市区、县等信息都需要用户通过选择,而不是通过输入信息来完成。类似的功能还有很多。如性别、民族、国家等等,都可以通过列表来完成。为此笔者建议,在设计用户输入信息格式的时候,尽量采用选择框或者单选按钮,让用户通过点击选项来进行选择。或者通过组合框或者列表框,显示相关的序列选项以提供用户选择。
从开发人员设计的输入格式中就可以看出这个人员是否有比较丰富的经验。那么刚入门的程序开发人员如何掌握这相关的技巧呢?对此笔者有一个建议。最好的也是最便捷的方法就是参考一些大的商业网站,如陶宝或者新浪等等。多观察学习别人的网页源代码,就会对各种控制元件的使用有更加透彻的理解。当然不仅需要了解这些控件怎么用,更需要了解为什么要使用这些控件、而采用的不是其他控件。要知道有些控件的最终效果是相同的,如文本框与列表框,但是对用户来说其输入的效果是不同的。在恰当的地方采用合适的控件,不但可以提高用户的输入效率,而且还可以提高输入的准确性。所以其关键不是在于会不会使用这些控件,而是如何恰当、灵活的使用各种控件来设计Web应用程序。
三、投入使用后要加强对用户的培训。
无论应用程序开发的再怎么完善,仍然可能会有漏洞的存在。加强对用户的培训,往往可以更加明显的提高数据的准确率。如对于用户信息而言,可以通过培训帮助用户建立起一套合适的编码机制。通过编码来确保系统中数据的唯一性。当然在数据库或者服务器中仍然需要有类似的限制。笔者这里的意思是指将问题消除了萌芽状态。
总之,开发人员程序完成之后,还需要根据开发的内容设计一套完整的培训教材。当然这可能还需要其他人员,如实施顾问的参与。其核心的任务就是需要将相关的数据输入规则反映在教材中。如对于数据类型的要求、长度的限制等等。然后在培训的时候可以向用户强调相关的内容,以减少用户在后续输入过程中的错误。