web开发之验证
最近研究一些框架,然而工作中发现还是要把一些基本的活计干好。比如验证。
1. 有即时验证和稍后验证。
比如,一个注册程序,在文本框输入一个密码,鼠标离开文本框的时候,用js验证密码长度,强度等。
而稍后的验证,则是,点击”确定注册“类似这样的按钮的时候,还要对之前所有的即时性验证再检验一遍。因为用户可能根本没有理会刚才的即时验证提示。
2. 前端验证和后台验证
前端校验就是JS校验吧,因为JS可以通过设置浏览器忽略,那么前台验证后,后台还要对关键的地方进行校验。
3. 异步程序校验
另外,web2.0时代,我们有时会通过异步程序做一些校验,然后进行下一步操作。
比如: 第一步是: $.ajax({//...省略部分代码})
第二步是:第一步OK,执行的内容,
如果有过这方面开发的经验,你会发现,第二步的代码千万不能顺序挂在第一步代码之后。。。。因为第一步代码是异步执行的,测试中会发现,异步的结果还没有返回,第二部就已经执行了,于是,这个程序失败了,因为第二步本是以第一步为前提,结果他跳过了。
那么一般的方法是:
$.ajax({
url: //你的URL
type: "POST",
datatype: "json",
success: function (result) {
//第二步写在这里...
}
});
第二步也可以变成一个回调函数
function checkStep(step2) $.ajax({ url: //你的URL type: "POST", datatype: "json", success: function (result) { if(step2!=undefined){ step2(); } } });
4. 禁止反复提交数据。
最简单的场景,点击某确定按钮添加一条数据到数据库,如果用户“啪啪”点了2次,有可能插入两条一样的数据。一般,我们可以插入前检测一下数据是否已经存在。
不过换一个场景,假如做一个短信通知,点一下按钮给客户发一个短信。而短信接口只有发送功能,不提供检测某个短信是否已发送,这时候我们怎么办呢?
有经验的人立马会说,确保按钮只能点击一次。 OK,想法很好。可惜,在传统的asp.net事件模型里很难实现【有童鞋实现过吗?】。一般都得借助于JS,异步提交。
比如:
$("#btn").bind("click",function(){ $("#btn").html("提交中...").unbind("click");//解除事件绑定,再点击不起作用了 //执行提交逻辑 $.ajax({}); });
5. 及时进行状态还原。
简单的场景,比如在一个文本框里输入密码,长度不够,即时提示,当客户,输入正确的时候,刚才那个即时提示要消失。
最近做了个狗血的程序,在一个pop-up里要进行三次翻页操作,第一步一页,第二步是下一页,第三步,再下一页,好家伙,这么页与页之间来回跳,从第二页回到第一页的时候,好多状态得还原。。。。
做程序,小程序都写不顺溜,何提研究和开发框架啊。。。tmd,可能也是具体的事物做得太多了。。。
xinchuang