[00:00:02] [MUSIC kucheza] HANNAH: Hi, kila mtu. Asante sana kwa guys kuja nje katika hali ya hewa disgusting kwa jaribio moja kupitia kikao. Kama wewe guys kujua, jaribio moja ni hii ya Jumatano. Hivyo sisi ni kwenda kupitia rundo la mada. Davin: Hey, naweza kusema kitu halisi haraka? HANNAH: Yeah, Davin ya kwenda kusema kitu halisi haraka. Davin: Sorry. Tu halisi haraka, kama una maswali kuhusu jaribio, unaweza kwenda online. Nenda kwa 2014 jaribio moja, kuhusu jaribio. Ni got vifaa kuhusu ambapo kwenda, wakati wa kwenda. Kama wewe ni wakati huo huo waliojiunga, tuko kwenda na babies jaribio saa 5:30. Au kama wewe ulinituma suala hilo, una baadhi ya suala nyingine. Lakini 5:30 ni kufanya-up wakati siku ya Jumatano. Lakini kama una maswali, maswali ya jumla, online ina vifaa wote. Ili kuangalia huko kwanza. [00:00:47] HANNAH: Awesome. Hivyo hapa ni orodha kubwa ya mada kwamba sisi ni kwenda kwa njia ya leo. Mimi nina kwenda cover yote ya C mambo, ambayo ni upande wa kwanza. Hivyo C mambo ambayo sisi kufunikwa baada ya jaribio sifuri. Kuanzia na orodha wanaohusishwa, ambayo ni pamoja na kuyatumia. [00:01:05] Haki wote, hivyo tuliona hii katika mwisho mapitio kikao, hivyo mimi nina kwenda kwa njia ya hii ni kidogo wepesi. Tu kuongeza mkono wako kama unataka mimi polepole chini au kushughulikia jambo zaidi. Lakini sisi kutumia orodha wanaohusishwa sababu sisi kuanza katika C na arrays. Na arrays ni kubwa, lakini Tatizo ni wana fasta kawaida. Orodha wanaohusishwa kuruhusu sisi kujenga dynamically ukubwa miundo data. [00:01:28] Na tuna shughuli zetu za msingi, kuingiza, kufuta, na kutafuta. Na tunaweza kufanya kuingiza katika kesi mbaya wakati mara kwa mara kama sisi tu ya kuweka katika mwanzo sana. Futa na kutafuta, mbaya zaidi kesi kubwa oh ya n wakati. Hivyo tena, tu flip kupitia picha hizi, Najua tuliona wakati hizi za mwisho, lakini sisi wanataka kuweka wimbo wa orodha yetu wanaohusishwa na kuweka wimbo wa mkuu wa orodha yetu wanaohusishwa. Kwa sababu tunajua kwamba kila moja ya nodes yetu ni kwenda tu kwa uhakika na node ya pili katika orodha yetu wanaohusishwa. [00:01:58] Hivyo hiyo ni jinsi sisi kuweka wimbo. Hata ingawa haya si vipande kuendelea ya kumbukumbu, tunaweza kupata yao na tu zifuatazo mishale tofauti. Hapa ni muundo wetu kuunganishwa kwa orodha nodi. Tuliona wakati huu wa mwisho. Tuna struct yetu nodi. Na ina mali mbili. Namba moja, halisi thamani tunataka kuhifadhi. Katika kesi hiyo, ni integer. Ni inaweza kuwa kamba, inaweza kuwa Char, chochote unataka. Na kisha, tuna kuweka wimbo wa node ya pili katika orodha yetu wanaohusishwa. Hivyo kwamba kinaendelea kuwa pointer nodi ijayo. Kama ungekuwa kufanya tu search, kama nilivyosema hapo kabla, wewe d na kufuata mishale yako chini. Insertion, ungekuwa kuweka wimbo ya ambapo wengine wa orodha yako ni. Na unataka kuelekeza kichwa kwa uhakika na kipengele wetu mpya, ambayo katika kesi hii ni moja, na kisha moja kumweka kwa salio ya orodha wanaohusishwa. Hivyo tena, Mimi najua hili ni kidogo kidogo ya kurudia kutoka Jaribio sifuri. Hivyo tuna kuwa makini sana kuhusu utaratibu ambao sisi kufanya pointings hizi hivyo hatufanyi kupoteza wimbo wa nyuma ya orodha. OK, maswali yoyote na tu moja moja wanaohusishwa orodha? Ajabu, OK, cool. [00:03:06] Hivyo sasa, sisi ni kwenda kwenye kitu kidogo tu ngumu zaidi, doubly wanaohusishwa orodha. Hivyo kwa kuongeza kuweka wimbo wa nodi ijayo, sisi pia wanataka kuweka wimbo ya nodi uliopita. Na hii inaruhusu sisi, kama sisi ni wakati fulani katika orodha yetu wanaohusishwa, si tu kwenda mbele, lakini pia iterate nyuma. Kwa sababu kama tulivyoona katika orodha moja moja wanaohusishwa, kama sisi walikuwa katika baadhi node, na wote wa ghafla, tuliamua kwa kweli, mimi nataka kwenda haki node mbele yangu, wewe d kuwa kwenda wote njia ya nyuma ya kichwa na iterate kupitia mpaka kupatikana node walikuwa wanatafuta. [00:03:35] Hivyo hii hufanya mambo rahisi kidogo kama tuko kujaribu iterate kupitia orodha yetu wanaohusishwa. Lakini inahitaji sisi kuweka wimbo wa moja pointer zaidi, hivyo nyota moja zaidi nodi. Haki wote, hivyo hapa inakuja sehemu fun. Sisi ni kwenda kufanya mazoezi kutekeleza kuondoa kwa orodha doubly wanaohusishwa. Hivyo hii ni kitu ambacho ni haki kabisa mchezo kwa jaribio. Ni ilionyesha juu ya siku za nyuma Quizzes. Hivyo dhahiri kuwa tayari na kanuni kidogo katika C. Usisahau kwamba pamoja na yote hii PHP furaha na JavaScript, bado tuna kukumbuka kufanya C. Hivyo brush juu ya kwamba kama wewe ni hisia kutu. [00:04:12] Haki zote, hebu angalia kama tunaweza kufanya hivyo. OK, cool. Hivyo sisi ni kwenda kujaribu kuhariri haki katika hapa, na hopefully hii inakwenda kama ilivyopangwa. Haki wote, haina mtu yeyote wanataka kunipa ni maoni ya jinsi mimi lazima kuanza? tu dhana mimi nina maamuzi ni kwamba mimi tayari kuwa muundo defined, moja mimi ilionyesha juu ya ukurasa wa mwisho, juu ya slide mwisho. Na mimi nina kuhifadhi mkuu wa wanaohusishwa yangu orodha katika baadhi ya pointer iitwayo orodha. Je, mtu yeyote wanataka kupata yangu ilianza? [00:04:42] Watazamaji: Je, unaweza kuunda mpya node kuwaita kupitia orodha? [00:04:45] HANNAH: Ajabu, hivyo tunakwenda kujenga nodi mpya kutambaa kupitia orodha. Mimi kama kwamba. Mimi itabidi tu kuiita pointer kama kwamba ni sawa. Na pale ambapo lazima ni awali kuanza? [00:04:57] Watazamaji: Pengine katika mkuu wa orodha. HANNAH: Beautiful. Tunataka kuanza saa kichwa, ambayo Mimi alisema ni kwenda kuhifadhiwa katika orodha. Kutisha. Hadi sasa, hivyo nzuri. Na sasa, lengo letu ni iterate kupitia orodha mpaka sisi kupata nodi na thamani n kwamba tunataka kufuta. OK? [00:05:13] Hivyo sasa ni sehemu ambapo tunataka iterate kupitia. Je, mtu yeyote kupendekeza njia ya iterate kupitia? [00:05:19] Watazamaji: kitanzi. [00:05:20] HANNAH: kitanzi. I love it. Hasa, tunaweza kujaribu kitanzi wakati. OK, na tunajua kwamba tumekuwa kufikiwa mwisho wa orodha yetu wakati gani? Watazamaji: Wakati pointer ni null. HANNAH: Wakati pointer ni null. Nzuri, I love it. OK, cool. Hivyo pole kama bounding yangu brace ni aina ya kuanguka mbali screen. Sisi kuletwa nyuma. OK, cool. Nini hapo? [00:05:48] Hivyo tunajua tunataka kufuta nodi kwamba ina thamani n. Basi hebu kupata kesi ambapo sisi kweli kupata nodi zetu. Hivyo ni jinsi gani mimi kuangalia kwamba? Ningependa tu kusema kama pointer, na kisha kama mimi wanataka kupata thamani nje ya pointer, Mimi tu arrow n, sawa n, parameter kwamba sisi alimpa kazi hii, nodi kwamba tunataka kweli kufuta. Maswali yoyote hadi hapa? Wote haki. OK, hivyo sasa hebu kuchora picha haraka juu ya bodi ili taswira hii. [00:06:24] Basi hebu kusema kuna node wetu lovely. Na ina thamani, mimi itabidi kusema minne. Na inaelekeza ijayo nodi katika orodha yetu wanaohusishwa. Na kuna kitu mbele yake. Hivyo tuna uliopita yetu akizungumzia chochote. Katika kesi hiyo, sisi kumweka nyuma. OK, tu kuanzisha yangu wanaohusishwa orodha zaidi ya hapa. Na tuna orodha kwamba pointi kwa muundo huu kwa kuanzia. Mimi itabidi kuteka moja zaidi kwa ajili ajili ya ukamilifu. OK. Mimi itabidi kumweka mbele hii. Na mimi itabidi uhakika kwamba moja nyuma. Oops, pole. Yeah, got hii nyuma. Kufanya hivyo tena. OK, kuna sisi kwenda. Haki zote, got it. OK, hapa picha wetu. [00:07:21] OK, hivyo tunataka kufikiria kesi mbili. kesi ya kwanza ni kama node tunataka kufuta ni tangu mwanzo wa orodha yetu. Na kisha, kesi ya pili kwamba tunataka kufikiria ni kama ni mahali popote. Mimi kuelewa kwamba hii kabisa messy kuchora na erasing wangu wote, lakini hopefully tutaweza kujaribu kufanya hili wazi na baadhi ya kanuni. [00:07:40] OK, hivyo hebu kufidia kesi ambapo sisi kupatikana nodi zetu, na ni katika sana kuanza ya orodha yetu wanaohusishwa. Mtu yeyote nipe pendekezo hapa kama yale Mimi lazima kufanya kwa kweli kuondoa nodi zetu? Ni suala gumu kidogo. OK? [00:07:56] Watazamaji: Una kuchukua nodi kwamba itakuwa kabla na kufanya hivyo kumweka kwa moja kwamba itakuwa baada ya hayo, na kuchukua nodi kwamba itakuwa baada yake na kufanya ni uhakika na nodi mbele yake. HANNAH: Hasa. OK, hivyo hii ni kesi where-- tuna kesi mbili. Tuna kesi ambapo nodi kwamba sisi ni kuangalia kwa ni mbele ya orodha. OK, na kisha kesi hiyo ilivyoelezwa ni vinginevyo, haki? Ni mahali pengine katika orodha. Hivyo alisema, tunahitaji kuangalia nodi uliopita, na kufanya nodi uliopita uhakika na nodi ijayo. Basi hebu kusema tuko kujaribu kuchukua nje tano katika wangu kuchora messy sana zaidi ya hapa. Tunataka kuhakikisha kwamba minne sasa anazungumzia sita. Tarakimu ya pointi karibu na sita. Na pointi sita ya awali ya nne. Hiyo ni lengo letu hapa, haki? Hii ni nini nadhani wewe tu alisema zaidi ya hapo. [00:08:56] OK, hivyo hebu kupata kwamba kipande ya kwanza. Hebu kufanya na pointer uliopita uliopita. Hivyo nne ijayo wanapaswa kumweka kwa nini? Hasa, katika kesi hii, watu sita. Hivyo tunapaswa kusema pointer, ijayo. OK? Wote haki. Basi hebu kujikwamua picha hii mbaya na kujaribu kuteka moja kidogo nicer. Tuna orodha yetu kichwa hapa. Na kwamba anazungumzia node ya kwanza katika orodha yetu wanaohusishwa, ambayo sisi alisema ni nne. Hapa ni node wetu wa pili, tano. Na node wetu wa tatu, sita. Tu kujaribu kuteka exact picha, kidogo tu zaidi cleanly. OK, hivyo nne ijayo awali anazungumzia tano. Tano ya pointi karibu na sita. Sita ya pointi uliopita tano. Na pointi tano ya awali ya nne. Sana nicer! OK, cool. [00:10:04] Hivyo sasa, kile sisi alifanya tu hapa, mstari wa kanuni, ambayo inasema pointer uliopita ijayo, hivyo haina maana gani? Hiyo ina maana kama sisi ni kuangalia tano, kwenda node uliopita, na ni ya lazima sasa uhakika na tano ijayo. Hivyo kimsingi, nini kwamba kufanya ni hiyo kufutwa arrow hii na kuifanya ruka haki juu ya tano. Ni kwamba wazi? Najua kwamba inaweza kuwa kidogo sketchy. Mimi naona baadhi nods kichwa. Hiyo ni nzuri. OK, cool. Sasa, nini hatua ya pili? [00:10:39] Nimekuwa upya ijayo. Sasa, ambayo mshale nyingine nahitaji kubadilika? Hii ni moja ya haki hapa. Sita uliopita. Hatutaki sita uliopita kwa uhakika na tano tena. Tunataka kwa uhakika na nne. Je, picha kwamba kufanya maana? Hivyo sasa tunaweza kweli kuchukua tano nje. Basi hebu kupata kwamba kipande. Nifanye nini kabla ya mimi upya sita ya awali ya nne? Mawazo yoyote huko? [00:11:14] Watazamaji: Free node kati ya yao kwa kuiandaa kwa null? HANNAH: Cool. Dhahiri, mwisho lengo letu ni kwenda kuwa ya bure nodi. Hivyo tunaweza kufanya hivyo haki hapa. Free pointer. Kabisa. Lakini hata kabla ya hapo, hebu just-- lengo haki yetu hapa ni kuweka pointer ijayo uliopita sawa na pointer uliopita. Najua hii ni kupata kufunikwa up. OK, hebu take-- baridi. Je, kila mtu kuona mstari huu chini? Au ni super vidogo? [00:11:50] Hivyo kabla ya sisi nitafanya mstari huu hapa, tunataka kuhakikisha kwamba pointer ijayo ni si null. Kwa sababu kama pointer ya pili ni null, ni aina gani ya makosa mimi kupata wakati mimi kujaribu kumbukumbu null pointer? Watazamaji: seg kosa. HANNAH: kosa seg, nzuri. OK, hivyo kama si kwamba null, basi tunaweza upya. Na tuna sita uhakika tena na minne. Maswali hadi hatua hii? Ndiyo? [00:12:17] Watazamaji: Katika yako ya kwanza kama taarifa, je Maana ya kuwa arrow pili, au [inaudible]? HANNAH: mimi maana pointer arrow n. Hivyo kimsingi, nini mimi kujaribu kufanya ni kusema, nodi sasa kwamba mimi nina iterating juu, nodi sasa kwamba Mimi nina kuangalia, mimi nina kuhifadhi katika pointer. Na mimi nataka kujua pointer ya thamani, ambayo katika kesi hii ni n. Na mimi nataka kuona, ni node mimi nina kuangalia kwa node mimi nina kwa lengo la kufuta? Hivyo kwamba ni kwa nini sisi hapa pointer n. [00:12:47] Watazamaji: Hivyo mshale kwenda kwa n, kuweka thamani na kuhifadhi katika node kuitwa n? [00:12:55] HANNAH: Hivyo ni kama kama mimi kwenda kwa orodha hii wanaohusishwa na akizungumzia tano. Kama mimi nataka kupata thamani kwamba, kama Nataka kupata kwamba idadi, 5, Nina kufanya pointer arrow n. Cool? Yeah. [00:13:07] Watazamaji: Je N jina la kutofautiana? HANNAH: Ndiyo. Hivyo kama sisi flip nyuma moja slide, n ni jina ya thamani ndani ya nodi katika orodha yetu wanaohusishwa. Na najua inaweza kupata kidogo kidogo utata kwa sababu sisi pia ni wito jambo kwamba tunataka kufuta n. Hivyo hiyo ambapo kwamba mstari mmoja hutoka. Yeah? [00:13:27] Watazamaji: Je, una [Inaudible] jinsi kazi? pointer [inaudible]? [00:13:35] HANNAH: Sure. Je, wewe ni about-- ambayo line kuzungumza? Watazamaji: mstari wa mwisho [inaudible]. [00:13:44] HANNAH: Hakika, OK. Basi hebu kuangalia picha katika Ili kujaribu kueleza hili. Mimi nina sorry, kwa kamera, swali lilikuwa tunaweza kueleza pointer arrow pointer ijayo uliopita. OK, hivyo hebu sema sisi ni saa tano na lengo letu ni kufuta tano. Hivyo pointer pili, ambayo wa haya nodes tatu haina kutupa? Hiyo huleta sisi node sita, haki? [00:14:10] OK, hivyo sasa sisi ni kuuliza kwa ajili ya sita uliopita. OK? Na sisi ni upya hii kuwa sawa na nne, ambayo ilitokea kuwa tano uliopita. Mimi najua, ni super vigumu kuweka wimbo wa. Mimi kwa kweli kupendekeza kuchora picha kama wewe kupata swali kama hili. Ndiyo? [00:14:30] Watazamaji: Je, sababu ya kuwa hatuna [inaudible]? [00:14:37] HANNAH: Hasa. Hivyo swali ni, kwa nini sisi haja ya kuangalia hapa? Mbona sisi haja ya kuangalia kwamba pointer uliopita si sawa na null? Na ni kwa sababu tumekuwa tayari kutengwa nje kesi kama pointer ya mwanzoni kabisa. Nzuri sana swali. Kitu kingine juu ya hili? OK, cool. Basi hebu kumaliza up. Tuko karibu na hapo. [00:14:59] Basi nini kama ni katika kichwa? Nini kama badala ya kujaribu kufuta tano, sisi kweli alitaka kufuta nne? Gani mimi kufanya? Naam, nataka upya kichwa yangu kwa nini? Kelele nje? Watazamaji: moja baada ya yake. HANNAH: Beautiful. OK, hivyo sisi wanataka orodha ya akizungumzia chochote pointer yetu node ya pili ni. Nzuri. Na tu kwa ukamilifu ya ajili, sisi ingekuwa unataka kuangalia kwamba kwa muda mrefu kama orodha yetu si null, kwa muda mrefu kama orodha yetu si tupu, basi tunataka kuanzisha uliopita sawa wetu wa null. Swali hadi sasa? Hatua moja mbali from--? [00:15:53] Watazamaji: Je, ni kuwa kama orodha si sawa na null? [00:15:55] HANNAH: Ndiyo, wewe ni haki kabisa. Mimi hivyo sorry. Ni orodha si sawa na null. Kutisha. Kujaribu kuleta hii yote juu ya screen. Ni aina ya kuanguka mbali. Sorry, guys. Na mwisho lakini si uchache, kila tuna kufanya ni kurudi. OK. Hiyo ilikuwa mengi crammed katika kweli haraka. Kuchukua pili kuangalia juu ya hili. Niambie kama una maswali yoyote. Yeah? [00:16:20] Watazamaji: Kama orodha ni katika kichwa, then-- kusubiri, Nevermind. [00:16:26] HANNAH: OK, nzuri. Hivyo hii ni kama orodha ni kichwani sisi kuondoa hiyo kwa chochote sisi kuingizwa. Yeah? [00:16:31] Watazamaji: Je, unaweza kueleza kwanza kama taarifa tena? Kama pointer n ni sawa na n? HANNAH: Sure. Hivyo lengo letu la kazi hii yote ni kufuta nodi ambayo ina thamani n. Hivyo kama sisi kupata, kama tuko iterating kupitia orodha yetu, node na thamani n, kwamba mmoja tunataka kufuta. Basi wote wa kufuta hutokea ndani ya kuwa kubwa kama taarifa. Je, hiyo mantiki? Baridi. Yeah? [00:16:59] Watazamaji: Labda tu hawezi kuona ni, lakini si wewe pia haja line kwa scrolling kupitia orodha? HANNAH: Awesome. Hebu kuleta hii up kidogo, na tutaweza kutupa kwamba haki katika chini. Labda bodi bila wameweza imekuwa wazo kidogo bora. Hivyo ni jinsi gani mimi hoja pointer mbele? [00:17:17] Watazamaji: Pointer sawa pointer pamoja na moja. [00:17:20] HANNAH: Beautiful. Hivyo kwamba inaruhusu sisi kuendelea iterating kupitia. OK. Watazamaji: Je, si kutakuwa na mwingine? HANNAH: One muda zaidi? Watazamaji: Je, si kuna mwingine baada ya kubwa ya zamani kama Taarifa [inaudible]? HANNAH: Ni sehemu? Mimi nina sorry. [00:17:38] Watazamaji: traversal, lazima kuwe na mwingine? HANNAH: You kabisa inaweza kuwa na mwingine. Kwa sababu mimi kuwa na kurudi haki huko, huna haja ya mwingine. Lakini yeah, swali nzuri. OK, ndiyo? Watazamaji: Je, sisi kufikiri ya pointer kwamba ni kusonga kupitia orodha kama kuchukua juu ya thamani ya kila nodi katika orodha? Au lazima sisi kufikiria kama aina ya nje ya orodha? [00:18:00] HANNAH: Aidha moja ni mzuri, nadhani. njia ya mimi kufikiria ni Nasema, OK, mimi pointer. Na hii ni mimi. Hii ni mkono wangu. Mimi nina kwenda kwa uhakika na tofauti mambo ambayo nataka iterate kupitia. Kwanza, mimi nina kwenda kwa uhakika na mkuu wa orodha. Na kwamba anasema mimi nina kwenda kwa uhakika na nne. Na hivyo mimi, kuwa mbali na orodha, Mimi unaweza kumweka kwa kila moja ya mambo hayo. Hivyo nadhani mwenyewe kama pointer. Watazamaji: Hivyo wakati wewe kufuta moja ya mambo hayo, kufuta mwenyewe, hivyo kusema. HANNAH: Hasa. Hivyo kufuta kitu wewe ni akizungumzia. Hivyo katika mfano kwamba tuliona ambapo tuko kujaribu kufuta tano, wakati mimi nina akizungumzia tano, Nataka kufuta kitu mimi nina akizungumzia. Hasa haki. Ndiyo? Watazamaji: Je, sisi huduma ya kuchukuliwa kesi ambapo n ni si katika orodha? HANNAH: Kama n si katika orodha? Yote kitatokea ni uko kwenda iterate kupitia na iterate kupitia, na kisha, wewe kwenda kupata pointer kuwa null, na kisha utaenda yafanyike. [00:18:48] Watazamaji: Hivyo kufanya tuna kurudi kitu chochote? HANNAH: Tuliweza. njia kwamba kama inavyoelezwa hii kazi, mimi tu kusema kwamba kuirudisha utupu bila kujali. Lakini unaweza kuwa na kitu kama kurudi integer, na kuwa ni kurudi hasi 1 kama inashindwa. Kitu kama hicho. Maswali with-- ndiyo? Watazamaji: [inaudible]? HANNAH: Sorry? Watazamaji: [inaudible]? HANNAH: Sure. Hivyo hiyo ni actual-- mara moja tumekuwa jambo hili kazi yote ya kusonga mishale haya yote duniani, yote wetu Lengo lilikuwa kujikwamua node kwamba sisi ni kuangalia kwa. Hivyo katika kesi hii, kumkomboa pointer, kama mimi nina akizungumzia tano, ni kama kufutwa node hii katikati. Hiyo bure pointer sehemu. Hiyo mantiki? [00:19:29] Watazamaji: Hivyo hata mawazo hakuwa [inaudible]? [00:19:31] HANNAH: Hivyo sisi kudhani mwanzoni tulikuwa na baadhi ya orodha hiyo ilikuwa already-- wamemtia hii pamoja. Hivyo ili kujenga hii orodha, wao must've [inaudible]. Baridi. Kitu kingine na hili? Ndiyo? [00:19:46] Watazamaji: Je, kama orodha haina sawa null line? [Inaudible]? HANNAH: Haki hapa? Watazamaji: Yeah. HANNAH: OK, wote mimi nina kufanya ni Mimi tu kuhakikisha kwamba kabla ya mimi kujaribu orodha dereference, kabla ya mimi kujaribu kupata uliopita, Nataka kuhakikisha kwamba si null hivyo mimi si kupata seg kosa. Baridi. [00:20:08] OK, najua hii ilikuwa kabisa mengi kupata kupitia. Hivyo slide hii itakuwa alifanya inapatikana na wewe. Hivyo unaweza kwenda kwa njia hiyo kwa undani zaidi. Ndiyo? [00:20:17] Watazamaji: Kwa nini orodha [inaudible]? HANNAH: Sure. Hivyo orodha kweli anazungumzia hili kipengele haki hapa, kipengele kwanza katika orodha. Hivyo haiwezi kuwa uliopita. Ndiyo? [00:20:31] Watazamaji: Je pointer uhakika kwa mahali sawa katika kumbukumbu? Je, ni kumweka kwa moja mahali katika kumbukumbu kama nodi kwamba ni akizungumzia? [00:20:40] HANNAH: Ndiyo, inaelekeza nodi hii katika kumbukumbu. [00:20:43] Watazamaji: Right, hivyo wakati wewe [inaudible]? [00:20:47] HANNAH: Kwa maana, ndiyo. OK. Haki wote, hebu hoja pamoja na hili. Na kama una maswali zaidi, fimbo karibu mwishoni, na tunaweza kwenda kwa njia hiyo tena. OK, cool. Sasa, sisi kupata hoja juu ya kwa hash meza, inajaribu, na miti, ambayo wewe got super ukoo na katika p-kuweka tano, Speller. [00:21:04] Hivyo hash meza ni tu safu na orodha moja moja wanaohusishwa au doubly wanaohusishwa orodha kuja mbali ya hiyo. Hivyo tuna aina fulani ya associative safu. Na jinsi sisi kujua ambayo wa haya arrays ndoo kupata ndani, sisi kutumia hash kazi. Hivyo katika kesi hii, yeyote anaweza nadhani nini kazi hash itakuwa tu kulingana na baadhi ya pembejeo na pato? [00:21:31] Watazamaji: Barua ya simu ya alfabeti. HANNAH: Hasa. Ni tu unaweka yao katika herufi. Kila kitu huanza na A ni kuweka katika ndoo ya kwanza. Kila kitu na B ni kuweka katika ndoo ya pili, kadhalika, na kadhalika. Ajabu, OK. Na hash kazi ni yoyote kazi ambayo inachukua katika neno na kukuambia nini ndoo ni mali katika. Hivyo ambayo kuingia katika yetu safu ni mali katika. [00:21:55] Hivyo kila wakati mimi kutoa yangu hash kazi neno, ni lazima kuniambia huo mahali kila wakati. Hivyo kama sisi kutumia kazi hash kutoka slide uliopita ambapo sisi ni kuchagua kwa barua ya kwanza ya alfabeti, kila wakati mimi kutoa yangu kazi hash "apple," ni lazima iwe nipe nyuma 0. Hivyo kama nina apple kuweka katika hash meza yangu, kama mimi kutoa "apple" kwa hash yangu kazi, ni lazima kusema, kwenda kuiweka katika ndoo 0. Kama mimi nina kuangalia kwa apple katika hash meza yangu na nasema, ambapo nguvu apple kuishi, unaweza kuuliza hash yako kazi. Na inasema, kwenda ndoo 0. Wote haki? Maswali na kazi hash? Kutisha. [00:22:34] Hapa ni kidogo zaidi maelezo ya kina ya nini kazi hash ili kuangalia kama. Wote haki. Sasa, tatizo na hash kazi ni katika ulimwengu bora, tunataka moja tu kitu katika kila ndoo. Lakini katika hali halisi, kuna si neno moja tu kwamba huanza na A. Kuna si neno moja tu kwamba huanza na B. Hivyo katika kesi hii, kama sisi ghafla kupata "berry," na tunataka kuiweka ndani ya hash wetu meza, na tunaona, oh, hakuna, ndizi ni tayari kuna, ni sisi gonna kufanya nini? [00:23:03] Naam, tuna chaguzi mbili. chaguo la kwanza ni linear probing, ambayo ina maana tu kwenda kupata ijayo tupu ndoo. Go kupata ijayo tupu safu ya kuingia. Na tu ya kuweka "berry" huko. Hivyo najua ni walidhani kwenda na ndizi katika ndoo moja. Lakini tu kuiweka katika ndoo tatu, kwa sababu ndoo tatu ni tupu. Njia nyingine ni pengine nini kutekeleza yako katika p-kuweka, ambapo alikuwa tofauti chaining. Hivyo kila ndoo yako, kila moja ya safu mambo yako, si tu ana maneno moja, lakini kwa kweli ana pointer katika orodha ya maneno. Hivyo kwamba kama alikuwa ndizi katika hash meza yako na ghafla alitaka kuongeza berry, hakuna tatizo. Tu kuongeza berry juu ya mwisho, au mwanzo, ya orodha yako wanaohusishwa. OK, kutisha. Maswali na hash meza kabla ya sisi kwenda juu? [00:23:58] Wote haki. Miti na anajaribu. OK, hivyo hii ilikuwa chaguo jingine kwa ajili ya utekelezaji kamusi. Unaweza kuwa alifanya kujaribu. Hivyo ni aina ya pekee ya mti kutenda kama ngazi mbalimbali hash meza. Hivyo utaona picha ambapo una safu kwamba anazungumzia rundo la arrays kwamba hatua ya kundi la arrays kwamba hatua ya kundi la arrays. Na tutaweza kuona nini hasa kwamba bila kuangalia kama juu ya slide siku zijazo. Na kwa ujumla zaidi, mti ni tu muundo wowote data ambayo data ni kupangwa katika baadhi uongozi. Hivyo ambapo tuliona tuna aina fulani ya uelewa wa ngazi ya juu, ngazi ya pili, ngazi ya pili, ngazi ya pili. Hivyo hii ni pengine wazi pamoja na baadhi ya mifano maalum. Hivyo hapa ni mti wetu. Unaweza kuona kwamba ni ina ngazi fulani kwamba sisi kuanza na kwamba mizizi node, moja. Na tunaweza kwenda chini kwa njia ya mti wetu. [00:24:50] mti binary ni aina fulani ya mti. Na vipimo tu kwa ajili ya mti binary ni kwamba kila node ina saa zaidi majani mawili. Hivyo wewe si kwenda kuona yoyote ya nodes hizi tatu au nne au baadhi ya idadi nyingine ya majani. Na kisha hata zaidi maalum ni binary search mti ambapo kila node ya kushoto ya node ni kwenda kuwa na thamani ndogo. Na kila thamani ya haki ni kwenda kuwa kubwa. Hivyo kama unaweza kuona 44 ni mzizi yetu, kwa upande wa kushoto, 11, 22, na 33 wote ni chini ya mizizi yetu. Na juu ya haki ni wote namba bigger-- 66, 55, na 77. Na mali hii ana kweli katika kila ngazi ya mti. [00:25:37] Hivyo wakati sisi kwenda chini kwa 22, 11, na 33, bado 11 ni ndogo kuliko 22 na 33 ni kubwa kuliko 22. Na hii inafanya kuwa rahisi kutafuta kwa sababu kama sisi ni kuangalia kwa simu, sisi kujua hasa ambayo tawi kufuata chini. Hivyo hii lazima kuwakumbusha kidogo ya search binary. Yeah? [00:25:56] Watazamaji: Hivyo wakati uko kuelezea binary, wewe alisema ina saa zaidi majani mawili? HANNAH: Mm-hm. Watazamaji: Inawezekana kuwa chini? HANNAH: Yeah. Basi hebu kusema, kwa mfano, wewe hawakuwa na hata idadi ya mambo na unaweza si kujaza juu yako yote majani, ni faini kama mtu ana moja. OK? Kutisha. Maswali yoyote nyingine juu ya miti? OK. [00:26:16] Nyuma ya inajaribu yetu kama nilikuwa kuzungumza kuhusu kidogo mapema, jinsi tuna hizi arrays ngazi mbalimbali. Hivyo katika kesi hii, sisi kuanza saa ya juu. Na tunaweza kufuata neno wowote chini. Basi hebu kusema tulitaka kuangalia kwa Turing. Sisi kuanza saa T, kufuata ni chini safu ambayo ina U, na kufuata chini mpaka sisi kufikia hii delta kidogo ambayo anatueleza, ndiyo, wewe kupatikana neno. Wazi juu ya inajaribu? Kitu chochote kwenda zaidi ya hapo? Ndiyo? Watazamaji: Je ishara ya delta na kuchukua nafasi ndani ya kujaribu? HANNAH: Yeah, hivyo hana lazima hata haja ya kuwa delta. Lakini tunahitaji baadhi ya njia ya kuwaambia wetu computer-- sorry, ili tujue kwamba Tur si neno. Kwa sababu hebu sema hatukuwa na hii dhana ya delta, dhana hii ya pongezi, wewe kupatikana neno, ingekuwa kwenda kwa njia na iterate T-U-R, na kisha kusema, kutisha, nimeona ni! Ni lazima neno. Lakini ni kweli si. Tunataka Turing nzima kuwa neno. Kwa hiyo, tunapaswa kuwa na kitu katika mwisho kwamba anasema, pongezi, Nimepata neno halali. Watazamaji: Hivyo kama wewe alikuwa kama Barua 26 katika alfabeti, ingekuwa wewe kweli kuwa Funguo 27 katika kujaribu yako? [00:27:24] HANNAH: Ajabu, yeah. Hivyo kweli, nadhani kwamba itakuwa juu slide ijayo. Ta-da! Ambapo kama una nodi katika kujaribu yako, wewe ni kwenda na watoto 27 badala ya 26. Maswali yoyote kwa hilo? Yeah? Watazamaji: Kwa nini inajaribu kuchukua hivyo nafasi sana [inaudible] kama wewe kwenda? Kwa nini ni kuchukuliwa kuwa [inaudible]? HANNAH: Sure. Hebu kwenda nyuma. swali ni, kwa nini ni inajaribu kubwa sana kuliko kitu kama meza hash. Hivyo kwa kila moja ya ngazi hizi, hata kama wao siyo inayotolewa hapa, unaweza kuwa na wahusika wote 26. Na sababu kwamba unaweza si kusema, oh, lakini kama kwa Turing, mimi hawana haja ya kuwa na yoyote ya wale mambo sawa juu ya kiwango cha U. Naam, kama ghafla alitaka kuongeza kitu ambacho alikuwa kama T-H, wewe d haja ya kuwa na uwezo wa kuongeza neno hilo. Hivyo kwa kila barua moja, wewe ni kwenda kuwa na kuwa na rundo la arrays kuja mbali ya hiyo. Hivyo unaweza kuona ni jinsi gani Ningependa kupata kweli kubwa, kwa kweli kwa haraka. Yoyote maswali mengine? Wote haki. Yeah? [00:28:29] Watazamaji: Wakati ni inajaribu kasi zaidi kuliko meza hash? [00:28:33] HANNAH: Wakati ni inajaribu kasi zaidi kuliko meza hash? Hivyo kama wewe alikuwa kweli mbaya hash kazi. Basi hebu kusema mimi nilikuwa kama, hapa ni hash yako kazi. Hakuna jambo gani neno wewe nipe, mimi nina daima kwenda kuiweka katika safu ya kuingia 0. Na hivyo sisi kuishia na kuweka tu kila kitu katika moja kubwa orodha ndefu wanaohusishwa. Na hivyo wakati lookup itachukua saa mbaya n kama ni katika mwisho wa orodha yetu. Na kujaribu, sisi tu iterate kupitia barua katika neno. Hivyo hata kama sisi aliongeza rundo maneno zaidi kwa kujaribu yetu, isingekuwa kutupeleka tena kupata neno fulani. [00:29:09] Wote sisi kufanya ni, kwa mfano, katika kesi hii, hebu sema sisi ni kuangalia kwa zoom, tunataka tu na iterate juu ya Z-O-O-M, herufi nne. Hivyo hiyo ni urefu wa neno zoom. Haijalishi jinsi wengi maneno zaidi sisi kuweka katika kujaribu hili. Sisi daima unaweza kupata katika hatua hizo nne. Kutisha. Ndiyo? [00:29:32] Watazamaji: Hivyo [inaudible] ni safu, haki? [00:29:34] HANNAH: Mm-hm. Watazamaji: Kama wewe ni kuangalia kwa [inaudible], ingekuwa una kwenda kwa njia ya safu yako ya kupata [inaudible]? HANNAH: Sure. Watazamaji: Je, si kwamba kuchukua muda zaidi? HANNAH: Kama mimi nina kwenda kusema kwamba safu yangu daima kwenda kuwa A, B, C, D, E, F, G, blah blah blah, hivyo kama mimi daima kujua ni katika huo ili halisi, kama mimi daima kujua ni katika mpango wa herufi, Naweza kusema tu O ni idadi hivyo na hivyo katika alfabeti. Tu kuruka kwa nafasi hiyo. Kwa sababu kumbuka, na arrays, tunaweza kupata kipengele yoyote ya kuwa safu katika mara kwa mara muda kama sisi kujua ambapo sisi ni kuangalia. Yeah? [00:30:09] Watazamaji: On uliopita slide [inaudible] 27, lakini 26 kwa moja ya kwanza. [00:30:14] HANNAH: Sorry? [00:30:15] Watazamaji: Je, si mara ya kwanza moja 0, hivyo bila kuwa 26? [00:30:18] HANNAH: Hakika, hivyo wakati sisi kusema 27, hiyo ni kwenda kutupa fahirisi 0 kupitia 26. Lakini kama kweli kuhesabu wale nje, ni kwenda kuwa 27. Swali nzuri. Kitu kingine? Yeah? [00:30:31] Watazamaji: Hivyo ni inajaribu polepole zaidi kuliko meza hash? [00:30:34] HANNAH: Anajaribu ni kwenda kuwa, katika nadharia, kwa kasi zaidi kuliko meza hash lakini kuchukua zaidi ya kumbukumbu. Yeah? Watazamaji: [inaudible]? [00:30:45] HANNAH: Mimi nina sorry, sikuweza kusikia wewe. Watazamaji: [inaudible]. 0-25 inakupa 26. [00:30:54] HANNAH: 0-25 ingekuwa kukupa 26, kulia. [00:30:56] Watazamaji: Na kisha [inaudible]. HANNAH: Haki. Hivyo idadi tuko kubainisha ni idadi ya mambo katika safu yetu. Hivyo kama tuna 27, ni kwenda kutupa 0 hadi 26, ambayo nitakupa sisi chumba kwa ajili ya, katika kesi hii, Mimi si ikiwa ni pamoja na apostrophe. Hivyo sisi ni kupata 0 kwa njia ya 25 ni barua 26 ya kwanza ya alfabeti, au barua zote 26 za alfabeti. Na kisha kwamba mwisho Jambo, mahali pa kuingia 26, ni kwenda kuwa hundi alama, au delta. Kitu kingine? Kutisha. Waliopotea nafasi yangu. OK, cool. [00:31:31] Hivyo sisi tayari kuguswa juu ya hili. Lakini biashara kubwa off kati ya inajaribu na meza hash ni kwamba inajaribu kutoa, katika nadharia, mara kwa mara kuangalia juu mara lakini kutumia mengi yote ya kumbukumbu. Haki wote, sasa tuna kidogo miundo chini ngumu, na tutaweza kufanywa na C, na tutaweza hoja haki pamoja. [00:31:49] Hivyo mwingi, tuliona hii katika hotuba ambapo kuwa na kitu kama stack ya trays ambapo Jambo la mwisho wewe kuweka juu ya stack ni kwenda kuwa jambo la kwanza wewe kuchukua mbali. Hivyo kwamba ni nini kweli amefafanua stack ni kwamba jambo la mwisho unaweza kuweka juu ya ni kwenda kuwa kwanza Jambo wewe kuchukua mbali. Na istilahi kwamba sisi kutumia kama sisi ni kwenda kuweka kitu, kama sisi ni kwenda kuongeza kitu kwa stack yetu, sisi wito kwamba kusukuma mbele. Na kama sisi kuchukua kitu mbali, sisi kuiita popping. Na kama tunakwenda kutekeleza stack, sisi haja ya kuwa na uhakika wa kuweka wimbo wa wote ukubwa na uwezo. Hivyo jumla ya idadi ya vipengele tunaweza kushikilia na idadi ya sasa ya mambo kwamba sisi ni kufanya. [00:32:27] Na vile vile sana, tuna foleni. Na tofauti tu ni badala ya na mwingi, sisi alisema jambo la mwisho sisi kuweka kwenye ni jambo la kwanza sisi kuchukua mbali. Hivyo, pamoja na foleni, Jambo la kwanza sisi kuweka katika ni kwenda kuwa Jambo la kwanza sisi kuchukua nje. Hivyo hii ni kama kama wewe ni kweli wamejipanga katika duka na wewe ni kusaidiwa, basi mtu wa kwanza katika line lazima mtu wa kwanza kusaidiwa. Hivyo kwamba itakuwa foleni. [00:32:52] Hivyo tunahitaji kuweka wimbo wa ukubwa, uwezo na kichwa tangu tuko kwenda kuchukua kila mtu mbali mbele orodha ya badala ya nyuma. Maswali juu ya hilo? Maswali C yoyote kwamba ni bothering wewe? Miundo data, yoyote ya mambo ambayo fun? Haki wote, baridi. Hivyo mimi itabidi mkono ni juu ya Alison kwa kuruka ndani ya baadhi ya programu zaidi. [00:33:14] Alison: Oh, tutaweza kuona. Tutaweza kuona jinsi vizuri mimi kufanya hapa. OK, mimi nina kwenda kujaribu na kuruka kupitia mambo haya, guys. Hana akaenda sana katika kina juu ya mambo yake yote. Mimi nina kwenda kujaribu kutoa wewe haraka mlipuko maelezo ili tuweze kupata Davin na kila furaha JavaScript na usalama mambo kwamba labda kweli wanataka kusikia zaidi kuhusu. [00:33:33] OK, kama Hana alisema, kama una maswali yoyote, Mimi nina kwenda kwa haraka sana, tafadhali, basi mimi kujua. Nami kujibu maswali kama ni muhimu. Hivyo kuanza, tunakwenda kuanza na pengine ni moja ya mambo ya kwanza kabisa wewe kujifunza na mtandao programu, ruhusa. Hivyo chmod, you guys lazima tumekuwa mabwana saa hii na yote ya mtandao programu kwamba wewe wameweza wamekuwa wakifanya hivi karibuni. Ni kimsingi tu amri kuwa mabadiliko ruhusa au ruhusa ya faili mfumo wetu vitu. Bila shaka, kwa kweli kuona haya, ikiwa ni kuwa na matatizo yoyote na haya wakati wa seti tatizo lako, unaweza kuwa kutumika ls-l, ambayo ni ya muda mrefu, kupata maoni aina ya kama hii, ambapo kwa kweli kuona yote ruhusa kwa ajili ya faili. [00:34:16] Na kwa kweli, sisi ni kwenda tu kwenda kupitia pretty haraka tu pretty kiasi gani kila moja ya haya yana maana gani. Hivyo tuna d haki hapa, ambayo tu anasimama kwa directory. Ni wazi hapa, tunaona rwx, ambayo ni someka, writeable, na kutekelezwa. Hizi pia inaweza kuwa kuwakilishwa kama bits, ambayo tutaweza kupata katika juu ya ukurasa wa pili. Hivyo kila triad kuwa tuliona hapa, hivyo ni triads tatu. Sisi rwx, r chochote x na r chochote x kwa ajili ya faili hili la kwanza. Ni muundo huu kwa ujumla. [00:34:49] Hivyo tuna baadhi directory. Tuna baadhi ya kundi user kwa ruhusa hizi. Baadhi ya kundi ambayo ina ruhusa hizi, na dunia ambayo ina ruhusa. Unaweza kufikiria kama haya triad. Unaweza kufikiria kama haya bits tatu. Hivyo wanaweza kushikilia maadili popote kutoka 0 hadi 7, ambayo ni kwa nini wakati mwingine tulikuwa kufanya chmod 600 badala ya chmod rw chochote. Tutaweza kupata katika mfano huko. Lakini kimsingi, unaweza kufikiria wa haya kama ama tu rwx, au unaweza kufikiri wao kama baadhi simu ambapo hii moja ya kwanza hapa inawakilisha idadi kati ya 0 na 7, hii ni moja ya pili inawakilisha idadi kati ya 0 na 7, na theluthi moja inawakilisha idadi kati ya 0 na 7, OK? [00:35:38] r ina thamani ya 4. w ina thamani ya 2, na x ina thamani ya 1, ambayo ni kwa nini hii ruhusa hapa itakuwa chmod 700. Kwa sababu katika kesi hii hapa, inasema sisi kuwa kwanza kidogo kuna flipped juu. Hivyo tuna 4 kwa ajili ya kusoma. kidogo ya pili ni flipped juu kwa w, ambayo ni 2, hivyo sasa tuna 6. Na tatu kidogo ni flipped juu ya kwa ajili ya x, ambayo ni 1, hivyo sisi kupata saba. Na bila shaka, kundi yetu na dunia yetu ni kila 0. Hivyo hii ni pia sawa chmod 700. Na napenda dhahiri kujaribu kuelewa ramani kati ya hizo. Sina hakika kama ana kuja juu ya chemsha bongo kabla, lakini itakuwa swali ili nipate kuuliza. [00:36:18] Kidogo tu kwenda hata zaidi katika chmod hapa, hapa jumla sana muundo wa chmod simu. Hivyo bila shaka, tuna chmod hapa. Marejeo, nini hii inahusu ni sisi ni nani kutoa ruhusa hizi kwa au ambao ni sisi kuchukua hizi ruhusa mbali. Hivyo tuna hapa katika ruhusa, kama tumekuwa kupeni chmod plus x, kama tutaweza kuona hivi karibuni. a ina maana tu kutoa haya maalum ruhusa kwa kila mtu. Kuwapa wote. Hivyo unaweza vizuri sana kuwa na u pamoja x au g plus x au o plus x au nyingi yake. Hivyo kwamba sehemu ya kwanza daima kwenda kuwa rejea. Sisi ni nani kutoa ruhusa hizi kwa, au ambao ni sisi kuchukua yao mbali na? [00:37:03] moja ya pili ni operator. Hivyo guys kuwa zaidi kushughulikiwa na plus. Hii inatoa ruhusa ya anaye wewe ni kuwapa, ambapo minus, kifikra, kuondosha yao. Hivyo kitu pia kutisha huko. Na kisha modes ni nini kuongelea na kusoma, kuandika, au utekelezaji. Hivyo pamoja na x maana kutoa executable ruhusa kwa kila mtu. Na kisha, bila shaka, ambayo faili maalum au directory. OK? Kila mtu mzuri na chmod? Si mbaya sana? [00:37:37] OK, hivyo HTML, yoyote ya wewe ni umri wa kutosha to-- umri MySpace? Mimi alimtuma hii kwa sehemu yangu, na literally nusu ya watu inaonekana katika mimi kama mimi alikuwa mwenda wazimu. Na mimi nilikuwa kama, guys, sisi siyo kwamba zamani. Kuja juu. Hivyo HyperText ghafi lugha, ni uaminifu tu njia kwa ajili yenu kuonyesha baadhi ya mambo kwenye mtandao. Hivyo ni lugha ghafi. Siyo lugha scripting. Hakuna mantiki ndani yake. Ni kwa kubadili njia kitu ni kuonyeshwa. OK, hivyo hiyo ni muhimu Tofauti kufanya. Ni kuchukuliwa lugha ghafi, si scripting lugha. [00:38:12] Hivyo hapa tuna HTML yetu vitambulisho. On slide hii ni pengine zaidi ya wale ambao unapaswa kuwa ukoo na na kuwa kweli starehe na. Hivyo ni wazi, tuna HTML tag yetu, ambayo huanzisha kwamba kila kitu katika kati ya hizi mbili itakuwa HTML. Tuna baadhi ya kiungo, ambayo wazi nitakupa kiungo ya nje mtandao ukurasa. Baadhi ya cheo, ndani ya kichwa yetu hapa. Na tuna mwili wetu na h1, ambayo ni header, hivyo itabidi kufanya hivyo nzuri na ujasiri na kubwa. Na kisha, tuna baadhi ya p, ambayo ni aya. Unapaswa pengine kujua na kuwa na mazoea na mambo kama jinsi kuingiza picha, ni Yupo madarasa mengine header? Mimi ingekuwa dhahiri kuwa starehe na div. Basi hao kuwa wengi wa vitambulisho kwamba unapaswa kuwa familiar with. Lakini bila shaka, kama kwa kila kitu katika CS 50, orodha ni si kamilifu. Hivyo hakikisha brush up juu ya hilo. [00:39:08] CSS, hivyo CSS, kama yoyote ya wewe kuangalia semina yangu kutoka wiki mbili zilizopita, ni kweli tu njia style mtandao ukurasa wako? OK, hivyo tuna baadhi ya lugha ghafi. HTML, kwamba inachukua huduma ya maandishi tu na ambapo inaweza kuwa juu ya ukurasa. Lakini CSS ni kweli nini hufanya hivyo pretty. Unaweza kuwa na haya katika HTML yako files, lakini kama sisi majadiliano juu ya baadaye, Mimi nina uhakika pretty nguvu kuwa slide ijayo, ni jambo la kawaida, na kwa kweli mazoezi kwamba sisi kweli moyo, kwa wewe kuwaweka kutengwa wakati sisi majadiliano juu ya MVC na kwamba dhana nzima. Hiyo ni kweli nini hii feeds katika. [00:39:42] Hivyo CSS ni njia tu ya kufanya mambo kuangalia pretty. mambo hapa, kama mwili na #title na .info, hizi zinaitwa selectors na nini wao kufanya ni wao kuchagua mambo maalum ndani ya HTML faili yako na kuomba style yoyote, chochote aina ya mambo ambayo unataka, na kwamba kipengele maalum ya mtandao wako ukurasa. Hivyo hapa, tuna rangi ya asili na Michezo na font familia hiyo kuwa kutumika kwa chochote ni katika mwili. Hivyo kama sisi kuangalia nyuma hapa, ni bila kuomba kwa jina. Ingekuwa tu kuomba kwa nini ni katika selectors haya mwili, OK? [00:40:22] Na cheo hapa, hii ni kwenda kuwa kitu kimoja, alama ya asilia kuwa bluu ni kwenda tu kuathiri kile ni ndani ya cheo selectors. Kama vile info hapa, Nakala itakuwa pink, chochote ya info, ambayo ni haki hapa. Kwa hiyo, jambo tu kwamba itakuwa pink kwenye ukurasa huu ni tarehe, Jumatatu, Novemba 17, 2014. OK, hivyo CSS ni njia tu ya kuwa na udhibiti zaidi over-- ndiyo? [00:40:48] Watazamaji: Kwa nini una kutumia hash na cheo? [00:40:51] HANNAH: Next slide, ahadi! Tutaweza kupata huko. Hivyo hii ni kwa nini inabidi kutumia hash. Hivyo selectors kuchukua tatu kuu aina hiyo sisi kuzungumza na wewe guys juu. Mimi fyou unataka kujifunza zaidi, kuna mengi huko nje. Kuna kubwa CSS nyaraka. Kuna tag jina, ambayo ina kufanya na tu vitambulisho yako ya kawaida katika HTML. Hivyo h1, p, div, h2, wale aina ya mambo. Na tunaweza jina tu wale kama ni. Hivyo kama sisi kuona hapa na mwili, ni tag kawaida. Hivyo tunaweza tu ya kuweka mwili wakati tunazungumzia katika CSS faili wetu. [00:41:26] Na cheo, kwa sababu yote sisi kuwa hash hii ni tuna nini kuchukuliwa ID. Hivyo ID lazima iwe kipekee ndani ya HTML ukurasa wako hivyo kwamba wakati wewe ni akimaanisha hiyo, kujua kwamba wewe ni akimaanisha tu kwa jambo moja maalum. Hivyo katika kesi hii hapa, na yetu h1 hapa, CS 50 mapitio kikao, tuna id cheo. Hivyo ili tu rejea kwamba kipande cha HTML yetu, sisi kufanya cheo hash. Tu kwa mkataba huo, vitambulisho ni mteule na hash mbele yao. Kwa njia hiyo hiyo, tunaona info hapa ni darasani. Na hivyo darasani na CSS ni mteule kama dot darasa au dot chochote darasa kwamba ni. Hivyo katika kesi hii hapa, ni info. [00:42:10] Hivyo mimi kuchukua nyuma. Wote hawa itakuwa pink kwa CSS yetu hapa sababu wote wana daraja la info. Na katika CSS faili wetu, tuna mteule kwamba kitu chochote na darasa la info itakuwa pink. Je, hiyo mantiki? Ndiyo? [00:42:27] Watazamaji: Kama ungekuwa na kufanya kila kitu katika mwili nyeupe, na kisha wewe kujaribu kufanya kitu ndani yake bluu, ingekuwa kwamba kusababisha matatizo? [00:42:34] HANNAH: Hivyo CSS ni kuachia style karatasi. Kwa hiyo chochote ni kutolewa chini itachukua precedence. Hivyo kama wewe kufanya kitu na mwili, na kufanya kila kitu nyeupe, na kisha baadaye mabadiliko ya cheo au mabadiliko ya maandishi ndani ya mwili, ni overwrites hiyo. Hivyo chochote kuelekea chini itachukua precedence. Ndiyo? [00:42:56] Watazamaji: Na vitambulisho ni ya kipekee, lakini madarasa inaweza kuwa zaidi? HANNAH: Haki. Hivyo vitambulisho lazima kipekee, na madarasa unaweza rejea mambo mengi kama Ningependa. Yoyote maswali mengine? Ndiyo. [00:43:09] Watazamaji: [inaudible]. Mimi nina anashangaa kama kwamba inafanya tofauti. HANNAH: Mimi nina sorry, nini ilikuwa swali? Watazamaji: Kuna ndogo "F" na mtaji "F." HANNAH: Hivyo tofauti kati ya ndogo "f" na mtaji "F" haipaswi kufanya tofauti. Hivyo "f" itakuwa 15 ama njia. Cool, kitu kingine? Kila mtu mzuri, CSS? Ndiyo? [00:43:30] Watazamaji: Sorry. Je, una darasa na ID? [00:43:35] HANNAH: Ndiyo, unaweza. Mambo yanaweza kuwa wote darasani na ID. Na mimi sana kupendekeza kupima haya juu yako mwenyewe. CSS wewe kujifunza bora tu kwa kufanya kitu, rahisi sana mtandao ukurasa, kuchora up baadhi CSS, na tu kuona ni jinsi gani kuingiliana. Na wewe utakuwa kupata nzuri sana, Intuitive hisia kwa jinsi kazi. [00:43:56] OK, kila mtu mzuri na CSS? Wewe ni wote kwenda kufanya Nje nzuri na CSS sasa. OK, njia bora, tu mambo kukumbuka, mambo that-- hii ni kwa nini sisi kizimbani kwa designer na whatnot. Hivyo karibu HTML yako yote vitambulisho. Hivyo kama una mwili wazi, kuwe na mwili wa karibu. Kama una aya wazi, kuwe na aya karibu. Angalia kuona ukurasa wako linatambulisha. You guys lazima ukoo sana na hii kutoka p-kuweka saba na CS 50 fedha na W3 validator. Na kama nilivyosema hapo kabla, moja ya dhana yetu kubwa ni kutenganisha style yako na CSS kutoka ghafi yako, ambayo ni HTML. Na kisha, bila shaka, tuna hii XKCD kubwa hapa chini. Yay, Comic unafuu! [00:44:38] OK, TCP / IP. Kati ya hizi na HTTP, kimsingi wao uko itifaki zote mbili. Hivyo unaweza tu kufikiria wao kama seti ya sheria zinazoongoza jinsi mambo hoja katika internet. Hivyo kudhibiti maambukizi itifaki, au internet itifaki, ni njia tu kuhakikisha data kwamba anapata ambapo ni kwenda na kwamba sisi kujua kama sisi ni milele kukosa data. Hivyo kama wewe guys kufikiri nyuma hotuba wiki kadhaa iliyopita na David ambapo tulikuwa bahasha nne, wote walikuwa kuhesabiwa kama moja ya nne, wawili wa nne, tatu ya nne, nne za nne, hii ni mkusanyiko wa sheria. Sisi alisema, OK, wakati sisi ni kutuma pakiti zaidi ya moja, sisi ni kwenda namba ni kwa nini idadi ni na jinsi wengi jumla kwamba user lazima kupata. [00:45:19] Na hii ni kuwaambia tu yeyote ni kupokea data kama wao waliopata kila kitu au kama kitu got waliopotea njiani. Na wanahitaji kuomba kwa ajili yake tena. Hii ni kweli tu seti ya sheria. Hiyo ni jinsi gani unaweza kufikiria hivyo, OK? Na pia, inabainisha bandari, ambayo nyie can-- Najua wakati wa hotuba, walikuwa orodha nzima ya bandari. Lakini hatuwezi kuwa nao hapa hivi sasa. [00:45:41] Hivyo HyperText uhamisho itifaki ni, tena, ni itifaki mwingine. Hivyo ni mwingine seti ya sheria zinazoongoza, katika kesi hii, jinsi HyperText ni kuhamishwa. Hivyo ni tu inaruhusu browsers kuzungumza na Sava. Na kama sisi alisema hapa, ni kama handshaking binadamu. Ni njia tu ya kujitawala jinsi mtandao wa kompyuta ni kwenda kuingiliana na browser yako. Na tuna tu mifano michache. Tuna baadhi ya maombi hapa ambapo GET ni mbinu. Tuna HTTP 1.1, ambayo ni toleo la itifaki kwa ajili yetu. Na kisha, jeshi, ambayo ni nini sisi ni kweli kujaribu kupata. Na kisha, kama unaweza kuona hapa, sisi kupata baadhi ya majibu na hii 200 OK kama HTTP mwitikio wetu code. Tuna orodha kubwa mimi nina kwenda kuvuta up katika moja ya pili kwamba nyie lazima familiar with. Na tuna hii aina ya maudhui text / HTML, ambayo tu anasema ni aina gani ya data ni sisi kupokea kutoka server, OK? Jeshi hili na aina hii bidhaa ni sehemu ya headers HTTP. Unaweza kuwa kama wachache au kidogo kama muhimu kwa ajili ya mazingira ya nini wewe ni kushughulika na. Wakati mwingine itabidi mengi ya habari kuja kutoka server yako. Labda wao ni kuomba kura habari kutoka kwa mtumiaji. Ni inatofautiana kulingana na mazingira. Kama ukiangalia CS 50 kifani, kuna mengi zaidi juu ya kwamba. Lakini tuna mengi ya kupata kupitia, hivyo mimi nina kwenda kwenda kulia mbele kama hiyo ni sawa na nyie? Baridi. Kushikilia. Mimi dhahiri kuwa na kwamba orodha nzima of-- huh! Sijui kwa nini hii ni njia yote juu hapa. Nilidhani mimi literally wakiongozwa ni wakati mimi nilikuwa sitting-- [00:47:15] Davin: Je, unataka kufundisha? Au unataka mimi kufundisha? [00:47:17] Watazamaji: Nilidhani tunaweza tu kuwaonyesha kuanza na. I mean, unaweza kwenda katika zaidi nao, lakini mimi walidhani mantiki zaidi tangu mimi mara tu kuzungumza juu ya HTTP statuses. Hivyo hapa ni orodha nzima. Nadhani nini kinaendelea kutokea ni Davin ni kwenda ndani yao baadaye. Lakini kuna orodha nzima, hakikisho ya ladha ijayo. OK, tunakwenda blow-- hii ni kwenda kuwa bila shaka PHP ajali kama hakuna wengine. [00:47:41] Hivyo PHP, HyperText Preprocessor, ni backronym kujirudia, maana yake ilikuwa jina kitu kingine. Na kisha walikuwa kama, hii kweli haina mantiki. Hivyo wao tu aitwaye ubaya wake na ilikuwa kifupi, hivyo wao tu alifanya hivyo PHP HyperText Preprocessor, ambayo tu haina mantiki. Furaha hadithi. Ni lugha ya programu. Hivyo kama vile mimi kusisitiza kwamba HTML si lugha ya programu, ni ghafi lugha, PHP ni lugha ya programu. Jinsi unajua hii ni kwa sababu kuna mantiki. Kuna conditionals. Tuna vigezo, ambapo sisi kuwa hakuna mambo hayo katika HTML. [00:48:12] Haki wote, basi tuna hii kidogo kidogo hapa kwamba kama ladha ya PHP. Hivyo mambo ya msingi, majina variable kuanza na ishara ya dola. Kura ya watu kama hiyo. Kuwakumbusha wetu fedha. Ni wote kubwa. Sisi wote wanataka PHP. Hivyo hatuna bayana aina kutofautiana tena. Ni kuamua wakati kukimbia. mkalimani utakavyokuwa, oh, tutaweza tu kukimbia kwa njia ya, na kwa mujibu wa mazingira, tutaweza kuona nini aina ya aina vigezo hivi haja ya kuwa na. Hakuna kazi kuu ni. Mambo kukimbia tu. You guys na kuagiza yako katika yako p-kuweka mwisho, itabidi taarifa hii. Kulikuwa na si kweli kazi kuu. Wewe tu aliandika kile alitaka kutokea. Na ni aina tu ya kilichotokea. Hivyo hiyo ni PHP kwa ajili yenu. [00:48:56] Arrays ni sawa sana. Bado tuna bracket hii. Hapa, tuna baadhi ya kutofautiana kuitwa arr, na ni sawa to-- tuna kawaida yetu bracket nukuu. Na tuna baadhi ya thamani muhimu. Na tofauti kubwa kati ya C na PHP arrays ni kwamba tunaweza kuwa na associate-- hii tunaweza kujiunga maadili funguo. Hivyo badala ya kuwa tu safu kwamba ni indexed na idadi au nafasi ya kwamba kipengele katika safu, sisi kweli wanaweza kujiunga na muhimu. Ambapo tunaweza kusema, OK, Mimi nataka chochote thamani ya kuhusishwa na matunda. Na labda tuna matunda walikwenda ndizi. Hivyo ni d kurudi ndizi kwetu. [00:49:41] Lakini kimsingi, wengi jambo la nguvu kuhusu hili ni kwamba kama wewe guys kumbuka demo kutoka hotuba ambapo sisi kimsingi rewrote Speller katika PHP, na was-- lookup alikuwa kweli tu kama, haina hii muhimu zipo? Hiyo ni kweli aina ya nguvu ya hiyo. Huna haja ya iterate kupitia safu yako. Huna haja ya kujua nini nafasi ni katika. Ni inaweza kuwa mwishoni au mwanzoni. Muda mrefu kama unajua muhimu hiyo kuhusishwa na thamani, PHP unaweza tu mate thamani kwamba haki nyuma nje saa wewe, OK? [00:50:09] Na kisha, sisi pia tu kuwa kwa sababu sisi tu unaweza kuwa na thamani jozi ufunguo haina maana una. Unaweza pia kujenga tu safu ya kawaida kama hapa, chini, ambapo ni tu moja, mbili, tatu, nne. Wale ni maadili yetu. Na kwa kweli, funguo zao ni fahirisi. Hivyo muhimu kwa moja bila kuwa na sifuri. muhimu kwa ajili ya mbili itakuwa moja. Kadhalika na kadhalika, isipokuwa wewe wazi hawawajui muhimu, unaweza kudhani kuwa thamani ya kitu tu index yao. Je, hiyo mantiki kwa kila mtu? Hakuna maswali? Kutisha. [00:50:38] OK, foreach ni njia ya iterate kupitia arrays yako. Hivyo tuna kitu hapa, tu muundo kwa ujumla. Hivyo foreach, jina la safu yetu, kama chochote unataka simu kila kipengele katika safu yako, na tunaweza kufanya kitu kwa kwamba kipengele au kwa thamani hiyo. Hivyo tuna mfano hapa. Tuna associative safu na entries hizi mbili na bar isihusishwe na foo na qux isihusishwe na bazi. Hivyo funguo ni foo na bazi. Maadili ni bar na qux. Hivyo foreach, tuna safu yetu hapa, kama jozi ufunguo thamani. Hii inaruhusu sisi kupata wote muhimu na thamani. Labda unataka tu thamani, katika kesi ambayo unaweza tu kufanya kama arr kama $ thamani, na kisha ni kupata tu thamani kama wewe iterate kupitia. Lakini labda, kwa baadhi ya sababu, unataka muhimu, ambayo ni kwa nini mimi alichagua mfano huu badala yake. Hivyo unaweza kweli kuendesha muhimu na thamani katika kesi hii. OK? Swali? [00:51:41] Watazamaji: Kama alitaka tu kuendesha muhimu, bila una kufanya foreach-- [00:51:45] Alison: Haki. Hivyo kama wewe alitaka kuendesha tu muhimu, ungependa bado wanahitaji hii syntax kwa sababu kama wewe tu kuwa arr kama kitu, kama jambo moja, ni kwenda kudhani unataka thamani, si muhimu. Hivyo kama wewe milele tu kama arr kama, labda hii ni kama $ kipengele, ni kwenda kwa kudhani kuwa wewe ni kuuliza kwa ajili tu thamani katika kila hatua. Kama wazi wanataka kufanya kitu na muhimu, hata kama wewe si kwenda kufanya chochote kwa thamani, unahitaji muundo huu kwamba sisi hapa ambapo wewe ni wazi kuuliza kwa wote muhimu na thamani. Mkuu swali. Kitu kingine? Baridi. [00:52:27] Haki zote, PHP na HTML. Oh, tuko nyuma kwa p-kuweka saba tena. Hivyo hii inapaswa kuangalia kidogo familiar. Hivyo hii ni baadhi rahisi HTML fomu ambayo ina baadhi ya jina mchango wa hello. Na tunaona tuna njia yetu ya GET. Na kama sisi kukumbuka kutoka wetu p-kuweka, wakati fomu hii ni kuwasilishwa, inapeleka safu kuitwa $ _GET ambayo ina wote wa pembejeo hizi au vigezo kutoka aina kwamba lazima manipulated katika PHP yetu. Hivyo katika kesi hii, user bila kuweka majina yao. Wao kuwasilisha yake. Na tunaona kwamba sisi kupata baadhi ya safu hapa. Tuna GET yetu safu. Na sisi ni kupata jina. [00:53:11] Hivyo kwamba anasema, OK, nipe thamani hiyo kuhusishwa na jina, jina kuwa muhimu hapa. Na kwamba ramani moja kwa moja kwa nini sisi alisema pembejeo jina yetu ni. Hivyo hii ilikuwa kutoa muhimu kwa nini ni kwenda kuwa katika safu yako hapa. Je, hiyo mantiki kwa kila mtu? Ndiyo? [00:53:32] Watazamaji: Je jina katika GET rejea kwa line zambarau katika [inaudible]? [00:53:36] Alison: Ni inahusu hii hapa. Hivyo uwanja huu haki hapa, inahusu jina hili hapa. Hivyo hii inaweza wamekuwa aitwaye kama namba ya simu, au chochote. Jina hili kweli anasema, nini Unazungumza uwanja huu? Jinsi ni wewe kwenda rejea uwanja huu? Na jina hili ni kweli kama, tuko akisema uwanja huu inaitwa jina. Hiyo ni jinsi tunakwenda kupata hiyo. [00:53:59] Watazamaji: Hivyo, ni kwa namna, jina pembejeo sawa Bob, and-- [00:54:02] Alison: Right, basi bila kupata Bob chini huko. Hasa. Kila mtu baridi? Haki wote, hivyo kupata dhidi POST, hizi ni njia kuu mbili kuwa tunapitisha data katika ombi HTTP. You guys lazima tumeona wawili hawa hopefully. Hivyo, pamoja na GET, habari ni kupita kwa njia URL. Hivyo kama wewe milele kufanya Google utafutaji, YouTube, itabidi pengine taarifa baadhi alama ya swali. Na kisha, maneno yote kwamba wewe tu kuweka huko. Na POST hupita data katika ujumbe HTTP mwili. Hivyo tofauti na kupata, wewe aina ya kufikiria kwamba data ni siri kutoka kwa mtumiaji. Lakini nini kweli muhimu kuelewa ni kwamba hii ni bado tu kama usalama kama GET. Mfano Mimi kama kutumia ni kama una benki akaunti yako ya simu na wewe kuandika ni nje ya bahasha, kwamba ni pretty salama. Kama ungekuwa kuandika juu ya kipande cha karatasi na kuiweka ndani ya bahasha, bado ni kweli salama kwa sababu wote una kufanya ni wazi kwamba up na kuangalia yaliyomo halisi ujumbe wa kuona kwamba. Hivyo hii ni "siri," na watu kama nadhani ni salama, lakini ni kweli si. Na mimi nina uhakika Davin mapenzi kupata ndani ya kwamba zaidi, labda. Lakini ni muhimu Tofauti kufanya na kitu kweli nzuri ya kuelewa. [00:55:15] OK, SQL, Strukturerad Query lugha. Mambo yote ambayo tumeona hivyo hivi karibuni! Hivyo ni kimsingi tu iliyoundwa, wazi, kwa ajili ya kusimamia data. You guys alikuwa na mengi ya uzoefu na hii katika meza yako na PHP MyAdmin. Na kuna maswali manne ya kawaida kwamba tunataka nyie kujua. Hivyo kuna update, Insert, kuchagua, na kufuta. Hivyo kuhakikisha unajua wale vizuri. Sisi ni kwenda njia yao kweli kasi. [00:55:40] Hivyo update, kwa kweli, kama kile unaweza kufikiri hivyo, tu updates data katika database yako. Hivyo tuna mfano baadhi ya hapa. Hii ni kwa ujumla muundo wa update swala. Hivyo sisi update meza kwamba sisi ni kuzungumza juu. Na tunataka kuweka baadhi ya maadili, baadhi ya nguzo sawa na maadili maalum. Hivyo hii updates tu meza, kubadilisha maadili katika safu zote katika kesi hii. Hivyo katika hii moja hapa chini, halisi mfano, tuna insert-- sorry. Slide kwamba juu bila mimi kutambua hayo. [00:56:17] Hivyo hii meza updates kuweka col1 sawa kwa val1 ambapo nyumba ni sawa na "Currier." Nini hii mtu gani ni tu mabadiliko, ni tu updates maadili haya katika maeneo maalum. Hivyo katika moja hii ya kwanza, ni mabadiliko haya maadili kwa kila kitu katika meza yako, OK? Ni kwenda kubadili hali hii safu kwa ajili ya kila kuingia moja, kwa kila safu moja. Lakini hii ambapo, unaweza kufikiria kama kufuzu. Hivyo ni tu kwenda na mabadiliko katika maeneo maalum sana. Hivyo katika p-kuweka saba, wakati wewe labda updated kiasi cha fedha kwamba mtumiaji yako alikuwa, pengine alikuwa na baadhi ambapo ID sawa kikao ID, haki? [00:56:53] Kwa sababu wewe hakutaka mabadiliko ya kiasi cha fedha kwa kila mtu ambaye mara kwa kutumia tovuti yako. Wewe alitaka mabadiliko hayo kwa moja mtu maalum, mtu kwamba kuwa yeyote alikuwa kutumia wakati huo. Haki? OK, hivyo kuingiza, Insert maadili fulani katika meza. Hii ni kama wakati uko kujenga bidhaa mpya user. muundo wa jumla hapa ni kuingiza katika meza chochote tunazungumzia. Maadili, kuwa maadili ambayo sisi kweli unataka Insert. OK, hivyo kama sisi kuona hapa, sisi kuwa kuingiza ndani ya meza. Hii ni nguzo maalum na maadili yao waliwasiliana. Hivyo hii anasema, insert mstari mpya zenye maadili val1 na val2 chini ya nguzo hizi maalum. [00:57:33] Hivyo labda wewe tu unataka kujaza nusu mambo katika safu hii. Hiyo ni nini sehemu hii hapa inakuwezesha kufanya. Ni inakuwezesha kweli kuamua ambayo sehemu. Ndiyo? [00:57:44] Watazamaji: Je, unaweza tu [inaudible] seli katika mstari [inaudible]? [00:57:52] Alison: Kama tu kujaza baadhi ya maeneo ya mstari yako, mapumziko ya seli hizo ni tupu tu. Muda mrefu kama wewe kuwaruhusu kuwa tupu, ni si tatizo. Kama wewe kujaribu kupata yao, ni kwenda na kurudi baadhi ya kipengele tupu. Lakini ni muhimu kujua kwamba katika meza fulani, wao kuruhusiwa kuwa null. Unaweza kuwa kukimbia katika tatizo wakati wako p-kuweka kwa sababu hatukuwa basi yoyote ya maadili yako kuwa null. Lakini unaweza bayana hiari thamani katika meza yako. [00:58:26] OK, kuchagua, hivyo hii ni tu njia ya kupata data maalum kutoka meza baadhi kitambulisho kwamba unataka. Hivyo kuchagua nyota kutoka kwenye meza pale col sawa tu kitu maana yake, nipe data yote yanayohusiana ambapo safu hii maalum ni kweli. Hivyo nyota katika kesi hii itakuwa kurudi mstari mzima na wewe, OK? [00:58:49] Na kisha, katika kesi hii, kuchagua nyota kutoka meza tu inakupa meza nzima. Na kisha, kufuta wazi, ni tu deletes mstari kutoka meza. Hivyo kufuta kutoka meza, chochote meza tuko referencing, ambapo baadhi maalum kitambulisho au baadhi ya hali ni kweli. Ndiyo? [00:59:07] Watazamaji: Swali. Kwa nini ni wewe kutumia mara mbili quotes, na kama wewe kufanya quotes mara mbili au moja quotes, gani kufanya tofauti? [00:59:13] Alison: Double quotes au quotes moja haina kufanya tofauti katika SQL. Nilidhani nikaona swali jingine. Ndiyo? [00:59:20] Watazamaji: Je, si kuathiri nini anapata alitoroka kutoka swala? [00:59:25] Alison: Rob? [00:59:27] Rob: Nini maana na alitoroka kutoka swala? [00:59:31] Watazamaji: Kama mtu ana swala moja katika fomu of-- [00:59:36] Rob: Kama mtu walikuwa na kuweka quote moja katika, basi kwa muda mrefu kama wewe ni sanitizing mchango wako, basi haijalishi. Lakini kama wewe ni kutumia moja quote na wewe ni kimakosa kukimbia pembejeo yako, basi ndiyo, wanahitaji kuweka quote moja ili kuvunja code yako. kama wewe kutumia quotes mbili, wanahitaji kuweka mara mbili kunukuu kuvunja kanuni yako. Lakini kwa muda mrefu kama wewe kuepuka mambo usahihi, haijalishi. Ni tu kwenda kutafsiriwa kwa alama sahihi anyway. [00:59:59] Watazamaji: Je, kutoroka maana yake nini? Alison: Naam, kama sanitizing na kutoroka. mtihani kwamba tuna, XKCD kubwa Comic kwamba wao kuvuta up ambapo una, oh-- Rob: Ni slide mwisho. Alison: Ni slide mwisho, kweli? Oh mungu wangu. Kuna sisi kwenda, kamilifu. OK, hivyo kimsingi, unaweza kuingiza kitu katika hili swala SQL ambapo inavunja yako kanuni, au kama Daudi alionyesha darasani, kama tuna baadhi single quote 1 ni sawa na 1 na kama katika kanuni zetu, sisi tu moja kwa moja nakala ya kwamba katika, na tuna kuishia moja quote, kile kinachotokea ni sisi kupata baadhi kujieleza kwamba kutathmini kwa kweli kwamba mapenzi basi mtu kuingia database yetu na kupata data kwamba sisi hawataki yao kupata. Hivyo sanitizing pembejeo tu ina maana ya kuhakikisha kwamba sisi ni kukimbia hizi wahusika na klassificering yao kama chars na si mambo kwamba waruhusiwe kuchukuliwa literally kama taarifa yetu SQL. [01:01:04] Kwa hiyo, jambo kubwa kwamba sisi alisema kwamba nyie lazima kutumia walikuwa HTML chars maalum, ambayo ni kitu kwamba unaweza kutaka kuangalia. OK, kufuta. Aina ya data, hii yote itakuwa online. Tangu sisi dakika 15 kushoto, mimi nina tu kwenda haki kwa njia hii. PHP na SQL, kimsingi hii ni tu tulikuwa kazi swala ambalo alisaidia kulinda dhidi ya hizi malicious mashambulizi. Hivyo wakati wewe kutumia swala, tulikuwa na kuhakikisha kuwa mambo yalikuwa sanitized na whatnot. [01:01:36] MVC ni kubuni dhana, hivyo mfano, mtazamo, mtawala. Ni njia tu ya kuweka mambo nzuri na kupasuliwa up katika njia sawa kwamba sisi huwa na sababu nje kificho katika kazi. Hii ni kubuni mtandao mfumo kwamba utapata kufanya kitu kimoja. Mimi nina kwenda ruka hii. [01:01:54] Hili ni jambo ambalo mimi itakuwa super comfy na. Ni kubwa meza kidogo huko. Ni anakupa kazi mfano wa kuigwa. Mimi tu kwenda kwa njia hii kwa sababu mimi kweli unataka Davin kuwa na uwezo wa kuzungumza. Kama una maswali yoyote, tafadhali jisikie huru. Nitakuwa hapa baada. Tu kuja kuzungumza na mimi. Pamoja na kwamba, tuna HTTP statuses. Na Davin ya kwenda pigo kwa njia hii katika dakika ya 15. Hii ni kwenda kuwa kubwa. [01:02:17] Davin: OK. Uh, mic yako? Yeah. Sorry. Alison: Njia ya kuwa tayari. Davin: Hapana, mimi niko tayari. Mimi niko tayari. Hebu kufanya hivyo. Ni tayari. OK. Sorry. Mimi kilichomwagika kahawa juu ya mwenyewe. Sijui kama mimi nina zaidi upset kwamba mimi kuangalia silly, au kwamba sina kahawa tena. Anyway, tu tangazo haraka juu ya karatasi ya wewe guys kuwa. Hivyo karatasi hii wewe guys kuwa si rasmi nini juu ya jaribio. Hii ni rasmi nini juu ya jaribio. Pia, katika tovuti, sisi tunasema wewe, OK, hii itakuwa juu ya chemsha bongo. Hivyo katika kidogo kudanganya karatasi una, si rasmi. Na kuna makosa juu yake. Hivyo bora si tu upofu matumizi yake. Hivyo yeah, hiyo ni kwamba. Basi hebu kupata katika haraka hii ya kweli. [01:03:05] Hivyo HTTP statuses. Hivyo kile kinachotokea wakati tovuti, kila kitu ni sawa. Kila kitu ni OK. Kila kitu hutoka nyuma njia unataka kwa. Unaweza kupata 200 OK. 301, ambapo tumeona kwamba 301 kabla? Ngoja, nini up? Sorry. Tuliona i bati hotuba wakati wa usalama. Hivyo wakati wa usalama, hivyo kama David typed katika http na kisha alijaribu kwenda cs50.net, wewe ni kwenda kuona 301 wakiongozwa. Kwa nini? Kwa sababu ni kwenda kuelekeza wewe moja kwa moja kwa HTTPS yetu. [01:03:35] Hivyo 301 wakiongozwa, tu ni kimsingi redirection. Na unaweza kufikiria ni kama hii. Yoyote ya statuses kwamba kuanza na 2 ya, wale ni kama, OK, OK kila kitu. Yoyote ya statuses kwamba kuanza na 3, wale ni redirection. Statuses kwamba kuanza na 4, ni kwamba njia kuna baadhi ya aina ya kosa mteja. Statuses kwamba kuanza na 5, kwamba baadhi ya aina ya hitilafu ya seva. Hivyo aina ya kuvunja statuses kama hiyo. Hivyo 304 si si iliyopita, hivyo katika yako server.c p-sets, hivyo hebu sema wewe kubeba cat.html. Kila kitu hutoka nyuma, kupata 200s, OK, kubwa. [01:04:03] Hebu sema wewe nishati hiyo. Naam, ndani ya kwamba cat.html, una JPEG. Naam, kwamba JPEG si kwenda kupata upya. Wewe si kwenda baada ya mwingine Kupata ombi server, na kisha kupata habari kwamba yote ya nyuma. Ni kwenda be-- tu picha kwamba ni kwenda cached kwenye mashine yako. Na hivyo picha kwamba itakuwa 304. Hivyo si imebadilishwa. Kama basi ninyi karibu nje, wazi biskuti, na kisha mahitaji na kujaribu kupakia ukurasa kwamba tena, wewe ni kwenda kuona 200s. Wewe si kwenda kuona kwamba 304. [01:04:28] 400, ombi mbaya, halisi haraka, kama kama wewe walikuwa wanakwenda kupeleka JSON kifaa kwa server na JSON yako hicho kilikuwa ni sahihi, utaona kitu kama hicho. 403, haramu. Wakati gani unaweza kuona haramu? Pengine Pengine? Watazamaji: chmod. Davin: chmod, yeah. Hivyo hujaiweka ruhusa kwa usahihi. 404, haikupatikana. Siyo tu huko. Hivyo kama wewe aina katika URL vibaya. 500, hitilafu ya seva ya ndani, server pengine hakuwa kimeundwa kwa usahihi. Kitu si juu ya mwisho wako, lakini kitu upande server. Na 503? mengi ya watu waliona 503s katika mwisho p-kuweka. Ni wakati gani kwamba kutokea? Nikasikia minong'ono. [01:05:05] Watazamaji: Wakati Google anaamua uko robot. Davin: Yeah, wakati Google anaamua uko robot, unaweza kupata 503s. Hivyo hiyo ni overload. Kama wameweza ombi kutoka server sana, ni kawaida ya muda mfupi. Na wengi wenu niliona yake. Hivyo wewe aliona 503. Unaweza wamechukua kidogo mapumziko, basi 503s akaenda, na kila kitu kilikuwa sawa. [01:05:20] Gabe: Real haraka, wakati guys kupata 500 katika pengine tatizo hili jana kuweka? Ndiyo? [01:05:27] Watazamaji: Kwa kawaida kama server ina faili misplaced au [inaudible] yao mashine [inaudible]. [01:05:34] Gabe: Hivyo inaweza kuwa Configuration suala hilo katika PHP yako ya kompyuta yako. Lakini inaweza kuwa tu kitu kama semicolon kwamba alisahau yako. Kama wewe ni kuandika PHP, baadhi syntax sahihi wanaweza kupata wewe kitu kama hicho. OK? [01:05:46] Davin: Cool. Je, unataka mimi kufanya tu hadi AJAX? [01:05:51] Gabe: [inaudible]. Davin: OK. Basi nini DOM? Je, DOM kusimama kwa? [01:05:55] Watazamaji: Document kitu mfano wa kuigwa. Davin: Nice. Na kwa nini sisi kama hayo? Kutisha. Right, hivyo tu inaruhusu sisi kupata HTML, kupata ukurasa wetu haraka sana. Kwa nini? Kwa sababu sisi ni kutibu wetu ukurasa, kutibu HTML yetu vitambulisho, kutibu kila kitu kama wao ni vitu. Kama sisi ni kutibu yao kama wao uko vitu, basi tunaweza kufanya nini? Naam, tunaweza kuwaita kazi juu yao. Na hii ni muhimu kwa nini? Naam, kwa sababu tunakwenda kutumia JavaScript update HTML yetu, update vitu hivi. Hivyo kama sisi kutibu yao kama vitu, sisi basi unaweza kupiga kazi juu yao. Mimi nina kwenda kupata katika hii kidogo zaidi wakati mimi kwenda katika JavaScript, lakini ve wote kuonekana kama document.getElementByID. Hivyo hati ni yako kipengele, kupata kipengele kwa ID, hivyo wewe ni kwenda kuangalia kwa baadhi ya ID katika HTML tag. Na kisha, unaweza kufanya kitu kingine kwamba. Kwa mfano, kama document.body, basi unaweza append mtoto. Hivyo wewe ni kwenda kupata hati. Una hati. Wewe ni kwenda kupata mwili. Wewe kupatikana mwili. Na kisha, wewe ni kwenda wito baadhi ya kazi juu yake. Hivyo append mtoto, na unaweza append baadhi HTML kwenye mwisho ndani ya mwili wako. Hivyo kimsingi, wewe tu kutibu ni kama kitu. Wewe ni kutibu HTML vitambulisho kama kitu. Na inafanya hivyo ni rahisi sana na ya haraka ya kwenda kwa njia yao. Lakini pia utapata kuwaita kazi juu yao hivyo unaweza kuendesha na mabadiliko ya vipengele. [01:07:04] Gabe: Kutokana na hii, kwa nini ni JavaScript kama Lugha nzuri ya kiutendaji na HTML? Tabia mbaya ni, wakati watu walikuwa kuchagua lugha ya browser, kwa upande wa mteja, JavaScript kwa kweli ni nzuri, ni mzuri katika utunzaji vitu. Na vitu ni aina ya kama vitu kwamba kuonekana katika HTML, hivyo ni rahisi sana kwa ajili ya JavaScript kufanya aina hiyo ya utunzaji. Davin: Nice. Hivyo hapa ni mfano tu. Hivyo nadhani juu ya chemsha bongo mwaka jana, au labda miaka miwili iliyopita, sisi aliuliza wewe kujenga mti. Hivyo hii ni nini hasa d kufanya. Hivyo kuanza nje na hati. Na kisha wewe kimsingi tu kuangalia vitambulisho. Hivyo kama wewe kuangalia, sisi kuanza na HTML tag. Na kisha, unaweza kupata dalili juu ya jinsi ya kufanya hivyo msingi juu ya indentation. Hivyo kichwa aina ya matawi mbali. Ndani ya kichwa, tuna tag mwingine kwa jina. Hivyo basi, tuna cheo tag. Na ndani ya kwamba, tuna baadhi ya kamba. Na hivyo sisi kuwakilisha kamba katika mduara. Na vitambulisho wote ni katika mraba. [01:07:54] Na kama ukiangalia, kama sisi kufikiri ya hii kama mti, na hebu kusema kwamba HTML ni mzazi, basi kichwa na mwili ni kwenda kuwa ndugu zao. Wao ni wawili kwenda kuwa watoto wa kuwa mzazi. Hivyo kwa sababu wao ni ndugu wawili, wao uko kwenda kuwa aina ya karibu na kila mmoja katika mti wetu mfano. Na kisha, wewe kimsingi kufanya exact kitu. Hivyo si vigumu, lakini sisi wameomba maswali kama hii kabla ya jaribio. Gabe: Je, mtu yeyote una maswali hadi sasa? Je, ni nzuri? Davin: Cool. JavaScript, OK, mambo mema. Hivyo JavaScript, ni nini JavaScript? Naam, JavaScript is-- ni ngumu, lakini haya ni baadhi ya mambo muhimu kwamba unapaswa kukumbuka. Kwanza, ni loosely typed. Hiyo ina maana gani? Hivyo PHP was-- yeah, nini up? [01:08:35] Watazamaji: Huwezi kuwa na wazi hali ni aina gani ya kutofautiana ni. Davin: Perfect. Hivyo alisema huna kwa wazi wazi hali ya aina ya kutofautiana. Hiyo ni kweli kabisa. Hivyo katika C, kama mimi alikuwa int i sawa 50, basi katika PHP, ni kama hii, $ i, sawa 50. Kisha katika JavaScript, gani wito kuwa? Var, haki? Ni d kuwa kama var i sawa 50. Lakini huna kuwa kama, OK, hii ni int. OK, hii ni kamba. Hakuna haja ya kufanya hivyo. Ni lugha kufasiriwa. Hivyo haina maana gani? [01:09:04] Watazamaji: Si ulioandaliwa. [01:09:06] Davin: Je, si ulioandaliwa maana yake nini? Yeah? [01:09:11] Watazamaji: Huna na urekebishaji code kupata tayari kwa ajili ya kompyuta kuendesha. Ni tu kuchukuliwa wakati wa utekelezaji na kompyuta [inaudible]. Davin: Yeah, hivyo ni kwenda kupita kupitia mkalimani. Lakini uko sahihi kabisa. Hivyo wewe kamwe kwenda kukusanya yake, sawa? Wakati walikuwa wakifanya yako PHP na JavaScript code, wewe kamwe kuitwa kukusanya. You kamwe kuitwa kitu kama kufanya au kitu kama hicho. Hiyo ni kwa sababu ni kufasiriwa. Hivyo kila wakati unaendelea kupitia browser, unaendelea kupitia mkalimani. Na kwamba itakuja kuifasiri tu katika muda halisi haki mbali kwa ajili yenu. Kwa hiyo kile ni baadhi chanya na hasi kwa kuwa lugha kufasiriwa na kuwa na lugha ulioandaliwa? Hivyo compiling-- yeah, nini up? [01:09:50] Watazamaji: kufasiriwa ni polepole. Davin: Katika maana gani? [01:09:57] Watazamaji: Baada ya kukusanya, huna kufanya hatua yoyote ya ziada na nitafanya yake, ambapo hii [inaudible]. [01:10:04] Davin: Right, kamilifu. Hivyo nini alisema ni kimsingi kuwa kuandaa, wakati wewe kukusanya, una mengi ya gharama upfront, haki? Wewe ni kwenda kukusanya yake. Lakini baada ya wewe kukusanya yake, compiler kwenda kuongeza yake. Ni kwenda kuwa kwa haraka. Ni kwenda kimsingi kuwa kwa haraka kama inaweza kuwa. Kwa kutafsiri, kamwe kuwa na gharama kwamba upfront. Badala yake, kwenda kuwa kidogo polepole kila wakati wewe kuifasiri. Na wewe ni kwenda kuwa na kuifasiri kila wakati. Hivyo badala ya kuwa na hii gharama wakati mmoja, sasa uko kwenda na kutafsiri kila wakati ukurasa mithili. [01:10:29] Hivyo wakalimani ni nzuri kwa sababu huna kukusanya yake, lakini wao ni mbaya kwa kuwa kila wakati kwa ukurasa mizigo, ni kwenda na kutafsiri hii JavaScript. Na ni kwenda kukimbia kidogo polepole kuliko kama ungekuwa na kukusanya yake. Utapata communicate-- oh, kusubiri. Kutumika kuendesha maudhui na kuonekana. Sisi tu kuongelea hiyo. Ni matumizi ya DOM. AJAX, tutaweza kupata katika AJAX katika kidogo. Na kisha, ni upande wa mteja. Hivyo PHP ni upande server. JavaScript ni upande wa mteja. Je, ni chanya kwa hiyo? Ni anasema ni. Ni kwa kasi, haki? Kwa sababu huna to-- ni kwa kasi zaidi. Huna kuwasiliana pamoja na baadhi ya kifaa kingine. Kama wewe ni tu juu yako mteja, wewe ni kamwe kwenda na kwenda na kuona nini juu ya server na kisha ripoti nyuma au kitu kama hicho. Hivyo upande wa mteja huelekea kuwa kidogo kwa kasi zaidi. [01:11:15] Gabe: Yeah, lakini hii haina maana PHP ni kasi zaidi kuliko JavaScript au kitu chochote cha kama. Wao kukimbia aina ya katika huo kasi kwa sababu wao ni wote kufasiriwa lugha. jambo kuwa mwepesi hapa ni ombi. Hivyo wewe ni kweli kwenda njia yote juu ya Brazil kupata habari kwamba anaishi huko. Lakini PHP na JavaScript, wao aina ya kukimbia kwa kasi hiyo hiyo. Siyo kwamba moja ni kwa kasi zaidi kuliko wengine. Hii, pia, hila swali hapa. Hivyo JavaScript kamwe inakuwa mashine code, kweli au uongo? [01:11:47] Watazamaji: uongo. Gabe: uongo. Ina kuwa mashine code sababu mashine code ni Kitu pekee mashine anaelewa. Hata ingawa si compiled, bado inakuwa mashine code kwa sababu mkalimani ni mpango kwamba huenda mstari kwa mstari na kubadilisha kwamba line katika kitu kompyuta anaelewa. OK? Baridi. [01:12:08] Davin: Hapa ni haki ya msingi sana hodi JavaScript mpango dunia. Hivyo mimi sijui if-- ve kuonekana hii. Lakini wewe tu na HTML hapa. Na badala ya kweli kuweka JavaScript katika vitambulisho script, hivyo d kawaida kuiweka katika kichwa. Una vitambulisho script. You kushuka huko. All tumefanya hapa ni tumekuwa wanaohusishwa in-- hivyo tumekuwa wanaohusishwa katika JavaScript faili kama hii. Na umefanya yote kufanyika hii, sawa? Hivyo wakati wewe walikuwa kutumia jQuery na underscore.js katika mwisho p-kuweka, huna tani ya kificho katika vitambulisho yako script, up katika kichwa yako. Unaweza kufanya hivyo, lakini badala yake wewe tu inayounganisha katika. Na wewe ni kuunganisha katika tu kama wewe kufanya na CSS. Hivyo ni tu inafanya kuwa rahisi kusoma hivyo code yako si kama mistari 1,000 kwa muda mrefu na tani ya kazi ya kwamba unaweza kuwa na kutumia. [01:12:52] Badala yake, wewe tu kuhusisha katika. Ni compartmentalizes yake. Ni kama kuandika baadhi header faili, na basi ikiwa ni pamoja na kwamba header faili katika C. Fikiria tu kama hii. Basi nini hii kufanya? Naam, hii ni kwenda kukimbia. Ni kwenda tahadhari. Hivyo wewe ni kwenda kupata kidogo pop up kuitwa hodi dunia. Quick swali, sanity hundi tu, hivyo unaweza kuona hapa katika mwili, kusema mwili, HTML hapa. Nini huja kwanza? Je, Mimi naona mwili, HTML hapa, au, ninaona tahadhari ya kwanza? [01:13:19] Watazamaji: Alert. [01:13:20] Davin: Haki. Anasema tahadhari. Kwa nini? [01:13:22] Watazamaji: Kwa sababu wewe kwenda kutoka juu hadi chini. [01:13:24] Davin: Ndiyo. Perfect. Hivyo anasema, unaweza kwenda kutoka juu ya chini, ambayo ni sahihi kabisa. Wewe ni kwenda kutoka juu hadi chini. Na katika JavaScript, jQuery, una kazi hiyo ni kama onload, au tayari, na kwamba anasema, OK, kusubiri hadi yote ya HTML hii ina kubeba. Na kisha, piga JavaScript. Kwa sababu hatuna kwamba hapa, jambo la kwanza kabisa kwamba kitatokea ni ni kwenda kwenda kutoka juu hadi chini. Ni kwenda hit kwamba JS wito, ni kwenda kwa tahadhari. Baada ya kuwa wewe click OK, tahadhari kwamba huenda mbali. Basi ni kwenda kuonyesha wewe mwili HTML hapa. Nice. [01:13:54] OK, hivyo tu halisi haraka, kuandika katika JavaScript ni super haraka. Ili kutangaza variable, var jina. Hivyo katika C, una int i, una kutangaza aina gani ya aina ni. PHP, $. JavaScript, var. Sisi aliyesema kuhusu hili. Haki zote, hebu kwenda. [01:14:11] Tanzi, kitu kimoja. Same kitu. Kazi maazimio, hivyo tu kama ve kuonekana katika C. Kitu pekee tofauti ni hivyo wakati kupata kwa lugha nyingine programu, kama wakati wewe kuchukua 51 muhula ijayo na wewe ni kufanya na OCAML, unaweza kukabiliana na kazi bila majina. Hivyo kwamba ni nini hasa hapa. Hivyo unataka kuweka kwa jumla, baadhi ya aina ya thamani ya jumla. Lakini unaweza tu kuwa kufanya hivyo mara moja. Hivyo huna unataka simu yake kazi Jumla, kuwapa kazi azimio. Badala yake, wewe tu kuitumia kama kazi bila majina. Na ve kuonekana hii mengi. Utaona mfano wa hii katika slides wanandoa. Yeah, tutaona. Gabe: Swali Good. Wakati wanaweza unataka kutumia kazi bila majina hapa? Kimsingi, wakati unataka kitu, kama tukio hilo, kutokea. Hivyo wakati panya ni clicked, kwa mfano, unataka baadhi ya kazi kuitwa. Hivyo, unaweza kupita kwa tukio handler, unaweza kupita kwa tukio hilo, aina ya, kazi ambayo unataka kuitwa. Na nini wewe kupita ni kama, mwishoni wa siku, tu pointer kwamba mafundisho, kwa kazi. Hivyo ni si kama wewe ni kupita code nzima, kama pointer kazi. Na kisha, wakati mtu Clicks panya, basi kazi hiyo anapata kuitwa. [01:15:17] Davin: Arrays, hivyo safu azimio. Kisha, safu ya kuweka mambo katika. Real haraka, itakuwaje hii magazeti nje? Nini ya tatu kuwa? [01:15:31] Watazamaji: "JS". [01:15:32] Davin: Right, itakuwa "JS." Ngoja, kurudi nyuma. Ni urefu gani? [01:15:37] Watazamaji: Tatu. Davin: Tatu, haki? Hasa nini unafikiri. Sawa, sasa nenda. Arrays, unaweza kuongeza mambo kwao. Hivyo unaweza kwenda zaidi mipaka yao ya awali. Tu kitu kukumbuka. PHP, JavaScript, wao ni kidogo bit kusamehe zaidi katika suala la mambo kama hiyo. Vitu, sana kama structs katika C, sana kama arrays associative katika PHP. Ve wote alikuwa na uzoefu na hili. Hivyo JSON, wakati wewe kupita JSON na kurudi katika p-kuweka nane, hiyo ni kitu yako. [01:16:03] Hivyo yeah, mfano, mfano halisi haraka. Hapa ni kitu. njia ya kumbukumbu hii kitu, hivyo tu halisi haraka, hebu sema nilitaka kupata nje, OK, ni nini bila shaka? Na hivyo jina kitu hapa ni CS50. Na kisha kama mimi alikuwa associative safu, jinsi gani mimi kufanya hivyo? Mimi itakuwa kutumia ufunguo, haki? Hivyo nina jina la safu. Nina bracket, quotes, muhimu, quotes mwisho, mwisho bracket, na kwamba itakuwa rejea kwamba kipengele ndani ya safu yangu associative. Je, mimi inatazamwa Bila shaka ndani kitu wangu? Mtu yeyote kujua? [01:16:39] Watazamaji: [inaudible]. [01:16:40] Davin: Nini up? Watazamaji: CS50.course. Davin: Right, yeah. Hivyo CS50.course. Hivyo njia wewe rejea mambo ndani ya JSON kitu ni kwa dot. [01:16:48] Watazamaji: Unaweza pia kutumia safu syntax. [01:16:53] Davin: OK, faini. [01:16:54] Gabe: Unaweza pia kutumia CS50 bracket, kamba, kama alama quotation. Watazamaji: Nadhani ni kufanana na PHP. Gabe: Ni kitu kimoja. Davin: Fine! Lakini utaona maeneo mwingine. Yeah, hivyo kuendelea. Hii ni nini mimi tu alisema. Hivyo katika mfano JavaScript jQuery. Hivyo hii ni DOM yangu, haki? Real haraka, hivyo nina kichwa, hello dunia, mwili. Nina kifungo. Inasema "kushinikiza mimi," hivyo nataka kuiondoa. Na mimi nataka kufanya kitu wakati ni clicked. Right, ijayo. [01:17:31] Right, hivyo hii ni yangu JavaScript. Hivyo jQuery ni rahisi tu njia ya kuandika JavaScript. Hivyo hii, na nini mimi nina kwenda kuonyesha wewe ijayo, ni kwenda kuwa jQuery, ni kufanana. Hivyo wao kufanya mambo sawa. Tu jQuery huelekea kuwa rahisi kidogo. Watu huwa na kama ni zaidi. Ina mengi ya utendaji. Hivyo watu huwa na kutumia jQuery. You wote kutumika jQuery katika mwisho p-kuweka. Hivyo nini hii kufanya? Nini hii JavaScript-- hivyo hii ni wazi tu JavaScript. Itakuwa hii nini? Nini ni nini? [01:18:03] Hivyo kwanza, unaweza kuona dirisha onload. Haki? Hivyo hatukuwa kuona kwamba kabla. Hivyo hii ni kwenda kusubiri mpaka mizigo nzima dirisha. Hivyo ni kwenda kusubiri hadi HTML, picha zote mzigo kabla haina chochote. Basi hebu kusema DOM yetu ina kubeba. Kila kitu huko. Kisha nini kitatokea? Yeah? [01:18:19] Watazamaji: Button inaonekana. [01:18:22] Davin: kifungo tayari huko. Yeah, hivyo kifungo tayari huko. Lakini hii ni kwenda kusema, OK, kama mimi bonyeza kifungo, hivyo kifungo tayari pale, kama kwamba tag HTML. Kusubiri, kwenda nyuma halisi haraka. Tag Hii haki haki hapa ni kwenda kuwa kifungo tayari. Tayari kuna button. Lakini basi, JavaScript tag, haki hapa, inasema, OK, Mimi nataka kupata kipengele kwa ID, hivyo kifungo tafuta tu anasema, OK, Mimi nataka ramani ya variable hii kwamba button. Hivyo kwamba kutofautiana ni tu njia rahisi ya kupata kwamba button. Na mimi kusema, OK, kama mimi click kwamba kifungo, hivyo kama mimi click kwamba kipengele, na kipengele hii inahusu kifungo, kama mimi bonyeza yake, basi mimi wanataka kuwaita kazi. Hapa ni moja ya wale bila majina kazi tunachozungumzia. [01:19:03] Tu simu baadhi ya kazi. Ndani ya kazi hiyo, kimsingi kitu tumeona mengi, tahadhari. Click search button. Ni kwenda kimsingi kuwa kifungo. You bonyeza yake. Unaweza kupata tahadhari hiyo. X nje. Hiyo ni. Yeah? [01:19:16] Watazamaji: Hivyo kama wewe kuweka script [Inaudible], script tag katika HTML yako? [01:19:21] Davin: Unaweza kuweka script tag moja kwa moja katika kichwa kwa sababu una onload hii. Ni pia kwamba una click. Hivyo ni kwenda kusubiri hadi click kwa kitu fulani. Lakini onload ni kuwa salama, kufanya uhakika mizigo kila kitu katika HTML yako kabla. Yeah? Unataka kusema kitu? [01:19:40] Gabe: [inaudible]. Davin: Yeah. [01:19:42] Watazamaji: avoids Hivyo onload kufafanua variable kifungo tafuta kwa kusema tu document.getElementByID search button dot [inaudible]. [01:19:49] Davin: Dhahiri, lakini basi kamba yako tu anapata kubwa. Hasa, hivyo hii ni tu kwa iwe rahisi kwa ajili yenu, yeah. Ndiyo? [01:19:56] Watazamaji: wapi sisi kujenga window.onload? Au document.ready? [01:19:58] Davin: Ndiyo, kuna. Ndiyo, kuna kitu, I checked. [01:20:02] Gabe: Si kwa wao huduma ya juu. [01:20:03] Davin: OK, hivyo mimi nina kwenda kukuambia anyway. Hivyo kimsingi, tu kwa ujumla, hivyo window.onload waits mpaka DOM yako, kila HTML yako, mizigo. Waits mpaka picha yako mzigo. Waits mpaka mizigo kila kitu. document.ready, ni tu waits mpaka DOM mizigo yako. Mara baada ya HTML ni wote huko, mara moja DOM yako ni pale, kuanza mbio. Hiyo ni tofauti tu. [01:20:23] Gabe: Quick sanity kuangalia hapa. Hivyo hii inaweza kuonekana aina ya kama mstari wa kanuni, haki? Kwa sababu ni window.onload sawa rundo la stuff. Wakati JavaScript wasomaji hii, kweli au uongo, kazi anapata kunyongwa. Uongo. OK? Nini kinatokea hapa, wewe ni kupita tu kazi hii kama kazi bila majina kwa window.onload. Na kisha wakati ni kwenda kwa kweli kupata kuuawa? Wakati mizigo dirisha. Hiyo ni tukio hilo. Hivyo hiyo ni jus t jambo tuko kuzungumza juu ya awali, haki? Hivyo wakati tukio hutokea, kazi kinachotokea. Same kitu na onclick. [01:20:59] Davin: OK, hivyo mtu alichukua mbali document.ready. Lakini hii itakuwa same-- halisi Watazamaji: ishara ya dola, yaani document.ready. Hiyo ni njia ya mkato. [01:21:07] Davin: Oh, kwamba ni? OK, hivyo njia hii document.ready, njia ya mkato. Lakini hii ni sawa na window.onload ila kwa kuwa tofauti kidogo Mimi niliwaambia juu. Na hii ni jQuery. Hivyo hii ni exact thing-- hii ni JavaScript. Hii ni just-- baadhi ya watu kufikiria ni kama uzito mwanga zaidi, sleek version ambayo ina kura ya utendaji kwamba pengine utasikia kutumia. Hivyo hii haina halisi kitu kimoja. [01:21:34] Hivyo mambo ya aina ya kumweka nje. Hivyo katika mfano mwingine, sisi alikuwa document.getElementByID, hivyo tulikuwa hii kwa muda mrefu kamba kwamba kwenda kupata kipengele kwa chochote ID ina. Hiyo kubadilishwa na wito huu haki hapa. Hivyo unaweza kuona ishara ya dola, basi unaweza kuona quote, hashtag. Hashtag daima selector. Inasema, OK, hii ina nini na ID. Nini selector kwa ajili ya darasa? [01:21:56] Watazamaji: Dot. [01:21:57] Davin: Dot, haki. Kama wewe ni kwenda tu kwa kuchagua tag, ni nini? Ni tu tag, hasa. Na unaweza kutumia kwamba hapa, pia. [01:22:05] Gabe: Na kwa tag, tuna maana kama div, kwa mfano, au kichwa. [01:22:08] Davin: Au mwili au p au kitu kama hicho, yeah. Hivyo hapa, OK, badala ya kusema document.getElementByID, hii ni halisi kitu kimoja. Tu katika jQuery, ni mfupi. Hivyo ni rahisi. Hivyo basi, hakuna zaidi onclick, bonyeza tu. jQuery kazi, piga kazi hii. Alert ni exact. Hivyo ni kidogo ndogo, au kidogo mfupi, kidogo watu bit-- kufikiri ni kidogo rahisi kuandika nje, rahisi kidogo kidogo kuelewa. Lakini hii ni jQuery. mengi ya watu kupata kidogo kidogo kuchanganyikiwa na wasiwasi na wanadhani, OK, jQuery ni tofauti kuliko JavaScript. Nina kumbuka haya mambo mawili tofauti. Ni si. I mean, ni syntax tofauti. Lakini jQuery ni JavaScript. Ni tu inaonekana toleo bora kwamba inaweza kuwa rahisi kuelewa kwamba watu kutumia. Gabe: Yeah, kuwa waaminifu, kwamba ishara ya dola kwamba unaweza kuona katika jQuery, kwamba tu jina la kazi hiyo jQuery amefafanua. Ni haina chochote maalum. Je, Ni tu jina la kazi, tu kama unaweza kufafanua ishara ya dola. [01:23:03] Davin: Yeah, hivyo aliyesema kuhusu hili. Baadhi ya mambo muhimu. Mimi nilikuwa kuangalia nyuma katika Quizzes zamani. Katika Quizzes zamani wanandoa, wameweza alikuwa na kutumia mambo kama haya. Hivyo document.ready, hivyo kuhakikisha kila kitu ya kubeba kabla ya kuanza kufanya mambo. Chagua ID, au kuchagua darasa, ni d tu quote kuwa dot baadhi darasani, mwisho wa kunukuu. Kuwasilisha, hivyo kama wewe ni kuwasilisha fomu na wito kazi hii baada ya fomu elekeza. Thamani, hivyo hebu sema nilikuwa aina kuwasilisha, kama jina la mtumiaji, email, chochote. Mimi nilikuwa sanduku maandishi. Hivyo mimi nina kuandika katika sanduku Nakala kwamba. Naam, kama unataka kupata thamani nje ya kwamba sanduku Nakala, unaweza kutumia dot Val. Na kisha, hapa chini, dot HTML ni sawa ni kama hati dot getElementByID dot innerHTML. Hivyo hiyo ni kwenda na kurudi HTML kutoka kwamba ID. Hapa, wewe tu kutumia baadhi ID au chochote dot HTML. Kwamba utakuwa kupata HTML kutoka kwamba kipengele. Kama alitaka kisha kubadili kwamba HTML, unaweza kupita ni kitu. Hivyo d kuwa kama dot HTML, na kisha ndani, quotes, HTML mpya au kitu. [01:24:05] Gabe: OK, hivyo AJAX. Mimi kwa kweli kama kuelewa AJAX vizuri. Hiyo mimi nataka wewe guys kwa kuelewa AJAX vizuri. Kwa sababu kama wewe kufanya, wewe ni pretty much kwenda kuelewa kila kitu kwamba ina nini na HTTP, PHP, JavaScript kwa sababu wote huja pamoja katika AJAX. AJAX si lugha. AJAX ni mbinu. Na inatumia kura ya zana mbalimbali. AJAX anasimama kwa Asynchronous JavaScript XML. Hivyo njia, lugha, data. [01:24:36] Hivyo lugha kuu ya kuwa sisi kutumia katika AJAX trigger kila kitu na kushughulikia kila kitu baadaye ni JavaScript. Hiyo ni kwa nini inahusiana karibu sana na JavaScript. Na kisha Asynchronous ni kwa sababu sisi si kufanya hivyo wote kwa mara moja wakati sisi ni kupakia ukurasa. Hili ni jambo la kwamba tunaweza kufanya mambo aina ya katika sambamba. wazo kuu nyuma AJAX ni kwamba unataka hivyo ili kupata baadhi ya taarifa maalum. Kwa mfano, wakati wewe ni kuandika mpya user jina wakati wa kujiandikisha jina la mtumiaji, user jina langu ni abc123. Na kisha, mwishoni mwa fomu, una bonyeza Wasilisha. Na alikuwa na kwenda server, na kisha kuangalia kama katika database, abc123 ni tayari. Na kama ni tayari kuna, inasema, jina la mtumiaji tayari katika database. Nao, una kujaza fomu nzima tena. Na ilikuwa kweli, kweli mbaya. [01:25:23] Halafu watu wanasema, OK, kwa nini hawawezi sisi tu kufanya ndogo HTTP ombi kuangalia tu kuona kama user hii ni katika database kabla user alikuwa na kuwasilisha fomu nzima? Hivyo kwa mfano, wakati user anamalizia kuandika abc123, hebu tu kwenda server kidogo kidogo na kupata tu kweli au uongo kutoka server ili kuona kama hiyo ni halali jina la mtumiaji au si. OK, hivyo hiyo ni moja kati ya anatumia ya AJAX siku hizi bado. [01:25:49] Davin: Hivyo kweli haraka, katika Wito Ajax katika jQuery, unaweza yanamaanisha kwamba wewe unataka kuwa synchronous. Unapaswa kufanya hivyo. Lakini unaweza kufanya hivyo. Na kama wewe alifanya hivyo, ni nini kitakachotokea? Naam, kwa mfano, wakati uko kupata habari au chochote, browser yako ni kwenda tu kusubiri mpaka wito kwamba nzima ni kamili badala ya kuruhusu wewe kufanya mengine mambo ya haki baada ya wewe bonyeza yake. [01:26:14] Gabe: Ni si kupita tena. Oh mungu wangu. Sorry! Yup. "Katika siku za nyuma, mteja zinahitajika ombi maudhui yote ya tovuti hiyo. " Hiyo ni nini mimi alisema. Ni inaruhusu sisi kutuma GET ziada au POST maombi bila ya kuwa Reload browser wetu. Hivyo mwisho wa siku, sisi ni kweli kufanya maombi HTTP hapa kwa kutumia JavaScript. Kwa sababu kabla, sisi tu kutumika JavaScript kubadili HTML kwamba tayari akaja. Na sasa, tunaweza kuitumia interface na servrar mtandao pia. njia hii hutokea ni sisi kuwa mteja. Davin ni mteja. Na ana kila JavaScript mbio kwa sababu HTML ni bubu. JavaScript ni smart. Hivyo Davin Davin ina smart yake sehemu na sehemu yake bubu. Yeye anaenda kutumia sehemu yake smart sasa. Yeye anaenda kutumia JavaScript ombi, kwa mfano, kama abc123 ni katika database au la. [01:27:04] Hivyo Davin, tafadhali, wewe tu kutuma mimi ombi HTTP. Asante. Hivyo yeye tu alimtuma ombi HTTP. Unaweza kuona kwamba? Na kwamba ni njia tu sawa kwamba ombi lolote HTTP ni kutumwa. browser, Google Chrome au kitu, ni kwenda kuona kwamba Davin ya kujaribu kupeleka ombi HTTP, kwenda kusaidia HM kidogo. Na kwamba ni kwenda njia yote ya server. Sasa, server ni kwenda kuwa PHP hapa, au lugha nyingine yoyote. Tu kama katika kawaida ombi HTTP. Ni pretty much kawaida ombi HTTP. [01:27:31] Na kisha, server ni kwenda kusema, OK, Davin anataka mimi kuangalia kama abc123 hii ni katika database. Kwenda kuzungumza na mfano. mfano anasema siyo. abc123 ni nzuri jina la mtumiaji. Na kisha, mtandao wa kompyuta ni kwenda kutumia PHP kutoa baadhi ya aina ya faili. Ni inaweza kuwa literally tu faili ambayo ina "ndiyo" ndani yake, au "hapana, au kitu kama hicho. Ni inaweza kuwa faili yoyote. [01:27:54] Ni inaweza kuwa kama mimi nina kwenda kutuma Davin picha ya bata kama ni katika database na kutuma picha ya hamster kama si katika database. Hiyo itakuwa ni aina ya bubu, lakini itakuwa kazi. OK, hivyo mimi kutuma bata kwa Davin. Davin got bata. Na sasa, ambaye ni kwenda kushughulikia bata? Davin ya smart sehemu tena, hivyo JavaScript, haki? JavaScript alimtuma ombi, na JavaScript ni kwenda kupokea ombi na kutafsiri kwa namna fulani. [01:28:22] Na kwa maana hii, ni kwenda kusema, OK, kama bata basi mimi nina nzuri. Kama hamster, basi mimi nina kwenda kusema, hapana, jina la mtumiaji tayari ipo katika database. Lakini kwa kawaida, wewe si kwenda kutuma bata. Wewe ni kwenda kutuma kitu kidogo nadhifu. Na nini sisi kutumia ni XML. Na hivi karibuni zaidi, sisi kutumia JSON. JSON ni tu JavaScript Object Notation, ambayo kimsingi ni kupata nzima JavaScript kitu. Na kuiweka katika faili, kama vile kwamba CS50 kitu kwamba wewe guys kuona. Kuiweka katika faili, na wewe kutuma juu ya Davin. [01:28:53] Hivyo katika kesi hii, napenda kufanya JavaScript kitu na tu kusema, user ipo, ndiyo. Au user lipo, hakuna. Na kutuma nyuma yake. Na kwa nini JSON? Kwa sababu mtu ambaye ni kupokea hii ni kwenda kutumia JavaScript kushughulikia majibu. Na JavaScript kazi hiyo vizuri kwa sababu ni kuitwa JavaScript Object Notation. Haki? Ili aweze piga tu kazi na kupata hii kitu nzuri kutoka majibu. Na kisha, yeye kwenda kujua kama user kwamba ni katika database au la. [01:29:22] Hivyo unaweza kuona, yote kuja pamoja katika mtandao wa kompyuta, na kisha kuna HTTP moja na ombi na moja HTTP kukabiliana na kila kitu. Hivyo kuhakikisha nyie kuelewa hili wito AJAX sababu husaidia kuelewa yote ya dhana tunazungumzia. [01:29:37] Hivyo hapa ni mfano ya AJAX na jQuery. Na hapa, sisi kufanya na kupata JSON. Hivyo sisi ni si kujaribu kupata mfano wa paka hapa, au bata. Sisi ni kujaribu kupata JSON file. Na kisha sisi kusubiri hadi ni kosa, dot kufanyika. Hiyo ina maana mimi nina kusubiri kwa majibu. Ni inaweza kuchukua muda kidogo. Kisha, unaweza kuona upakiaji kidogo. Kama unataka kufanya hivyo katika tovuti yako. Hivyo dot kufanyika, na kisha nini hutokea wakati ni kosa? Wewe kupita katika majina kazi, tu kama tuliona kabla. Kwa sababu kufanyika ni tukio, tu kama kubonyeza mouse au chochote, kwa jQuery. Hivyo wewe kupita katika kazi hii na data, maandishi, kwa sasa, na jqXHR. Na kimsingi, kwamba baadhi tu ya vigezo kwamba unaweza kutumia baadaye kuwa na hali ya ombi HTTP, data kwamba ni kwenda kutuma nyuma na wewe. Hivyo basi unaweza baadaye kutafsiri na kufanya kitu ya maana kwa hayo. Na kama inashindwa, wakati anaweza ni kushindwa? Naam, wakati ombi HTTP inatoa wewe 500 au kitu kama hicho. Kisha, ni kwenda kukuambia hali, aina gani ya kushindwa kwamba alikuwa, na kila aina ya mambo. Una kuhakikisha kushughulikia kesi zote mbili, vinginevyo mpango huenda mambo. [01:30:42] Davin: Hivyo yeah, hii ni hasa nini kuona kwenye mwisho p-kuweka yako. halisi AJAX wito ni katika kupata JSON. Hiyo ni wito. Na kisha, dot kufanyika ni kama ni hundi kama ni mafanikio. Kama ni mafanikio, unataka kufanya kitu kwa data. Unaweza kupata nyuma kutoka kuwa JSON ombi data. Hiyo ni nini kupata nyuma. Hivyo kama wewe kukumbuka kutoka yako p-kuweka, mengi ya ungekuwa kama data bracket i au chochote, dot kiungo au cheo. Chochote kuja nyuma na kwamba JSON, chochote mashamba ni katika JSON kitu, kwamba ni nini wewe ni kupata nyuma. Takwimu ni nini wewe kupata nyuma. Nakala hadhi, tu kitu ambacho inakuwezesha kujua nini kilichotokea. Na kisha, jqXHR, kwamba tu jQuery XML HTTP ombi. Hiyo tu kama kitu. Na kisha kushindwa, kama Gabe alisema. Gabe: Katika mfano wetu kidogo ya abc123 tu kwa kuangalia kama hiyo katika database au si, data itakuwa kitu atafanya, kama data dot user jina lipo, ambayo ni nini PHP yako yanayotokana kwa wewe, kama jina data dot user ipo, basi Mimi nina kwenda tahadhari, user jina tayari ipo. Kingine, mimi nina kwenda tu basi user kuendelea kujaza fomu. OK, usalama, cool. [01:31:50] Davin: Wanataka mimi? [01:31:52] Gabe: Mimi kama hii moja. Hivyo kitu kwamba inaonekana familiar. Sisi ni karibu kufanyika. Hivyo hii ni mfano tu nyie aliona darasani. You walikuwa kutumia argv1 hapa. Hiyo ni kama hoja mstari amri. Na sisi ni MEM kuiga kwamba katika buffer ya kawaida 12. Nini tatizo hapa? Buffer kufurika! Kwa sababu tuna buffer ya kawaida 12. argv1 wanaweza kuwa na ukubwa wa bilioni mbili. Hatuwezi kufanya kuangalia yoyote mpaka. Hivyo tupate nakala mengi ya kumbukumbu. Na tutaweza kuwa na hasa mbaya kuhusu hili. Nini tunaweza kufanya kwamba sana, maana sana katika kesi hii? Ndiyo? Watazamaji: Sehemu ya mambo bilioni mbili ina executable kificho kwamba anarudi [Inaudible]. Gabe: Hasa. Hivyo hiyo ni aina ya Jambo kwamba watu kutumia jailbreak iPhone, kwa mfano. Hivyo kwamba aina ya kitu. Kwa sababu unaweza tu kufanya kifaa kutekeleza kanuni yoyote kwamba wewe kama. fix, hivyo fix ni rahisi. Kuangalia tu kwa ajili ya mipaka. Wewe kuangalia for kwa sababu sisi daima kuangalia for wakati sisi ni kushughulika na masharti. Na kisha, wewe kuchukua urefu wa kamba mbele. Na kama kamba urefu ni kamba halali urefu, ambayo ni ndani 0 na 12, basi sisi ni nzuri. [01:33:03] Davin: Kama huna kuangalia kwa null, halisi haraka, nini kitatokea? Ni itabidi seg kosa. Kwa nini ni seg kosa? Kwa sababu wewe ni wito strlen juu ya null. Gabe: Yeah. Kweli au uongo, kwa kutumia moja password ni wazo nzuri. [01:33:19] Watazamaji: uongo. [01:33:20] Gabe: uongo. Kutumia nywila wengi, na kubwa, wale mrefu. Icons kufuli kuhakikisha usalama. [01:33:26] Watazamaji: uongo. [01:33:27] Gabe: uongo. Ni haina maana yoyote. Ni tu icon. SSL kulinda dhidi ya mtu katika shambulio katikati. Watazamaji: uongo. Gabe: uongo. OK, hivyo wale wote ni uongo. Nice. [Inaudible] Wanataka kuzungumza kuhusu suala hili? Zamu yako. Davin: Aina ya mashambulizi, mtu katikati. Nini mtu katika shambulio katikati? Watazamaji: [inaudible]. Davin: Kama kutuma HTTP ombi, hawakuweza kufanya hivyo, haki? Lakini kama wewe ni kutuma HTTPS, wao pengine si kuwa na uwezo wa kufanya hivyo. Kuna kura ya pointi pamoja uhusiano wako. Una ruta. Una servrar DNS. Kama mtu ni uwezo wa kimwili kuona nini wewe ni kutuma, hivyo mtu anaweza kweli kupata kati yenu mteja, na server, na ni uwezo wa kuona nini wewe ni kutuma, hii ni mtu katika shambulio katikati. Hivyo kuona nini wewe ni kujaribu kupata kutoka server, au ni uwezo wa see-- mbaya, unaweza kuwa na uwezo wa kuona biskuti au kitu kama hicho. [01:34:16] Hivyo kwa mfano, kama wewe si kutumia SSL, yeye kuwa na uwezo wa kuona kikao ID cookies. Na hii inaitwa kikao utekaji nyara kwa kuwa anauona cookies yako ID, na kisha yeye na uwezo wa kwenda kuwa tovuti na kujifanya kuwa wewe. Kwa sababu tu kama katika PHP, kumbuka wakati sisi watumiaji katika, tunafanya nini? Sisi kuweka kikao ID sawa na ID. Hivyo kwamba kubainisha wewe. Hiyo ni kwa nini unaweza kuona kwingineko yako na kwingineko si kila mtu mwingine. [01:34:38] Naam, kama nina uwezo wa kupata kwamba cookie, basi naweza logi kwenye ukurasa. Na kisha, siwezi tu kuona mambo yako na kuanza kununua na kuuza stuff. Hivyo kwamba ni kikao utekaji nyara. Lakini unapaswa kuwa na uwezo to-- hivyo Unaweza kutumia mtu katika shambulio katikati hata kama wao ni kutumia SSL. Lakini unapaswa kuwa na uwezo. Kama wao ni kutumia SSL, unaweza si kikao hijack. Kwa nini? Kwa sababu ni wote encrypted, haki? kama ni encrypted, na mimi bado nina mtu katika katikati, mimi bado kupata data zako. Hiyo ni sawa. Lakini ni encrypted. Hivyo siwezi kweli matumizi yake. Hivyo hiyo ni mbili. [01:35:09] Real haraka, tovuti msalaba ombi kughushi. Hiyo tu kama kuna kiungo na kiungo kwamba hana kitu kwamba huna nadhani ni lazima kufanya. Hivyo kwa mfano, kama kiungo alikuwa kwenda kununua hisa au kuuza hisa, na wewe hawakujua kwamba. Ulibofya kiungo, alimtuma ombi, kununua au kuuzwa kitu ambacho wewe hakuwa na maana ya kufanya. Hiyo ni kwamba. [01:35:25] Msalaba tovuti scripting, hivyo hapa, wewe ni kupita katika kupitia variable q, badala ya kupita katika baadhi ya aina ya thamani, labda q ni kama jina. Hivyo badala ya kupita q sawa Davin au kitu kama hicho, kama huna kutumia HTML chars maalum, kama wewe hawana kuepuka hii kuhakikisha ni OK, basi mimi naweza kupita katika badala yake, hebu sema hapa mimi kusema magazeti au kitu kama hicho, basi mimi naweza kupita katika hapa script simu. [01:35:51] Hivyo basi, badala ya kupata tu variable, Ningependa basi nitafanya hii wito script. Hivyo ndani kwamba script wito, je ni nini? Document dot eneo, ambayo inaenda mabadiliko ya eneo la hati. Hivyo nina kwenda kwa kuelekeza kwa mahali pengine. Ni wito guy mbaya katika mfano huu, nzuri sana. Hakuweza kufikiri ya neno. Na kisha, nini hata Kibaya zaidi ni kwamba mimi nina kwenda na kisha kuweka kuki, ambayo ni baadhi variable nina katika tovuti hii. Mimi nina kwenda kuweka sawa kwa hati dot cookie. Kwa hiyo, mimi nina kwenda kuiba cookie yako. Na mimi nina kwenda kuelekeza habari baadhi ya tovuti kwamba unapaswa kuwa kupata. Na hii yote hutokea kwa sababu wewe ni si kukimbia unapomwona. Yeah? [01:36:29] Watazamaji: Hivyo tu kwa kufanya wazi kwamba, ni vulnerable.com kwamba ni hatari kwa hili. Hivyo kiungo ambayo inaweza kuonekana juu ya ukurasa wowote. Mtu Clicks juu yake, inakwenda vulnerable.com. Una kuki vulnerable.com. Hebu kusema Facebook ni mazingira magumu, hivyo facebook.com. Una yako Facebook cookie. Nini hii ni kufanya, wewe ni kwenda facebook.com, ni mara moja imetuma wewe badguy.com, lakini pamoja na maelezo yako cookie. Hivyo ni kuelekeza haraka, lakini yako Facebook cookie ni pamoja na kwamba kuelekeza, na kwamba ni jinsi wao [inaudible]. Gabe: Yeah, kuna baadhi ya mambo ya maana sana kwamba watu wanaweza kufanya kama kuna hii. Kwa mfano, kama Facebook kuruhusiwa kila mtu kubadili jina lako la mtumiaji, na hawakuwa na kufanya lolote hundi sanity, hivyo inaweza kuingiza jambo JavaScript kwamba mabadiliko picha yako hamster. Na kwamba kuwekeza huo JavaScript ndani ya kila mtu ambaye inaona ukurasa wako. Hivyo kila mtu ambaye inaona ukurasa wako ina kitu kimoja katika jina la mtumiaji. Na kwa sababu ni virusi, kuenea exponentially. Davin: Tutaweza ruka mwisho moja, na kisha sisi ni kosa. Hivyo hii ni mfano mwingine tu. Hivyo hii ni wao siyo kukimbia yao meza SQL. Hivyo unaweza kuacha yake. Hivyo unataka kuepuka mambo. Hiyo ilikuwa mfano wa awali na msalaba tovuti scripting. Sorry sisi mbio kidogo marehemu. Kesho, sorry! Kesho, tuna masaa ya ofisi. Hivyo masaa ya ofisi katika Cabbot 8:00-11:00. masaa ya ofisi ni madhubuti kwa ajili ya maswali quiz.