00:02
我们接着看啊,大家来看我屏幕。是这样的同学们,我得来用画图工具啊,画个图,是这样的同学们。我们现在所发送的请求呢,全部都是叫同步请求。那除了同步请求之外,我们其实还有异步请求。那老师,这两者到底啥区别?啊,同步紧急和异步紧急到底是什么区别呢?同步请求,它是在我们当前这个县城里面的。比如说我们客户端。我们客户端向我服务器端发送请求。发送那个请求。那么服务极端会给我们一个响应。好。那么在响应,在响应到来,在响应到来之前,我们的浏览器页面它会显示一个大空白。因为咱们现在的网速都比较快,所以呢,大家可能不怎么看得到。啊,其实在早期的时候,我们页面。在服务器端响应给我们内容响应到来之前,页面会显示一个空白。
01:04
那么当显示这个空白的时候,我们用户啥事都干不了,你只能默默的等待着,等待着这个网页加载完成,你才能进行下一步的操作。这种是同步请求它所带来的一个问题。好,我们来举个例子,比如说,比如说假设这是个新浪的页面。新浪的页面当中啊,这块哎,要显示一个什么,呃。国际的什么国际新闻啊,这块显示什么国内新闻啊,这块可能会显示什么娱乐八卦,意思一下啊,显示娱乐八卦,然后这块呢,会显示什么财经。啊,这块可能会显示什么军事。然后呢,这块呢,可能会显示其他的,比如说什么小说啊,或者什么娱乐啊,差不多类似的,好,我想说的都不是这些内容,我想说的是。我想说的是,在上面这块。在这个位置。在这个位置呢,它会出现新浪的用户的邮箱,以及就叫邮箱啊,或者叫账号和密码,你要进行登录。
02:03
你登录成功之后,那么这个新浪的网站上的一些新闻啊,你可以点赞啊,你可以评论啊等等等等。啊,否则你就是以一个游客的身份来进行访问。按照我们以往的做法,按照我们以往的做法,这里面有用户名啊,或者叫邮箱,然后还有密码,然后有个按钮叫提交。当我们点击提交按钮的时候,我们向会向服务器发请求是吧,同学们。会向服务器发请求。那么向服务器发请求之后,你这个页面就会出现一个空白。是不是就会出现空白,那如果网速比较慢的情况下,你只能等着。那现在我们要采取的是异步请求的方式,异步请求的方式是什么呢?诶这个页面你可以接着看,但我点击这个按钮,其实是我们浏览器重新重新啊,产生了一个新的线程,然后呢,向悄悄的向我们服务器发请求,服务器响应回来之后。当服务器给我们响应之后,我们要做一件事情,这个事情叫。
03:04
这个事情叫局部刷新。啊,这个事情叫局部刷新,局部刷新什么意思?我给服务器发了个请求,我要做登录验证。那么服务器呢,他不是给我做跳转它,而是把登录验证的结果返回给我,返回给我之后,我就把登录的结果仅仅是更新了蓝框框里面的部分。而我整个页面其实并没有刷新。这种我们称之为叫局部刷新。来就是这样的。啊,那这样的好处是什么,同学们?这样的好处是不是我可以继续我这边的操作,你发过去你进行处理呗,处理完之后你这边你局部更新一下呗。是吧,但是对我下面的内容,我是不是不需要不需要再重新加载一次啊。所以说它的好处。第一。服务器端没有必要把整个页面的内容再重新渲染一次交给你,那这样比较浪费服务器端的资源。
04:04
第二,服务器端现在只要告诉你登录成功或者失败,而没有必要把整个页面的HTML代码都发给你,是不是节约了网络的带宽呀?减轻了网络的负担是吧?第三,我们浏览器去解析你的内容的时候,我只要解析这一一小部分就可以了,不需要把整个页面的内容重新解析一遍,浏览器的负担也会减轻。好,所以呢,这就是我们异步请求啊,局部刷新它的一个优点。那么异步请求局部刷新呢,我们有一个专门的一个词叫。其实它不是一个单词,这个A指的是异步的。异步的javascript and XL。叫异步的javascript and X,也就是说我们使用javascript和X技术啊,我们用来解决啊,来实现这个特点,来实现这个特点啊,就这样子。那行,下面我们就具体的来看一看这个怎么来操作。
05:04
好,同学们,我现在想做一个功能。我现在想做一个功能啊,什么功能呢,我们在注册页面上。我们在注册页面上也被我关掉了是吧,就直接看这吧。我们注册页面上,我们这边有用户名。我要判断用户名是否已经被别人给注册过了。那我就需要去查看数据库。我需要去查看数据库这个用户名是否已经被别人给注册,如果被别人给注册了,那么我这边就不要再去点这个注册按钮进行提交了。所以,因此我的想法是,这个输入框里面输入内容,当它失去焦点的时候,听好了这个文本框输入的内容,当它失去焦点的时候,我就想要去做验证,On blue是不是失去焦点啊?失去焦点的时候,我进来写一个方法,叫va。Your name,或者叫CK。Check your name。啊,我把这个this value this value,就是我当前的这个value值,我就把它过去。
06:03
然后我就让这个方法悄悄的给服务器发一个请求。让他给我做验证。CTRLC拷贝一下。然后咱们把它放到JS里面去。好,这个方法咱们就不看了。好,再来写一个。Function。这边又叫好,那这个方法怎么写呢?好,是这样的,如果啊想要发送异步请求。我们。需要一个关键的对象。我们需要一个关键的对象,叫X http request对象。所以我建了定义这个对象,X htb request。好,然后呢,我来写个方法来创建这个对象,Create。Create xml http request,我写个方法。
07:03
这个方法就帮我去创建这个对象,为什么老师创建的对象怎么还要写个方法呢?因为不同的浏览器,它创建的方式不太一样。If温度碟。Window点如果,如果我们的浏览器它所遵循的是xm htb request表示符合的是盗二浏览器,比如说谷歌,比如说火狐。那么。以前版本比较老的IE浏览器,它遵循的这个。规则不是当猫,他有自己的一套规则。啊,所以早期的时候IE浏览器是比较讨厌的。啊,他不遵循这个规则啊,为什么,因为这个微软他这个用户量很大嘛。是吧,你你你你搞个什么推荐的标准,推荐的什么规则,我偏不服从你的啊,我自己再搞一套规则。啊,所以这个程序员受害的是程序员是吧,程序员得考虑这个浏览器的兼容性问题。好,如果是符合二标准的浏览器,我们就这么去写,叫window.xl htb request,那么我们创建的时候就是例XL htb request,这是非常简单的。
08:05
好点,XL http request,好,就这么写。好,我们怎么去创建呢?CTRLC拷过来,直接66XL http request。符合道帽标准的标准。这个不用去死记背,同学们啊。标准的浏览器。标准浏览器。的创建方式。啊,就这样子。好,Else else表示啊,Re。IE浏览器。好,那么IE浏览器我们怎么去创建呢?我们怎么去创建它。等于它是这么去创建的,我这边也可以写个else if。叫window,点它叫active object,它是这玩意儿。啊,如果是active object,它是这玩意我们这边有啊,如果是window.active object。
09:06
我们就怎么去创建呢,你注意它不是new X ma了,它是new active X object,然后它这里面I浏览器的版本也不一样,导致它里面它这里面创建的方式也不一样。第一种。Soft X htp是一种方式。叫microsoft.http这是一种创建方式,如果这个方式创建失败了。刷。稍等一下啊。稍等剪切,把它放进去,如果这样的方式创建失败了,我们再换一种XHB块,New active X object,然后这边写的叫MS。XL点二点HTP。啊,它变成这么一种创建方式,叫MSXL2叫XL,稍等一下啊。这不能写错了,帮我再看一遍啊,MS这个M是大写XL2。X2对的吧,X秒HTP秒对的吧,没问题,好。
10:05
就这么去创建,那这个代码大家平时不用写。啊留一份就可以了,什么时候想要的时候直接复制粘贴。啊,或者这个JS文件,你把它留着,什么时候想要的时候直接导入,当然了大家放心,后面写代码的时候,大家也不会写这个,因为这种是原生的方式,大家后面一般用AG都是用框架。啊,明天咱们就会介绍到叫access。我们可以使用一个框架,叫access。因为他已经帮我们把这个代码,把浏览器的这个差别,浏览器创建这个对象的差别,人家已经给我们封装好了。啊,但是呢,我们初学的时候,咱们最好还是了解一下行吗?虽然不要求大家记住啊,不要求你记住,但是你还是要了解一下。所以说这是第一步。如果我们想要发送异步请求,我们就需要创建一个关键的对象,叫XL http request行,这是第一步,我们把它创建出来。好,根据C调用一下这个对象啊,调用一下这个方法,好这第一步。
11:03
第二步。这个对象。他有个方法叫open方法。Open方法里面有三个参数。第一个参数是给谁发请求。第二个参数是以什么样的方式发送,比如说我们就以push的方式发送,或者以get方式发送都可以。第三个是否是异步的方式?表示是异步方式,那么这个open要不我就发个请求吧,我给谁发请求呢?要不我就给user点发请求。然后呢,我写个。比如说check UN name。然后呢,我还需要把这个值把它带过去,是不是我把u name把它带过,加上u name可以吧,同学们。嗯,这是不是一个U2游啊,如果大家觉得看的很别扭,我把它写到外面去。UI吧,等于这这玩意儿。啊,就这样的,或者叫U2U啊不叫U2好,然后回到这U2U,就这样的变量可以不把它放进来,然后以get方式啊发送,这叫open好了。
12:05
下面一步。设置。设置回调函数。X htp request对象,它有个叫change。他的状态会发生改变。他的状态有零到四。啊,有零到四,咱们一会儿再来翻电子书,零到四分别代表什么意思?好。On change,当状态有改变的时候,我们就调用一个函数。Check u cb。我们就调用这个回调函数。好,最后一步我们得发送请求。XLHTPT方法叫。调用一下散的方法就可以了。就表示发送请求了。好,所以剩下的步骤就是我们要来写一下这个回调函数。方形CB。
13:00
好,这个回调函数里面呢,我们暂时,呃,暂时我们先写一个叫空点。Log控制点,Right还是log log是吧,Log在控制台打印,打印什么内容呢?我们写一个叫呃,我们写一个内容。啊,Response点稍等啊这样吧,简单一点就打一个或者叫弹出吧。叫A吧,弹出。爬了。如果这个hellollwood能弹出来,说明这个方法被调用了,这个方法被调用就说明这个函数绑定是有效的。好,刚才我说过,这个ready state,它的状态有零到四。我们其实只对四这个状态感兴趣。我们其实只对四这个状态感兴趣,因此我们这边要做个判断。稍等啊。来,我们看一下他的状态,我找给大家看一下啊。
14:01
稍等一下。稍等啊,状态应该快了啊。嗯。你看在这。但是有个地方是专门介绍的啊。要等于四。啊,等于四的时候才可以,我来给大家找一下啊,稍等我一下啊。不是六。
15:06
我来给大家找一下啊。处理的时机我看一下啊。处理的时机。270270差不多是282。270。嗯。算了吧,我一会儿给大家再找一下吧,啊这个电子书这样翻的话。太慢了,我直接写啊,直接写我们的对象,X htb request的对象,它一个叫。等于等于四。并且我们来看一下。
16:11
稍等,我随便找一个啊,就找这个radio。等于等于四,而且它的status等于200。啊,而且它的status等于200,那么等于200的时候,我就要去进行处理,稍等啊,我再回到最初的地方。回到我最初的地方。应该记在这啊,发送get请求,没错。如果你的read state等于得四,并且它的status.status这个玩意儿大家是见过的。等于等于200。大家会见过200,会见过404,会见过405,会见过500,是不是叫status啊?如果你的状态等于等于四,而且是等于等于200,等于等于200的时候,我要去做一些处理。好,我显示一个hello word。那行吧,咱们客户端我就把它写完了。
17:02
下面呢,我要来写服务阶段。好。我们在这边把它写一下啊。叫原声的Ajax。第一步。我们会在我们的这个叫呃,Type等于text。啊,Name叫叫name是吧,是叫name是吧,我们这边写个叫on blue。啊,Check,我们写的这么一个这么一个方法。然后呢,我们设置一个,当失去焦点的时候,我们一定用它。然后呢,我们第二步,我们要去定义定义切割方法。啊,那么在这个里面第一步,第一步我们要先去创建xml http request对象这第一步。
18:01
第二步,XLHTTP。Http request。Request。对象操作步骤,操作的步骤。第一步,我们有个叫open方法。是吧?第二步,On radio change。设置回调。第三步,发送send。发送请求,那么open里面有三个121。第二个请求的方式,第三个true表示是否是异步发送是吧?同学们啊,我们只学了一个get方式就可以了,其实我们有get,其实还有post啊,Post方式稍微麻烦一点点,因为post方式我们要把参数值带过去,需要在send里面去写,而且这边还要中间还要再设置一些属性啊,Get方式比较简单,这么三步就行了。好,就这样子再来。那么我们这边设置一个回调函数,那么在回调函数中需要判断XMLHTTP。
19:06
Request。XL。HTTP。Request。对象的状态。两个状态。第一个是readystate。是吧,叫第二个是叫status。好,这个read它的状态是零到四。好,那么这个status我们只对200这个状态码感兴趣。你如果是返回的是404,我就对你不感兴趣,只有你能正常给我反响应的时候,我才对你感兴趣,这是我们客户端做的事情。好了,现在下面我们下面的焦点就是把焦点转移到这个上面去了。我们下面开始写服务器段。找到我们的C了。找到我们的柚子。好,这是优质点读,没错吧,然后咱们需要在这边写个方法。Public子俊check。
20:02
好,这边是需要带个参数的name,因为我们这边有参数。没错吧,我们这边叫UN参数啊,Oper等于check UN name,所以我们这边写的是叫check UN name就这样。好了,那下面我们就要开始写的方法,当然了,这边稍微有一丢丢小麻烦,因为我们之前我们之前啊,我们的中央控制器或者叫核心控制器,我们在处理视图结果的时候,我们只考虑两个,我们只考虑两个,还记得吗?有印象吗?要不是以redirect冒号开头的?要不就是直接走的是渲染服务,极端转发是吧,同学们没关系,咱们写到那边再说,先把咱们这边先写完再说啊。好,下面我们来写这个方法。那首先我从DA开始找到use do,现在呢,我得补个方法。Get string name。好,那我得写个实现类呗。好,补一下吧。
21:00
好,写个这个方法,Return load。Select from提杠user will name等于就等于一个值吧,用等号算了啊,Name行吗?不就这样了吗?那就看我这个能不能查到呗。所以我在找到service。Service。在长。找到user service。Get。You name。好,我们再去补个方法。User do.get user name可以吧,就这样,那行,这方法我也把它写好了,我们再回到控制器,控制器里面去调用一下呗,User service.get user,把u name把它放进去。然后他会给我们返回一个user。好,我们可以做个判断,If user不等于now。表示可以注册啊,不表示不可以注册啊,表示用户名已经被占用。不可以注册是吧?Else表示用户名可以注册。
22:03
没错啊,同学们好,现在呢,我怎么做呢?现在我就在这个地方,如果用户名已经被占用,不可以注册,看好了我一个字符串。我什么呢?杰森冒号大括号。好,冒号一。这写的啥玩意儿?这是个前缀,表示这是个暗号,表示我后面给你发的内容,我是以JA冒号作为前缀的,后面我用了个大括号,大括里面前面出现了一个字符串叫u name,后面用了个冒号相连,前面这个就是K,后面这就是value。啊,后面的就是value。好,就这样子。如果是下面的内容,我就在这边写一下return。杰森冒号?零。我就写个零。啊,就是这样的,当然了,这个地方如果大家想简单处理的话,我可以直接这么写。我可以直接这么写,Return。
23:02
Aja冒号一。Return,冒号零,我这么写的好处是什么?将来你把这一个长串字符串发给这个。发给这个中央控制器,中央控制器一看你是以Jack冒号开头的,就知道你给我后面给我发的内容不是一个视图资源的名字。能不能听懂?你给我发的内容不是一个视图资源的名字。那么我就可以把冒号前缀把它砍掉,只留下后面这个值,然后交给客户端,然后你客户端你再根据零和一再做,再去做你的业务规则的判断,能听懂吗?比较简单的,不就这么写吗?只不过现在我想把它写的好看一点。这种方式是可以的啊,是没有问题的,因为我不想用这个方式,用了后面这边代码还要再改,挺麻烦的,我干脆就一步到位,直接改成这样算了。我们还没有讲建层的新课呢,不着急啊,总之你只要记住,我传了一个字符串交给了客户端。
24:01
我传了一个字符串,交给了客户端。再来。再继续。好。那。这个方法我写好了,那你肯定要给中央控制器嘛,咱们这个地方得把中央控制器稍微改一改喽。哎,在家暴里面这个一点小麻烦没关系啊,大家看我改就可就可以啊,大家还好是吧,不需要自己动啊。好,选中它。首先首先这玩意去掉吧。好再来,我把它删掉。然后呢,然后。嗯,我现在把它已经把它删掉了,删掉之后呢,我得把之前的拷过来。之前我记得是不是在这里面呢。SSM我看一下啊。
25:00
这边这边已经把家宝已经改掉了,所以嘛,在22里面。大概。打开对的吧。就是它啊,应该就是这个CTRLC拷贝一下啊拷贝一下。直接扔到我们这里面来。根据V。行,我粘过来了吧,我把它粘过来了啊行,粘过来之后我找到。他找到它是不是就是它把它改一下。好。往下走,往下走,往下走,往下走,试图处理是不是这个就在这儿,所以我们这边做个判断,L if。没有if。我们来做个处理。如果method。Start的位置CTRLC拷过来放在这,如果你是以叫J号开头的是不是?啊,如果是以JS号开头的,我们这边得搞个字符串,根据C。最后称呼叫杰森ST。
26:01
行吧,同学们啊,叫杰森S,然后呢,嗯,就是我已经把前面这玩意儿已经把它给截截断了啊叫杰森冒号已经截取掉了,是不是只留下后面的内容,然后我要把后面的内容要发给我们的服务器。发给我们的客户端,response.get。Get right。Print the writer。Out对象。好,After是吧,同学们。好,我们把它发过去。我们叫杰森STL。啊out flash就行了啊,这样就表示我发过去了。就可以了啊,这样就可以了,行。那你发过去之后,我们的客户端是不是就要接收。接收接在这啊,所以我这边是可以把它接收下来的,XHTP它叫response text,哎哎,这个就是我接收的值。
27:02
我把它摁了它一下。好,下面这个我就删掉了。从这到这,CTRLC。表示服务端响应给我的文本内容。啊,表示服务器端响应给我的文本内容叫response text。行吧,咱们下面就要开始操作了。找到它,找到它,我们要考虑一下啊,Artifact把它删掉,再点击加号,再点击把它再加进来。啊,点击应用,点击OK。这边现在应该是没问题啊,应该没问题。启动一下。
28:34
OK。应该启动差不多了。行,我们来试试啊。回到这边,呃,这样为了为了防止我刚刚的看看,我得看看它有没有生效,我在这个地方我是个断点行吗?同学们。行不行,我说个断定啊。好,我们来试试啊。首先这个名字我得看他有没有注册,我先看数据库啊,找到book DB打开。
29:02
打开。找到user。应该没有是吧,没有星。放在这里面,然后我得让他数据焦点,是不是我得让他数据焦点,我先找到那个CTRLCTRL。是不是这个方法?我在这边收断点,我看他能不能进来,行吧,同学们如果能进来就是说说明他已经给我发请求了呗。先试试啊,有焦点了,视觉焦点。还没进来吧,没进来就说明有问题,同学们。好,所以右键检查。一起来看一下啊呀,怎么有三个虫这么多?Open。他说他是一个valid http method。啊,我写错了,稍等一下。我是不是这个三个参数的顺序搞错了。看一下啊。往下走。
30:00
Open,哎,你看果然搞错了,第一个放的是get,第二个放的是U,是吧,同学们,两者颠倒了,那行吧,不好意思。换一下啊。回到。回到这。是吧,同学们。顺序颠倒啊,剪切。是不是啊?换成这样就行了啊,再试一次。再回到页面。用户名把这个一删掉。好,我们看一下他能不能给我更新过来啊。回到这。刷一下。哎,进来了吧,现在他给我进来了。稍等一下啊嗯。先停掉。再启动。
31:22
OK。呃,现在咱们先不管它,先全部清掉啊。OK。没问题,好,现在呢,我把端点放在这里面,然后呢,我先右键啊,先右键看有没有错误啊,检查现在没有错误,然后呢,咱们把焦点放在里面,然后再失去焦点。我们看一下,哎,他进来了吧,进来了OK,往下走,现在已经到服务器端,只要他能到服务器端,那就说明客户端给我发的异步请求是没问题的。是不是第一步成功,再来看第二步。
32:06
UN,我们看一下UN name hello 20222,对的吧,获取到了我们执行这个方法,这方法估计应该没啥问题吧。啊,这方法有问题啊。哪里有问题啊,同学们。哎呀,真是的,真讨厌。因为我们使用的是它的这个源代码方式,源代码方式这玩意儿这里面没改,应该在这里面是吧,同学们,嗯,这个真讨厌啊。那说明我们考的不是最新的。啊,是不是啊。但是我放在文件里面,我之前应该改过的呀。是吧,我不是把它改成那个数据连接池的方式吗。是不是同学们,我记得是的啊,稍等,让我看一眼。啊,我改完之后就删掉了。我改完之后就删掉了,不应该吧,我我记得我应该留了一份的啊。那还好,还真被删掉了是吧,哎呀,这个真是的。
33:03
那行吧,那我就硬着头皮改一下吧,反正暂时你想把这个改过来也也也不麻烦啊,不过DB行吧,同学们暂时先这么改一下算了啊。原来我把这源代码删掉了是吧,这个真是的。那行,这个已经改过来了,再再来启动一次。再来试一下啊。坚持一下啊,五分钟我们就结束。好,这个页面已经出来了啊,没有问题,那行吧,咱们让它失去焦点。
34:03
数据焦点哎,它是不是反馈回来了,对了吧,同学们u name冒号零反馈回来,如果咱们写一个有的我看一下啊。哪个有的,比如说Li是有的是吧,但这个好像是之前的是吧,我故意加一个行不行。故意加一个啊LI2022好OK好,拎了2022@126.com0行吧,同学们,我故意捏造了一个啊,故意捏造一个,现在我们再来试一试Li了。刷一下啊。好,放进去,然后试试数据焦点。你看U0,哎,还是零啊。啊。哦对,是Li了,不是hello,哦,搞错了再来,那我就得写一个叫叫LINA2022是吧,行,再试一下,哎,用那说一呀,哎就是这样。所以那就很简单了,同学们。我现在已经响应已经拿到了,所以来回到JS文件稍等啊,把这边全部关掉,全部关闭。
35:06
再回到我们JS文件。我们找到JS。就是他。那同学们,我们这边其实不需要alot,我们拿到这个值这玩意儿之后,我们不去把它解析一下不就完了吗?是吧?VI。Response。Text等于这玩意儿对不对,然后刚才咱们得到的值是得到值是是是是什么来着。稍等一下啊,咱们再来看一眼。叫大括号冒号一好。叫大括号UN name冒号一是吧,同学们,它就是这个格式。好,V2。来,我们来试一下啊,我们来看一下。嗯。VR我们写个叫result,等于。
36:02
等于等于V。叫EV。好,我把这个response text把它放进去,然后我们alert一下。好什么呢?Type of,我们看一下这个result,这个看一下这个result是什么类型,咱们一起来看一下。刷一下啊,多刷几次。嗯,有问题啊,右检检查。On。Expected to。冒号,这个冒号它不能识别。这么号不能识别。冒号它不能识别。这真讨厌,这样吧?稍等一下啊a lot。Response text,我先把它打印出来。刷一下。好,再来数据焦点,它叫u name,冒号零。
37:03
冒号应该没问题啊,冒号应该是没问题的,不管他啊,无所谓。无所谓了啊,那我就直接对它进行解析了。Response text split已冒号进行分割。我就以冒号进行分割。我不就取到后面的值吗?甚至于我现在来,咱们因为还没有学Jason,所以说有点小麻烦,我就直接判断不就完了吗?Response text等于等于等于等于啥?不就完了吗?A lot。嗯,如果等于等于一等于一,我们定义的是不能注册是吧,叫用户名已经被注册是吧,同学们。好,Could you see。用户名可以注册。是不是啊,用户名已经被注册和用户名可以注册,我们就对这这总行了吧,本来我想稍微扩展一点点,想把这玩意儿转化成JA Jason对象啊,转化成jas对象,然后呢,直接去取里面的属性啊,这个他总告诉我冒号有问题,我怀疑是不是我这个单引号的问题啊,先不管。
38:08
刷新一下。好,再来。他没刷新过来。没有刷新过来啊。还没有刷新过来,诶现在有了是吧,用户名可以注册,我们写个叫LINA2022,好再失去焦点。哎,用户名可以还是可以注册。这应该不行吧?是吧?拎了202不可以吧,因纳米已经是一了呀。等于等于U冒号一是的吧。对的呀。嗯。有乃么好?
39:01
这是一个字符串呀。难道我这个字符串有问题?我在这边设个断点,稍等一下啊,我来设个断点,还不信就行了。因为这个原生的比较麻烦啊,原生的稍微麻烦一点点。回到controller。找到这儿,找到这儿,再找到这好。我把这断点去掉,断点我去掉了啊,断点我直接去掉了,我直接返回的是字符串。再来。刷新一下啊。刷一下。然后断点不管它全部跳过去。好数据焦点。用户名可以别注册,我回到S。好,我现在在这边来说个断点,帮我一起来看着啊。我来设个断点,我就把断点放到这行吧,同学们把断点放到这啊,看一下。
40:05
数据焦点。我们看一下它的值,你看这看这。能看到这小符号吗?哎,就是这个小符号坏事了。啊,这个大家一般不太容易发现,OK,所以这是哪里的问题呢?是哪里的问题啊,好在这儿呢。这就直接说了啊,在我们的dispa。这个地方。行吗?同学们,就是他导致的。他的line就把这个换行符给带过去了。可删掉。一删掉就好了,咱们再来看一下。启动。没关系,大家只需要看一遍啊,你不需要去去经过这个痛苦的过程啊,你看一遍就可以了,因为我们后面要使用access去给我们发请求,那么我们在发的时候,它已经全部给我们封装好了,我们就不需要再面对这个原生的字符串,也不需要去考虑到底是有没有换行符,不需要考虑。
41:04
啊,他全部给你把这个细节给屏蔽掉了,OK再来。再来。现在右键检查。找到SS这个断点啊,现在断点还在这没错吧,行,现在你再来看它就没问题了,数据焦点再回到这。你看。后面是不是没有了,那没有的话那就对了,我们往下走。Step over,往下走。再往下走。用户名可以注册,没问题,再来一次lida。拎了202是二二是吧,来,失去焦点往下走。走一步A一下,然后再来,再进去是不是就能进来了。刚才一直进不来,就是那个就是那个叫换行符的原因,行吧,同学们,所以说你耳朵弹感觉我这个值是对的呀,但是总不总是出不来啊,就是因为有换行符存在,OK。好了,就是这样的。当然,大家不用担心,老师怎么这么麻烦啊,你不用担心,因为我现在还没有给大家讲杰森呢。
42:05
啊,讲了Jason之后,我们可以把传过来的字符串,可以去把它封装成JA算数据介算对象,那样我们再去操作就会方便的多了。然后再往后我们学X叫学这个叫框架的时候,又对原生的Json又进行了一层封装,我们也不需要去直面这个原生的Jason,那会更简单。啊,但现在咱们是用的是最原生的,所以说大家会觉得很繁琐啊,但是呢,我觉得大家看一遍没有坏处。OK。好,所以我把这里面a little把它去掉啊。把这行把它注释掉。好,就变成这样就可以了,行吗?同学们就把它变成这样,当然我们正儿八经的判断绝对不是这么判断,这么判断太繁琐了,我们我一定会对它再进一步的进行转化,把它转化成对象,它不就对应的是个属性吗?这不就对应的是个value值吗?是吧?同学们,哎,这个咱们后面再说啊。
我来说两句