00:00
好,这个咱们复制一下,接过来,好,这边呢咱们改一改,嗯,好,我呢一般做完一个模块之后呢,对这个模块都有一些功能扩展啊,咱们功能扩展一就完了,扩展一就是将这个分析对象封装了吧,接下来我再再来个扩展啊,这个扩展是得聊一下这个主见问题了啊。主线有问题是吧。逐渐能重了。不能是吧,这个能重吗?这个项目存在这个问题吗?肯定肯定存在啊,放心吧啊。这你都都想过了来。是这个嘛,张三嘛,是吧,新增吗?再来个张三。是吧,这不主见吗?冲了吧,行了,这,这肯定冲了啊,报什么错?违反违性约束编号几啊?
01:04
错误标号几啊?缩边上万啊,一来走。错误边上的一嘛。是吧,这是负啊,不是不是倒的意思,这是负号。错误编号呢,在Oracle数据库里边啊,它其实所有的错误呢,都给你编了号了。啊,都给你编了号了。一般呢,做DDA啊,比如说咱们有个职位叫DDA,叫数据库管理员,对吧,这个其实都很强大的啊,他可能会搞一些算法呀,这些乱七八糟的啊,家里的书呢,也是很多啊,真是这样,书架上全是关注这些东西。那比如说你现在的Oracle里面呢,出现一个错误编号啊,比如说杠啊零零什么幺三,出现这么一个编号,你说你这这你问DBA他都知道。常见编号他都知道是什么错误,他说你这么做这个错误就没了,这这就这么牛啊,这这个东西,这个DB也不好做这个。
02:08
这个其实他用的多了,就这样了啊,其实你你你想你在这个行业待了十几年了。你这个这个错误编号,你就以前见过,你现在他跟你说你肯定知道哪哪的问题吧,是吧,时间长了就这样了啊所以。这个跟工作年限有关系啊。这个叫违反唯一约束条件,对吧?为什么会出这个问题呢?因为数据库里面有一个主键叫张三了,现在呢,你又往里边放一个张三,它主渐不能重复,就会报这个错了。还有一个问题我需要大家记住啊,在Java编程中呢,如果这个异常出现什么circle exception。那你就基本上你就往数据库那块靠吧,肯定是数据库这这的问题,还有一个问题啊,就是大部分都是错误,都是出现在哪啊,都是出现在你这个sol语句写在这个上面,你sol语句有可能写错了。
03:02
有可能会出这个异常吧啊。还有。你数据库内部的错误也会处理个异常,所以你要是一旦是sqce你就放心了,这肯定是SQL语句这块的,或者说是你底层的数据库主建的出了问题了,或者是长度超了,比如说这个东西只能什么叉三啊,完事之后你非得给六个。称了到了啊,这个不行。操你们了。你比如说有的同学写着写着把这个org type呢,负了一个值,负的是reg date,有没有这种情况存在的,有的啊,就是这个登记日期嘛,19个长度啊,你这放放偏了,问号附错了,你想你现在把谁换一换呀,把这个和这个换一换,把ORGT放到这,把RG放到这,是不是肯定会出问题啊。这个这个看看啊,这个会出什么问题呢。
04:06
第三个位置放的是谁,这。来,咱们再提一下。这个会出会出什么错。来这边呢,我随便写吧,这个肯定是没有的,来走。有。走啊,看底层。啊是吧,说你EGOV这个用户下边哪张表啊,T的这张表里边哪个字段呀,Org type这个字段值太大了,实际值19,最大值是一。人家说的多明白多清楚啊是吧,这你一看就知道啊,这是肯定是这的问题啊,但是这个问题咱们同学也找不出来啊。找不出来呀,这个。可能也会早很半天这个东西行了,这是就是出这个问题了,其实有的时候咱们上课应该多讲点异常是吧,多出点错,多出点异常挺好的,以前就有同学同学反映,老师你这这这讲课,你这上课都不出异常,我们以后都都遇遇遇到一些异常不会调啊。
05:16
他说的有道理啊,所这个东西其实有有必要我们专门去出现一些异常去讲一讲啊,但这些东西没有时间啊,时间时间太短啊,咱们你看就是这每天都讲很多东西,你就再出点异常再调一下子是吧,这时间肯定不够了,所以就有一点希望你自己下去就做了。第一个出现异常之后,请将这个异常写到你的日志文件中粘过去。下边写上该异常是如何解决的?明白吧,第二天用到一个异常再贴进去,下边再写上该异常是如何解决的。这个东西你就坚持一个月,我相信你调速能力就上去了。明白吧,你这不是说你这一调空指针异常,它不会调。
06:00
空值,呃,像那个面试官问你项目开发中遇到最难最难解决问题什么问题?空指针异常是这个空值异常出现是最多的啊,但是这个问题是最好解决的。是最好解决的啊。所以我希望大家也能够有这种学习的一种方式吧,啊,自己的学习方式啊,知道该怎么学就行了,调你要想提高调调课能力,你看那我到你到你那之后,你看你家做错了,一报一行,我就知道你第几行是不是有问题。我啪啪给你调了,虽然语言哪哪一行有问题,我给你调了。所以这个东西是练出来的啊,我也不是说刚开始就就就就就这么会调了啊,不是这样时间长就会了,也可能还有一个原因啊,调错多了,调错多了就出这个问题了是吧。行了,这个不说了啊,咱们刚才哪错了呢,这边我再来一个,我再加一下,我把这个说一说张三写上来,写上写上这个下面没有重,就上面那个重了,这个时候我点保存就会出这个问题了,是吧。
07:04
嗯,违反唯一约束条件,好,我们在讲这个之前先来说一说这个页面为什么会变成空白页面啊,因为接着呢,我这个今天下午可能会讲这个阿贾克斯了啊,我们先把这个空白页面说一下,这个为什么是空白的呢?这个好像很好很好解释是吧,但是这个东西呢,其实不是那么好解释的,这个为这个页面为什么会变成空白的呢。啊。页面为什么会变成空白页面?好,给大家说一个东西啊,其实在浏览器来浏浏览器这个软件啊,其实也很牛的啊,这个浏览器。浏览器啊,这个浏览器软件的什么IE啊,什么什么谷歌的什么CHR是吧,还有什么这个这个这个FM啊是吧,这些浏览器。
08:03
这些浏览器呢,其实它都是,它都是支持多线程的,它自身也能启动线程。那就是IE浏览器,它其实底层去维护这个界面的时候,你想一想,它是不是底层也会这个软件本身本身也会有有有线程嘛,啊,其中有个线程叫UI线程啊,这个你得记住叫UI线程。UI是什么呀?用户界面吧,啊用户界面叫user interface嘛,叫用户的接口吧,啊用户接口。UI线程,那你想一想,这个UI线程是专门负责什么呢?浏览器啊,里边有一个线程叫UI线程,而这个线程是专门负责我们页面展示的。明白吧,啊好,我来解释一下是这样的,为什么会变成空白的,当你点完这个保存的时候。它底层会向服务器发送请求,我们找到代码在哪来找到我们web,找到我们的system,找到我们的yo yo a吧。
09:11
User ADD啊添加,那么添加这边呢,你当这边点这个提交的时候,Do save,他会提交这个表单吧,诶这个表单这个发送请求的action,这个路径到底是谁发送过去呢?是UI线程。把这个请求发送给了服务器。明白吧,但是呢,你要记住UI线程呢,它把这个请求发过去之后呢,他一定会把原页面全部内容清空,知道为什么吗?因为他要迎接新的内容。我在讲原理啊,这是底层的东西了,在浏览器里边有一个线程,叫什么线程,UI线程,而UI线程最主要的作用就是用来负责页面的展示。UI线程,比如说你点保存的时候呢,它会提交表单,当你提交表单发送请求的时候,UI线程,此时它会把这个请求,把这个数据全部发过去,并且UI线程会将原页面内容全部清空,迎接新的内容,其实是这样的啊,我把这个图画一画吧,是这样,这边呢,我们可以看到是IE浏览器,然后这边呢,我可以看到是一个什么呢?Web服务器,来我把它看成是一个web服务器,Web服务器啊,Web server吧啊,我就不写了啊呃,在这个里边呢,有一个什么呢?有一个serve that,来我写上,这是一个serve that,我就写上吧,这是个serve啊serve that是个Java程序吧,这个Java程序是不是负责处理一件,处理一个业务吧?嗯,行了,那是这样的啊,在这呢,是一个IE浏览器里边是不是有一个表单。
10:43
表单里边有什么用户名啊,有什么密码对吧?啊有这个东西,那接下来呢,我们在这呢,有个按钮,一点那个保存,它会发送请求。发送请求呢?是谁发的呢?UI线程他去负责发送这个请求,他一旦把这个请求发过去之后呢,再发的时候一定要注意了。
11:04
它会将原页面内容清空,也就这个页面变成什么了,变成空白了。这个页面空白,明白吧,这是个空白页面,接下来呢,我们服务器端的这个程序是不是从头开始执行,执行到尾,这个可能需要执行一个小时,可能需要执行一分钟,也可能需要执行一毫秒,反正是需要一段时间。对不对,这个可能会需要十秒钟才能执行结束,那这个页面需要空白多长时间,十秒钟的时间,那最初的时候你想一想,那最初的网络只有28KB是吧,那个那个宽带你想一想,那点下去之后半天都是白的呀。是吧,整个页面是不是都是白的呀?啊,那么接下来这个执行结束之后,它会返回数据,明白吗?他一旦返回数据,谁去接这个数据呢?强调一下还是谁UI线程,因为UI线程要负责整个页面的展示吗?那这个时候UI线程就会把数据接过来,是不是就把这个东西展示出来了,那这样的话,大家想一想,是不是这个页面从有变成了无,又从无最后变成有吧,所以任何一个页面都是从有变成无,从无到有的。
12:05
这个单能理解吧,其实就是UI线程,UI线程是我们浏览器内置的线程,这个线程负责做页面展示,并且负责发送请求,而这个请求是这样提交表单,所以UI线程就会把原因全部清扫一遍,清扫干净之后呢,这就是空白了,接下来程序执行,执行结束之后返回,返回之后UI线程拿到,拿到之后再做展示就行了,其实都是UI线程干的。大家知道哪个是UI线程的进度吗?在我们浏览器的这个位置上,我不知道大家有没有注意过,在这个位置上经常会有个进度条。这个进度条呢,就是1Y线程。它的执行进度明白什么意思吧,你见过那种情况没有,就是点完之后呢,在这卡半天页面全是白的。卡着吧,为什么呀,服务器端没响应完呢,服务器端响应完,UIC端接到之后,请问页面展示结束这个页面这个这个进度条是不是就没了。
13:00
所以这个进度条是什么?是UI线程的进度。明白这意思吧,是意外线程的进度。UI线程记住啊,叫用户界面线程啊,这个线程它发送请求会将原面原页面内容全部清空,迎接新的内容啊,把这个新内容拿拿过来展示浏览器刷新按钮F5刷新刷新,刷新的就是UI线程,明白吗?刷是UI线程,记住啊,也可以理解成是一次请求。啊,刷的是一次性刷。所以重定向呢,A资源重庆向B资源最后显示的地址是B吧,啊我们刷的时候刷的是什么呀?刷的是B啊和A没有关系,刷新的刷的是U外线能啊下面你看啊,我刷新这能看见吗?这个来我刷一下。能看见吗?进度条能看见吗?看不见啊,行吧,那就这么着吧,啊,不管了。这这就不说了啊。这个我这是能看见的啊,这个凌波呢,它可能发布的真的可能。
14:02
比较少啊,所以这边你就看不见,看不见算了啊,你自己到时候刷一下就行了啊。嗯,刚才呢,给大家解释一下这个UI线程是怎么一个情况啊,嗯。页面为什么?哎,对了,还没解释完呢,页面为什么会变成空白是吧?来再来看看啊,张三写上写上写上写上来写上好,我们点完保存情况,我点完点一下就保存,这个瞬间谁去发送这个表单是UI线程发对吧?UI线程发了这个请求之后,UI线程负责把这个界面干什么清空,所以就变成空白了。他为什么没有新的内容,那是因为我们底层这个加法同学大家看打开这个,打开这个叫什么insert,最后是不是出现异常catch了,Catch中异常是不是打印异常对战了,这个条件是不是不成立,是不是没跳,所以是不是就没有下文了,那没下文那就是空白了呗。理解吧,那为什么有的时候就有了呀,那有的时候你这写上去,你这你说你再写一个对吧,新脏这边写一个写上写上写上来,再写上填保存就行了,为什么又有了呢?是因为你这执行这个了,你这一执行这个,这个是不是跳到JD了啊,那个JP是不是做一面展示U外线是不是能接到数据啊,所以我说一下啊。
15:17
在任何一个请求下边,其实都有一个空白的瞬间,这个空白的瞬间呢,有长有短,那跟你的宽带就有关系,在家上网,如果宽带特别高,光纤的,那你点进去可能E就出来了,你看不见空白。是吧,但是呢,如果我们宽带比较低的话,网速比较慢,或者人比较多。是吧,那这个时候你点点完之后老半天都是空白的,所以肯定是有一个瞬间是空白的,那是肯定要有的。所以UI线程在里边起到作用了,它会将原件全部全部清空,迎接新的内容,赢不到就是空白,迎不到就是新的。明白吧,啊,挺好。哎,但是有的时候会会不会出现404。
16:01
404我问你是不是相当于引导东西了。赢荡是这是谁发过来的东西,是不是他们盖的服务器被我们发过来的404错误啊,所以五百四零四点什么405这个错误,这个最后的界面是有的,这个界面是有,那不是空白,原因是什么?原因是UI线上有没有接到数据啊,接到了接到谁的数据啊,他们的福器发的呀。是这意思吧?现在只不过现在在这边,你想一想,为什么没有报什么那个叫什么什么错误,500错误啊。来,接这来看看,写上。他没有报500错误,因为这个错误是哪的错呀,是是我们这二数据库里边的错误,他没有对应我们的错误编号,所以这边呢,它就他克的服务器没有干什么呀,没有把这个错误发送给我们,所以最后任何反应都没有了,就是空白的,所以大家必须掌握啊,页面为何会全部变成空白,因为页面从头到尾要干什么,全部刷新一遍。我们称作刷新,刷新指的是UI线程执行一遍,UI线程只要发送请求会全部清空,迎接新的内容,营到则有赢不到。
17:09
咱们就是空白。行吧,这就是变成空白的原因,我们下午会讲这个啊,或者叫阿贾格斯啊,这个没有一个什么专业的名字。这是专门解决页面的局部刷新的啊。好了,那么大家就知道了,这个要这样做的话,是不是得在保存之前得干什么。最起码在保存之前是不是应该在这个位置上。判断一下这个用户代码是否已经存在了,如果已经存在怎么办?如果已经存在,就给他报个错,但是一定要记住是不是点完保存,最终是不是还得回到这个页面上,在这个页面上弹出一个框,在框上写一句话啊,这句话叫什么?用户代码已经存在,请重新填写了,那如如如,如果这个用户代码要是不存在,我点完保存是不是就到那个下一下一个这个页面了,行,就这么做吧,咱们先这么做,行,我把这个功能写一写,来这边呢,我给它关了,这个我先关掉,然后这个我先关掉,我看看这是第17个版本,是我新复制的吧。
18:13
来我打开它啊,打开它之后呢,我再写一写,来写一写第17个版本啊,不写上17,首先呢,我讲了一个很重要的东西,UI现象啊,位于。对于浏览器中的UI线状。直接写吧啊,这个东西你就下一周看一看啊,这边我就说了啊,浏览器中的UI线程分析啊,分析整个页面为什么会变成空白页面啊,会变成空白页面啊,分别这个我就不再写了,第二个就是保存用户信息之前需要验证什么用户代码是否存在码,如果存在和。
19:03
回到什么原页面,并且提示什么错误信息吧,错误信息呃,如果不存在和直接保存用户信息,然后呃,保存成功之后跳转到哪分页查询,明白我的意思吧,啊就这个意思。来这边画上去啊,来这边画上去行了,这是两个啊,保存用户信息之前,需要验证用户信息是否存在,如果存在回到原页面。提示错误消息如果不存在就保存,那这样的话显然是这个音色了吧,是不是其他地方都不用动,就就就就就改这音色就行了,这个音色呢?你想一想,在这个音色的语句之前,你需要干什么?查询数据库吧啊,验证用户代码是否什么存在了,来怎么验证?四口语句吧,怎么写select星from t什么yo吧啊where条件是cold等于什么问号吧,知就行了啊来咱们这边去了它行了,这边的话应该编译一下吧,编译啊,编译完之后要不要赋值啊,啊附上值给一个问号负一个值,什么值啊,一号扣了吧,附上值之后结果集查询了啊结果集点cutecute for啊查询完之后呢,咱们上面需要结果集写上去,Without s啊写上就可以了,这边咱们把这个结果机给它关了,嗯,是这样。
20:33
好,那么接下来这边的话,大家想一想,我们是不是得判断一下if,如果rs.ne这说明啥,有没有啊,有是吧,那加个题板的。没有吧,没有就干什么。是这样吗?啊,没有,就这么多。或者说是不是也可以换一种方式?行了,我就我这就这么写了。
21:01
如果有的话,我加个else行吧,Else代表没有吧,没有的话我就执行这个吧,嗯,好,那这样的话我是不是可以在外边给一个罐类型,我可以在给个罐类型啊啊罐类型叫pass for行吧,那我这个时候就可以把这个附上值吧,嗯,把它附上值负吧,有没有啊有。行不行,还有一种方式,什么方式啊。还有一种方式,不一定非得这么写。直接就是has yo叫RS点什么next行不行,然后判断一下如果什么如果叹号has yo点是不是也可以把L去了,这都去了吧,没有的话你干什么呀?是不是保存啊保存。
22:03
有吗?没有有吗?有的话怎么办啊,不走这个了。如果没有了。这没有吗?取反吗?没有就执行这个了,好接下来怎么办,这边。如果什么。L,没有吧,没有的话你判断一下看看等于几啊,是否等于一吧,减了啊,放到这就行了,那这边怎么办呀。你想现在呢,你已经查了,查了之后呢,你判断呢,这个用户代码是存在的,存在这边呢,你怎么办,你是不是报错呀,报错之前你存一个message啊,这个message的名写上去叫什么呢?来我直接写了啊,叫用户代码已经什么存在,请重新什么填写行吧,这个时候的话,Request就set attribute,是不是可以存一个error message啊来把这个error是不是存进去,好你想一想这个字符号现在已经存到哪了?
23:02
已经存到哪了,是不是存到快里边了,那就转发还是重进项啊,转发了get的request的,你想一想这边你你已经报错了,你还回到哪就行了,哎,对你你你是不是在那个页面上点呢?点完之后你报错了,报错之后你是不是还得回到那个页面上啊,所以这个路径怎么写啊,你斜杠system,斜杠system,我就叫u addd吧,点你肯定是个JB了啊。那不是HT,因为在这个JS上是不是得显示这个东西啊,这是个Java代码了,Request不是存那个错误消息吗?你到了这个JSP之后,你是不是再把这个存块里面,把这个错误消息再取出来啊。所这个时候得改了啊,这全改了啊怎么办?打开打开打开它还是H号加上去来双a page置paint in coding,写上GB18030,写完之后关闭,选中它F2,给它改成ZP,改完之后有好几个地方需要改。
24:01
嗯,改完它之后呢,最起码我们有一个位置练不到了,就是那个新增,新增的话应该是在那个叫u.J里面有个新增按钮。这不又是分页查询吗?里面不是有个新增吗?哪哪新增了,那新增量哪了,在这吧,你往后看这是不是得改一改了,改改成VIP了啊,所以所以得改好啊,不改的话404了吧,行,那我问你啊,这个时候呢,有这个用户了,那你是不是把错误消息存进去,存进去是不是跳回去了,跳到原先的优点点GD,我问你跳到这个JSP之后。在这个JSP上,如何把这个错误消息给我显示出来,如何把这个错误消息给我弹出来。先取吧,因为你存了呀,所以这个时候我就可以取了吧,怎么取request有个方法叫gett tribute对不对,Gett tribu可以取啊,他取谁啊,它是不是可以取,那个叫error message吧,取出error message来error message吧,Object吧,啊error message好,这就取出来了,但是我问你这个有没有可能等于空。
25:11
啥时候这个东西等于空不是。第一次访问的时候。没事。就是没保存之前点新增按钮跳过去的时候。没凑肯定不回来这个页面了。你没错,我还不带这个音练吗?不回来了啊,什么时候这个短信空,这这很简单,这什么时候啊,对你你你你打开它,你想一想,你是不是有这么一个一个一个一个瞬间的你打它,你打开它,你点你会不会点这个新增啊,你点这个新增是不是就是跳到这个JP啊,你这个跳到这个JP,这个request要get载出个能取出数据吗。
26:00
这个啥时候这个才才才才才有东西啊,这个变量什么时候有东西呢?就就就只有当你干什么,只有当你点那个保存,你这个用户代码已经存在了。你又回来这个页面了。是不是这个request调get的,是不是才是不等于空的。所以怎么写,接下来怎么写。所以说我在这个script里面需要写个什么alert吧,Alert好,这写上写什么用户代码已经存在,请重新什么填写吧,好,那我问你这句话是一个什么普通字符串对吗?是放在词汇标签里的普通字符框吧,普通字符框啊,来普通字符框,你看这是普通字符框。你别多想啊,这就是普通字符串,这个普通字符串是不是动态的,以下普通字符串是动态的吧,普通字符串是动态。有两个值吧,有或者什么没有,有这个语句,或者是没有这个语句吧,什么时候这个语句没有。
27:09
如果这个值要是等于空,这个语句有吗?怎么写是Java程序吧,怎么写啊,如果什么这个吧。要是等于等于none呢,或者说它要是不等于none呢,只有它不等于none的话,是不是把这句话打出来,怎么打,一定要给它封起来啊,一定要封,一定要封起来,这个要封起来,来封起来,这是加法程序对吧?好,这是字符串对吧。如果这个要是不等于空是才有必要存在这句话。那么这个信息怎么怎么会是动态的呢?删掉先括号百分号等号百分号先括号,写上error,什么me。这能看懂吗?行了,我删了再来,再重新来一遍啊,我们有可能访问这个JD的时候,有两种情况,第一种情况是什么?就是我点的什么。
28:10
新增按钮直接跳过去的,对吧?还有一种情况就是我点完保存按钮出错了再跳回来的,那么由于这两种方式,这个request get垂得到这个值有可能等于空,也有可能不等于空,如果这个不等于空,就证明一定是因为执行的这个类跳到这出了错了。是吧,所以我得判断一下,如果它不等于空,我就来一个aler的语句,听明白我的意思了吧,所以这边呢,我就不写它了啊,这个我就直接减了,减了之后呢,我就放到下边了,好,删掉,然后往下走,走到这写过来,写过来之后我们再来看一看,这边判断if对吧,如果我们说什么every message不等于那样的话,就报错了,报错了咱们就要一个alert来封起来,来封起来,好,这边咱们写上缩进一下,来缩进一下啊,这边给它缩进一下,缩进一下,来整齐一下这边alert吧,弹出弹出这个error message啊,就直接把这个error message放到这就行了,这是一个加法程序啊,好,这写到这写这给回来这就可以了。
29:16
这大家能理解吧?好,双引号能去吗?双引号去掉会有什么后果?那你这个error message将来是不是拿出来了,拿出来之后它是不是直接放到这了,放到这了吧,好,GS能执行这样的程序吗?他会认为是个Java变量是吗?你们还能变黑了吗?这是黑色吗?这是个加变量吗?呃,这是一这样啊,我在这写上,比如说我写上user name,好,这是个变量吗?这是不是变量啊。这是个变量啊。听了吧。这个你加上他就行了。
30:01
明白吧,加上它你加上它的你这边就删了啊,删了整整体去掉加上等于error什么来这样才可以啊,记住了这个是Java吗。不是啊,从这个符号开始到这个符号结束,这是什么加啊,能理解吧,这样就可以了,但是这样肯定会会不太不太不太好啊,大家看看会会有什么后果,来把服务器起一下啊,起一下之后呢,我就直接来咱们把这个测了,测了之后再休息啊,来点它。呃,点登录点这个点这个点完这个之后呢,咱们看看新增啊,新增这边呢,我来。没事吧,你点邮件查看吗?一个原文件里面,你看一看这个地方有那个alert吗?有那个alert吗?没有啊,这是不是没有那个at呀,那为什么那个他没有啊。因为这个是空啊。这request盖的是不是空着啊,所以没有这句话,所以这个时候的话,你点啊,比如这写上张三,然后再写上张三,来再来再来好点保存,点完保存你看。
31:10
是吧?好了。有了吧,有了。诶,但是为什么后边是空白的呢。为什么这个框框后边是空白的?它肯定有个空白的瞬间,我说过了,UI线程它负责发送这次请求,将原页面有一个有东西吧,变成没有了,有啊变成没有,再从没有再变成有了这么一个过程,那大家想一想,现在走到哪一步了,已经。不是没有啊,已经到有了。这个网页里面没东没东西吗?这是个东西吗。这是吧,这个是不是你脑袋的语句啊。
32:03
是不alert语句啊,但是你要记住alert语句由于直接我说了,昨天我好像讲过讲过一个alert,如果直接放在这个school标签里边的话,这个这个语句在什么时候执行,在HTML页面加载时就会直接执行这个语句,对吗?而这个语句会阻滞,会暂停UI线程。我昨天说过没有?这个alert语句它会暂停什么UI线程暂停之后下面还下面这个H下面body加载了吗?没有加载,所以还是空白对吗?但是我点完确定呢。点完确定,你看有了。理解原理吧,这是原理啊,一定要把原理掌握了,你原理不掌握,后期学阿贾克斯不好学。好了,那么请问大家能不能搞一搞啊,让这个页面啊。最起码咱们不要有那个框的时候不要空白。这边我写上啊,U现场会这个alert语句和confirm啊,把这个也写上confirm语句都会暂停,什么UI线程直接暴露在哪呢?Script的标签中吧,在什么H页面加载时执行啊,此时body加载了吗?没有加载啊,所以弹出消息框的时候,后面的什么页面是空白的对吧?啊,是空白的好,怎么写,能做吗?
33:39
能做吗?来改一改,把这段改一改。好,把这个改一改吧,怎么做?我希望页面HT面加载完执行这段代码,是不是想到了一个东西叫load?
34:00
想过没有,你看就怎么用啊,加一个东西啊漏吧,就叫什么函数吧,配函数吧,行不行啊,把这个写完啊配知道吧,也就这个函数什么时候就行,同志们。函数什么时执行页面加载完毕之后,是不是才会出现这个函数啊,行了,这边怎么多了个东西,这是什么东西。杠杠的。一掉啊来咱们再来啊,这边有个什么标签吧,在里边写个函数吧,方式就叫什么拍漏吧,好这个函数什么执行以下啊函数。在页面H上加载完毕之后再行吧,再执行好,那么请问这边是不是把这条语句写上就行了。但是还是整体吧,还是复制以来放到这就行了,你看这是怎么嵌套的啊。
35:08
GS签到Java Java签到GS。是吧?哪个是动态的,这一句话是动态的,对吧,这句话有的时候有,有的时候干什么没有。但是这个函数是不是一定会执行,因为你的onload后边指定了一个函数吗?对吧,所以这个在页面加载完毕之后,这个函数是不是一定会执行,但是关键的问题在于,这个函数里边有的时候有东西,有的时候这句话没有的。是吧?好,咱们接下来看一看,这边是不是不再出这个问题了。把这个打开点新增写上S来这边存在了吧,走。你看再怎么动,你后边是不是有东西啊,为什么后边的东西,因为这个框啥时候执行啊,页面加载完才执行呢,啊就先这么干,但是客户肯定不满意是吧。
36:01
哪不满意啊,你用户代码就是用户代码有错呗,你干嘛把我用户密码给我清了。这能不清吗?这个页面是不是全新页面,跟原先那个页面是不是根本就不是同一个页面了,都是UIUI线能干的好事嘛,是吧,他给惹的祸全给清了。你以前你想你上网,你这填填了一天注册,然后你填填填填很多,填了填老半天,填了快一个小时了,累坏了一点,好有一个问题全给清空了。这肯定不满意啊是吧,行吧,休息吧,啊下一个。
我来说两句