我想请问:做注册功能的时候,一般都会用ajax进行用户名是否已经存在的校验。那么,会不会存在这种情况呢:用户A在注册时刚好检验完成,用户名可以使用,还没有点击注册按钮进行正式注册的时候,用户B使用相同的用户名注册成功了,这时用户A用户名的校验就没用了? 请问这种情况会存在吗?那一般访问量很大的网站是怎么避免这种情况的呢?同步java

解决方案 »

  1.   

    ajax做的只是浏览器端校验而已,你还需要做应用端服务器端校验。
    就算应用服务器端没有,登录名这种重要数据,数据库端还有唯一性约束呢。
      

  2.   


    好老远的问题...ajax并不能完全保证的拉...应该在数据库级或者业务级再做一次约束比较靠谱,虽然是消耗了资源,但是对这个要求很高的时候也必须要搞咯...
      

  3.   

    最简单的,光标离开时候ajax做一次验证,然后点击注册按钮的时候再做一次验证。。
      

  4.   

    在ajax的基础上加上1、数据库对用户名字段做唯一性约束
    2、在action中再次对用户名做唯一性校验
      

  5.   

    我现在的实际情况是这样的:客户端通过webservice向服务端上传数据(如上传的Id),我要根据这个Id删除该id对应的数据库数据,并同时生成日志记录等其他一些相关信息。问题就是可能会有多个客户端同时上传相同的id到服务端,那么此时,服务端应该如何处理,以避免该id对应的数据生成重复的其他关联信息