模式 + GWT + Ajax = 易用性
2009-09-12 00:00:00 来源:WEB开发网模式:预检验
客户机-服务器计算的原则是在服务器端检查所有东西。(即使在调用服务器之前检验数据,其他用户所做的修改也可能导致原来正确的数据无效。例如,原来存在的文章现在可能已经消失了)。但是,不希望让用户等待客户机-服务器往返,然后才提示一个简单的错误。解决方案:在后台对服务器端检查例程执行一个 Ajax 调用;如果有错误,就警告用户,突出显示不正确的字段。
研究一下 CitiesCreatorForm 类和它的 addDuplicateCityNameCheck 方法。假设用户不应该输入已经存在的城市名。假设服务器端的 cityExists 服务会检查重复的城市名,那么在 cityName 文本框上添加一个 ChangeListener;如果用户选择国家和地区并输入城市名,就调用服务,检查城市名是否是重复的。
但是,代码有一个小问题。假设一个输入速度很快的用户输入一个(重复的)城市名,但是马上意识到了错误并纠正了错误。过了一会儿,他收到警告,指出这个字段是错误;但是,实际上这个字段现在是正确的。可以在 CitiesCreatorForm2 类中采取一种简单的纠正措施(见清单 2):保存服务参数,当收到服务的响应时,检查表单上的值是否仍然与参数相同;如果不同,就不做任何事情。
清单 2. 预检验模式伪代码
create a new ChangeListener that will:
get the form field values needed for the check
if all fields are filled
save the form field values
call the server-side service to perform the check
on callback:
get the form field values again
if the current values match the saved values,
if there was an error,
highlight the fields
warn the user
otherwise
reset fields to normal
assign the created ChangeListener to all involved form fields
- ››Ajax 实现静态刷新页面 带加载旋转图片
- ››ajax中获取和发送二进制数据的方法
- ››模式作用域:初级读本和最佳实践
- ››ajax调用后台页面怎样区别ID
- ››Ajax+jQuery实现LightBox与服务器通信
- ››AJAX中利用javascript的split函数处理responseTex...
- ››AjaXplorer 2.6.1 发布,远程文件管理
- ››AJAX + SVG 实现实时监控图表
- ››AJAX 及使用 E4X 编写 Web 服务脚本,第 2 部分:...
- ››AJAX也有安全隐患 谈谈AJAX的安全性
- ››ajax+asp.net+mssql无刷新聊天室
- ››AJAX中文问题[转]
更多精彩
赞助商链接