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

 

posted on 2012-10-30 09:13  xinchuang  阅读(462)  评论(0编辑  收藏  举报