问题驱动AJAX的出现:
我们开始对用户输入的用户代码验证的方法是, 等用户填写完注册信息的时候, 再点击注册按钮的时候进行验证判断, 是否已
经注册. 这样验证会出现一系列的问题:
1 所有的信息全部填写完后进行提交, 会一起把用户填写的信息进行提交, 再验证填写的信息, 如果我们验证的不只是注册时的用
户代码, 而且要验证邮箱等等选项, 那同时提交给服务器端的时候, 给服务器带来巨大的压力, 需要等待的时间也比较长. 让用户等待,
就等于浪费用户的时间, 俗话说:Time is Money!
我们不可以把一些需要验证是否存在的信息, 在用户开始输入的时候就进行验证呢? 这样节省了很多时间. 就像制造飞机的工厂一
样, 为什么要等到整个飞机成形之后再去验证这个必须的零件是否合格呢? 我们可以在制作零件的过程中去验证了. 这样飞机即使有
问题 ,也不会是零件问题, 会是其他的组装等问题.
于是我们想办法去解决这一问题, 随着用户的输入, 随之检验输入的是否合法. 这样也增强了用户体验度.
2 接着上述的问题, 我们是必须要填写完这个选项的信息, 才能填写那个选项的信息吗? 回答是否定的, 这就说到了同步和异步.
同步, 些许的熟悉, java线程同步问题, 线程同步可能带来的一些列问题, 例如线程的死锁, 还记得那个经典的例子"哲学家进餐问
题" ,线程同步经典的问题, 是如何解决的? 是wait了?还是sleep了?还是synchronized 了? 同步, 就是做一件事,需要对前一件事进行判
断, 他们因为某些原因紧密相连, 可能一件事是另一件事的条件, 可能是共同使用一个资源, 但必须排队等候.
异步: 和同步相反, 两件事情是独立的两件事, 没有什么联系, 可以同一时间进行 . 就像制造飞机一样, 制造不同的零件可以同时
进行. 说说在计算机中, 在这里的异步, 用户提交的信息, 不用最后再去验证, 可以边填写边验证, 这两件事是可以同时进行的.
在用户注册信息时,我们采用的是ajax的异步传输, 很明显, 我们填写前一项信息时不是后一项的必要条件, 所以可以用ajax的异步
传输来提高效率, 减少用户等待时间, 提高用户体验度.