这本书太精彩了,记得速度有点儿赶不上看,还好周末到来,可以拖拖看的速度,嘻嘻。赶紧记记第二章的内容:
忘却无聊的序号,新的一篇应该有新的序号,才能更加精彩,到了新的篇章,开始新的序号。
0、该学习如何异步地说话了。本章,你会得到异步JavaScript的独家内幕:如何在不同的浏览器中送出请求、精通就绪状态以及状态码,顺便 + 些动态HTML的技巧。(P65);
1、极速pizza实现步骤:
1)取得顾客的电话号码;
2)请求顾客的地址;
3)取出顾客的地址;
4)更新订购表单;
5)为顾客的pizza下订单;
(P74 , 84, 103, 110, 121);
2、JavaScript程序代码不一定要在函数内。
如果网页有任何JavaScript程序代码独立于任何函数之外,这些程序代码会静态地运行。
不管JavaScript代码散布在HTML页面的何处,只要浏览器发现就会被运行。但是对于所有静态的JavaScript来说,一定是在页面可以被使用之前运行,这才是我们这里的重点。(P92~93);
3、我们需要让服务器端的家伙帮我们做一些事:
1》创建新的php脚步以通过顾客的电话号码找出顾客的地址;
2》将此脚步命名为lookupCustomer.hph(请求的URL);
3》想办法让此脚步可以接收到顾客的电话号码;
4》不要让这个脚本返回任何HTML,我们只要顾客的地址。
(P94);
4、POST请求通常最适合用在涉及敏感数据(像信用卡数据)或大量数据的请求上。(P100);
5、每次请求对象的就绪状态一有改变,浏览器就会运行你的毁掉函数。(P103);
6、在显微镜下研究HTTP就绪状态
(P104~105);
7、当服务器已经完成请求时,它会让浏览器知道,这个时候,服务器的工作就完成了。接下来该做什么,是浏览器的工作。(浏览器运行JavaScript的回调函数,而不是服务器在运行。)(P107);
8、就绪状态改变时,浏览器在什么呢?
1》浏览器会运行JavaScript方法并对Web服务器发出一个请求;
2》当请求被处理时,请求的就绪状态会被改变以及反应出请求正处于哪个状态;
3》每次请求的就绪状态一有改变,浏览器就会运行你的回调函数;
4》回调函数检查请求对象就绪状态,只有在请求完成之后才会继续运行;
5》当浏览器从服务器取得完整的响应时,会将响应存放在请求对象中;
6》如果请求完成,回调函数就可以从请求对象中获得服务器的响应。
(P108);
9、在异步应用程序中次序很重要。
当你编写同步应用时,你通常可以把字段以任何次序放在表单中,但对于异步应用,你必须对表单的外观多花一点心思。(P114);
10、IE是相当聪明的浏览器,会试着做许多事以帮助用户有更快更好的浏览体验,比方说,IE会将许多图片放在缓存区,IE也会对URL做出类似的事。如果你对服务器端作出请求,IE会持续跟踪你所有请求的URL。然后,如果你对相同的URL发出请求(且数据也都一样),IE就会认定你想得到相同的响应,所有IE不发送请求,而且把上次请求的响应(存在缓存区中)拿出来重复使用。
突然间,你的应用程序却每次都响应相同的数据,你的回调函数取得的数据不是最新的,而且你的网页不会再更新信息。
(P115, 117);
11、 我们需要对URL动点手脚——可在请求的URL中加入一个没有意义的虚拟参数,并每次送出请求时都搭配不同的参数值( new Date().getTime();)(P118,解决第 10 的问题);
12浏览器为了帮助你处理响应,它同时提供请求的就绪状态(state)和请求的状态码(status)。
就绪状态用来告诉浏览器请求已经处理到什么阶段。请求“完成”并不代表请求“成功”,所以用status来说明这一点。
如果有任何问题发送,服务器会通过状态码老报告。状态码指示在请求期间发生了什么事,以及事情的后果是否如你所愿。如果即使你知道请求已经完成,你仍然需要检查状态码以确定一些都没问题。(P133);
13、如果顺利完成,服务器返回 200 的状态码(P135)。
内容感觉不算多,不过有很多过瘾的核心知识点。要是知道了浏览器对JavaScript是怎么给玩法,那将是一件很爽的事情。:)