1 00:00:00,000 --> 00:00:11,330 2 00:00:11,330 --> 00:00:12,360 >> DAVID Malan: Pob hawl. 3 00:00:12,360 --> 00:00:15,970 Mae hyn yn CS50, ac mae hyn yn diwedd yr wythnos naw. 4 00:00:15,970 --> 00:00:18,560 Mae wedi bod yn corwynt dros y dyddiau diwethaf. 5 00:00:18,560 --> 00:00:21,580 Ac problem yn gosod saith, os ydych yn pen-glin ddwfn i mewn iddo, yn sylweddoli bod dipyn o 6 00:00:21,580 --> 00:00:23,340 bit newydd sy'n i mewn 'na. 7 00:00:23,340 --> 00:00:26,660 Ond gadewch i ni weld os na allwn darnau popeth ynghyd yma yn fyr 8 00:00:26,660 --> 00:00:29,230 cyn hynny gwyro i ffwrdd i mewn eto cyfeiriad a gweld arall 9 00:00:29,230 --> 00:00:30,510 lle arall y gallwn fynd. 10 00:00:30,510 --> 00:00:32,630 >> Hyd yn hyd yn hyn, rydym wedi siarad am HTML. 11 00:00:32,630 --> 00:00:33,740 Rydym wedi siarad am CSS. 12 00:00:33,740 --> 00:00:34,705 Rydym wedi siarad am PHP. 13 00:00:34,705 --> 00:00:36,520 Rydych chi wedi dechrau i gael profiad o SQL. 14 00:00:36,520 --> 00:00:38,360 Heddiw, byddwn yn siarad ychydig am JavaScript. 15 00:00:38,360 --> 00:00:41,230 Ond sut mae pob un o'r rhain gwahanol ieithoedd yn ffitio i'w gilydd? 16 00:00:41,230 --> 00:00:44,970 >> Felly, buom yn siarad yr wythnos diwethaf am yr syniad o gael gweinydd. 17 00:00:44,970 --> 00:00:48,470 Felly, gadewch i ni dim ond tynnu petryal hwn fel gweinydd gwe yma. 18 00:00:48,470 --> 00:00:52,200 A gweinydd gwe yn gwasanaethu sicr ffeiliau. 19 00:00:52,200 --> 00:00:54,640 Ac mae rhai o'r ffeiliau hynny Gall fod yn ffeiliau HTML. 20 00:00:54,640 --> 00:00:58,270 Felly, un o'r pethau y mae weinydd y we Gall boeri allan a allai fod yn ffeil y 21 00:00:58,270 --> 00:01:01,290 byddwn yn unig yn tynnu fel hyn sy'n cynnwys rhai HTML. 22 00:01:01,290 --> 00:01:04,786 Felly, yn nhermau lleygwr, beth Nid HTML yn gadael i chi ei wneud? 23 00:01:04,786 --> 00:01:06,036 >> GYNULLEIDFA: Page edrych 'n glws. 24 00:01:06,036 --> 00:01:09,670 25 00:01:09,670 --> 00:01:12,310 >> DAVID Malan: OK, gwnewch dudalen edrych yn neis, er fy mod yn credu fy mod i wedi profi 26 00:01:12,310 --> 00:01:13,370 fel arall. 27 00:01:13,370 --> 00:01:18,250 Felly HTML yn gadael i chi osod allan tudalennau strwythurol, ac mae'n eich galluogi i 28 00:01:18,250 --> 00:01:22,410 fath o esthetaidd farcio dudalen, farcio cynnwys statig, fel eich bod yn 29 00:01:22,410 --> 00:01:23,640 yna gall weld gyda porwr gwe. 30 00:01:23,640 --> 00:01:24,690 >> Ond dyna yw'r allwedd. 31 00:01:24,690 --> 00:01:26,130 Mae'n cynnwys statig. 32 00:01:26,130 --> 00:01:28,590 Rydych yn ysgrifennu, rydych yn arbed iddo, ac yna yr ydych llong. 33 00:01:28,590 --> 00:01:31,130 A 'r gweinyddwr gwe wedyn yn gwasanaethu i fyny at eich ymwelwyr. 34 00:01:31,130 --> 00:01:35,700 >> Ond rydym stylize pethau gan ddefnyddio gwahanol iaith yn gyfan gwbl. 35 00:01:35,700 --> 00:01:40,150 Rydym yn dechrau defnyddio'r nodwedd arddull ar rai tagiau. 36 00:01:40,150 --> 00:01:43,400 Ac mae'r priodoledd arddull gadewch i ni osod pethau fel maint a lliw ffont. 37 00:01:43,400 --> 00:01:46,460 Ac mae'n debyg eich bod wedi dechrau i ddarganfod, neu chi cyn bo hir ewyllysio i derfynol 38 00:01:46,460 --> 00:01:50,160 prosiectau o bosibl, ond eraill eiddo y gallwch eu defnyddio yn y CSS. 39 00:01:50,160 --> 00:01:54,710 Ac felly yn nhermau lleygwr, beth wir felly y CSS yn ei wneud? 40 00:01:54,710 --> 00:01:57,810 Dim ond enghreifftiau o hynny yw'r rheini. 41 00:01:57,810 --> 00:02:00,730 Beth mae'n ei gadael i chi wneud hynny HTML Nid yw'n ymddangos i o'r hyn 42 00:02:00,730 --> 00:02:02,606 rydym wedi gweld hyd yn hyn? 43 00:02:02,606 --> 00:02:04,850 >> GYNULLEIDFA: Diffinio arddulliau eich pen eich hun. 44 00:02:04,850 --> 00:02:06,700 >> DAVID Malan: Diffinio arddulliau eich pen eich hun. 45 00:02:06,700 --> 00:02:10,280 Felly, diffinio pethau fel dosbarthiadau wrth i chi allai fod wedi dod ar eu traws, neu unigryw 46 00:02:10,280 --> 00:02:13,800 nodi nodau mewn dogfen felly y gallwch eu stylize. 47 00:02:13,800 --> 00:02:16,890 Ond yn fwy penodol, byddwn i'n dweud bod CSS 'n sylweddol yn gadael i chi gymryd pethau y 48 00:02:16,890 --> 00:02:20,790 filltir olaf ac yn caniatáu i chi nodi llawer yn fwy manwl gywir estheteg, 49 00:02:20,790 --> 00:02:24,340 tra HTML ar gyfer y rhan fwyaf yn gadael strwythuro eich tudalennau. 50 00:02:24,340 --> 00:02:27,310 >> A hyd yn oed er bod rhai diffygion, fel rydym yn gweld y tag ar gyfer 51 00:02:27,310 --> 00:02:30,690 tag pennawd, a siarad yn fras gwneud pethau mawr a beiddgar. 52 00:02:30,690 --> 00:02:34,250 Dyna diffiniad eithaf generig y tag - mawr a beiddgar. 53 00:02:34,250 --> 00:02:35,260 Pa maint y ffont yw hynny? 54 00:02:35,260 --> 00:02:36,080 Pa liw yw hynny? 55 00:02:36,080 --> 00:02:36,890 Pa mor feiddgar yw hynny? 56 00:02:36,890 --> 00:02:39,830 A CSS yn gadael i chi yn fwy fân alaw pethau fel 'na. 57 00:02:39,830 --> 00:02:42,150 Yn ogystal â gosodiad, gan fod rhai ohonoch wedi gweld. 58 00:02:42,150 --> 00:02:45,180 >> Ac yn ddidwyll, CSS yn ychydig yn iaith anniben. 59 00:02:45,180 --> 00:02:48,370 Mae'n bwerus iawn yn y gallwch wneud llythrennol unrhyw wefan yr ydych wedi 60 00:02:48,370 --> 00:02:51,880 gweld ar y we heddiw ag ef, ond mae'n fath o boen yn y gwddf. 61 00:02:51,880 --> 00:02:54,440 Ac mae rhai ohonoch wedi Ciciodd eich pen yn erbyn y waliau sydd eisoes yn unig i wneud 62 00:02:54,440 --> 00:02:58,560 rhywbeth twp fel canolfan ddewislen ar problem yn gosod saith os ydych wedi gotten i 63 00:02:58,560 --> 00:02:59,470 y pwynt hwnnw yn barod. 64 00:02:59,470 --> 00:03:01,530 >> Ond yn sylweddoli, y pethau hynny mynd yn haws dros gyfnod o amser. 65 00:03:01,530 --> 00:03:02,820 Byddwch yn dechrau i hysbysiad batrymau. 66 00:03:02,820 --> 00:03:06,020 Ac eto, bydd Google yn eich ffrind ar gyfer y gwahanol ffyrdd y gallwch 67 00:03:06,020 --> 00:03:07,220 datrys y mathau hyn o broblemau. 68 00:03:07,220 --> 00:03:11,520 >> Ac yr wyf yn meiddio dweud gyda CSS, HTML a mwy yn gyffredinol, gallwch ddatrys problemau mewn 69 00:03:11,520 --> 00:03:15,910 llawer mwy o ffyrdd, pob un a allai iawn yn dda fod yn gywir, nag y gallech 70 00:03:15,910 --> 00:03:18,900 yn rhywbeth fel C, hyd yn oed bellach PHP, neu JavaScript. 71 00:03:18,900 --> 00:03:21,080 Mae dim ond nifer o wahanol ffyrdd i osod pethau allan. 72 00:03:21,080 --> 00:03:22,570 >> Ond mae hyn yn dechrau cael anniben, rydym meddai. 73 00:03:22,570 --> 00:03:26,480 Unig fath o commingling eich HTML a eich CSS â'r priodoledd arddull yn 74 00:03:26,480 --> 00:03:27,590 ychydig yn flêr. 75 00:03:27,590 --> 00:03:31,460 Ac felly rydym yn dweud yn lle, rhyw fath o siarad yn haniaethol, y dylech 76 00:03:31,460 --> 00:03:34,050 o leiaf yn dechrau i ffactor eich CSS yn ôl pob tebyg. 77 00:03:34,050 --> 00:03:37,430 Nid yw eich steil priodoleddau, ond o leiaf defnyddiwch y tag arddull tu mewn yr hyn 78 00:03:37,430 --> 00:03:38,840 rhan o dudalen we? 79 00:03:38,840 --> 00:03:39,560 >> GYNULLEIDFA: Head. 80 00:03:39,560 --> 00:03:40,120 >> DAVID Malan: Yn y pen. 81 00:03:40,120 --> 00:03:43,270 Hyd yn hyn, dim ond cael y teitl i fyny yno, ond gallwch hefyd ychwanegu arddull 82 00:03:43,270 --> 00:03:47,230 tagio, a gallwch roi eich CSS fras siarad tuag at frig y dudalen. 83 00:03:47,230 --> 00:03:52,550 Ond yna rydym yn cymryd pethau un cam ymhellach ac yr ydym yn ffactor sy'n gwybod mwy 84 00:03:52,550 --> 00:03:54,130 i mewn i ffeil ar wahân. 85 00:03:54,130 --> 00:03:57,240 >> Ac felly y ddwy ffeil hyn yn rhywsut nawr cysylltiedig. 86 00:03:57,240 --> 00:03:59,550 Ac yn wir yr oedd y tag a wnaeth hynny. 87 00:03:59,550 --> 00:04:02,920 A beth oedd yn un o'r trosfwaol cymhellion ar gyfer ffactoreiddio ein CSS 88 00:04:02,920 --> 00:04:04,057 oed yn fwy? 89 00:04:04,057 --> 00:04:05,280 >> GYNULLEIDFA: reusability. 90 00:04:05,280 --> 00:04:05,785 >> DAVID Malan: reusability. 91 00:04:05,785 --> 00:04:06,150 Iawn? 92 00:04:06,150 --> 00:04:09,470 Efallai eich bod wedi gweld yn saith eisoes yn gosod-p bod llawer o'r tudalennau, y 93 00:04:09,470 --> 00:04:12,260 prynu dudalen, mae'r dudalen gwerthu, y tudalen portffolio, mae'n debyg 94 00:04:12,260 --> 00:04:13,550 strwythuro braidd yn yr un modd. 95 00:04:13,550 --> 00:04:17,579 Mae logo cyllid CS50 ar y brig oni bai eich bod wedi penderfynu newid. 96 00:04:17,579 --> 00:04:19,839 Mae 'na troedyn yn y waelod y tudalennau. 97 00:04:19,839 --> 00:04:24,315 A CSS yn caniatáu i chi wedyn ffactor allan i mewn i ffeil ar wahân felly os 98 00:04:24,315 --> 00:04:27,780 ydych chi am newid rhywbeth yn fyd-eang ar draws eich safle cyfan, gallwch mewn gwirionedd 99 00:04:27,780 --> 00:04:29,390 dim ond ei newid mewn un lle. 100 00:04:29,390 --> 00:04:32,750 >> Ond mae pris a dalwch o bosibl drwy gael ddileu ffactorau y 101 00:04:32,750 --> 00:04:38,380 CSS o fy ffeil HTML i mewn i wahān ffeilio cyfeirio gyda'r 102 00:04:38,380 --> 00:04:40,650 tag, a welodd yr ydym ni ar ddydd Llun. 103 00:04:40,650 --> 00:04:43,850 Beth allai fod yn anfantais o hyn? 104 00:04:43,850 --> 00:04:48,830 Gan feddwl yn ôl wythnos yn ôl i'r adeg pan rydym yn siarad am HTTP a TCP / IP a sut 105 00:04:48,830 --> 00:04:52,070 y rhyngrwyd yn gweithio. 106 00:04:52,070 --> 00:04:53,530 Rhywbeth dros yma? 107 00:04:53,530 --> 00:04:54,730 >> GYNULLEIDFA: Mae'n cymryd mwy o amser. 108 00:04:54,730 --> 00:04:55,470 >> DAVID Malan: Mae'n cymryd mwy o amser. 109 00:04:55,470 --> 00:04:56,750 Pam? 110 00:04:56,750 --> 00:04:59,450 >> GYNULLEIDFA: [Anghlywadwy]. 111 00:04:59,450 --> 00:04:59,750 >> DAVID Malan: Yeah. 112 00:04:59,750 --> 00:05:01,240 Felly mae'n dadlau cymryd ychydig mwy o amser. 113 00:05:01,240 --> 00:05:04,290 Oherwydd bod un, mae'r CSS yn amlwg nid yn yr un ffeil. 114 00:05:04,290 --> 00:05:06,920 Felly, yn awr rhaid i chi wneud nad un, ond dau gais. 115 00:05:06,920 --> 00:05:11,230 A phob un o'r ceisiadau hynny fel y gwelsom yn Chrome yn yr Arolygydd fel y'i gelwir, 116 00:05:11,230 --> 00:05:15,740 ac yr ydym yn edrych ar y tab rhwydwaith, pob o ffeiliau hynny yn gofyn am un HTTP 117 00:05:15,740 --> 00:05:18,360 cais, a welodd yr ydym yn cymryd rhai swm o amser. 118 00:05:18,360 --> 00:05:19,290 Nawr, efallai nid yw'n llawer. 119 00:05:19,290 --> 00:05:20,670 Efallai ei fod yn dim ond 20 milieiliadau. 120 00:05:20,670 --> 00:05:22,260 Efallai ei fod yn 200 milieiliadau. 121 00:05:22,260 --> 00:05:25,530 >> Ond meddyliwch am dudalen fel Facebook, neu CNN, neu Google, sy'n llawer 122 00:05:25,530 --> 00:05:28,060 fwy na'r enghreifftiau rydym wedi edrych ar hyd yn hyn. 123 00:05:28,060 --> 00:05:32,070 Efallai y tudalennau hynny wedi dwsinau o ffeiliau, Gallai pob un ohonynt yn gofyn am 124 00:05:32,070 --> 00:05:33,550 llwytho i lawr o ffeil. 125 00:05:33,550 --> 00:05:35,800 Fel y gall pethau a allai fod yn dechrau i arafu. 126 00:05:35,800 --> 00:05:39,280 >> Ac yn enwedig y dyddiau hyn pan rydym i gyd yn ffonau symudol yn ein pocedi a 127 00:05:39,280 --> 00:05:43,010 cysylltiadau rhyngrwyd yn arafach, yn gorfod aros ychydig yn fwy o milieiliadau, mae ychydig 128 00:05:43,010 --> 00:05:46,110 mwy o milieiliadau ar gyfer ychwanegol Gall ffeiliau mewn gwirionedd fod yn araf. 129 00:05:46,110 --> 00:05:50,430 Latency yw'r gair sy'n disgrifio'r fath o aros i chi bod gennych eich bod yn 130 00:05:50,430 --> 00:05:53,110 profi wrth aros am rhywfaint o darn o wybodaeth. 131 00:05:53,110 --> 00:05:54,430 >> Ond mae â'i ben. 132 00:05:54,430 --> 00:05:56,600 Felly, nid yw'n pob math o - 133 00:05:56,600 --> 00:05:58,170 y mae mewn gwirionedd dipyn o si-so yma. 134 00:05:58,170 --> 00:06:02,970 Anfantais yn awr, ond gall pa borwyr wneud os ydynt yn smart er mwyn osgoi 135 00:06:02,970 --> 00:06:08,870 gorfod gofyn i'r un styles.css ffeilio eto gall fod i wneud beth? 136 00:06:08,870 --> 00:06:09,390 >> Cache ei. 137 00:06:09,390 --> 00:06:10,370 Felly caching - 138 00:06:10,370 --> 00:06:11,690 C-A-C-H-E - 139 00:06:11,690 --> 00:06:15,810 gyffredinol yn golygu yma dim ond i achub y ffeilio eich cais y tro cyntaf, a 140 00:06:15,810 --> 00:06:17,440 Yna edrychwch ar eich cache ar ei gyfer. 141 00:06:17,440 --> 00:06:20,400 Gwiriwch eich bod yn fath o gynhwysydd storio, ac os oes gennych 142 00:06:20,400 --> 00:06:24,520 copi o styles.css, hyd yn oed os yw rhai eraill yn tudalen yn y p-set, neu unrhyw wefan, 143 00:06:24,520 --> 00:06:28,560 gofyn am hynny eto, dim ond i roi defnyddiwr yr un copi cached. 144 00:06:28,560 --> 00:06:30,140 Peidiwch â thrafferthu gofyn amdano. 145 00:06:30,140 --> 00:06:32,560 >> Anfantais yno, fodd bynnag, gan fod rhai ohonoch wedi baglu drosodd yn y p-set. 146 00:06:32,560 --> 00:06:35,870 Os byddwch yn gwneud newid ar y gweinydd a byddwch yn mynd yn ôl at y porwr ac rydych 147 00:06:35,870 --> 00:06:39,250 ail-lwytho, weithiau y porwr yn chi ffafr ac nid yw'n trafferthu 148 00:06:39,250 --> 00:06:43,660 ail-lwytho i lawr eich ffeil styles.css oherwydd, yn dod ar, beth yw'r groes 149 00:06:43,660 --> 00:06:47,620 bod arddulliau hyn sy'n defnyddio Facebook yn mynd i newid awr i awr neu 150 00:06:47,620 --> 00:06:48,140 o ddydd i ddydd? 151 00:06:48,140 --> 00:06:48,800 Mae'n eithaf isel. 152 00:06:48,800 --> 00:06:52,260 Efallai y byddant yn newid dros amser, ond nid gan y funud neu fesul awr. 153 00:06:52,260 --> 00:06:55,810 >> Felly tric, dim ond FYI wrth wneud ar y we datblygu, yn aml yn dal i lawr y 154 00:06:55,810 --> 00:06:59,500 sifft allweddol ar gyfer achos hwn ac yna cliciwch ail-lwytho yn eich porwr, a bydd hynny 155 00:06:59,500 --> 00:07:03,280 fel arfer yn dweud wrth y ail-lwytho porwr popeth, hyd yn oed os ydych eisoes wedi 156 00:07:03,280 --> 00:07:04,180 yn y cache. 157 00:07:04,180 --> 00:07:06,630 Felly eto, upsides ac anfanteision, ond mae pob un ohonynt 158 00:07:06,630 --> 00:07:08,260 yn y pen draw dylunio penderfyniadau. 159 00:07:08,260 --> 00:07:11,520 >> Felly nawr, ni wnaethom yn unig terfyn ar y stori yma. 160 00:07:11,520 --> 00:07:15,790 Os wyf yn awr yn mynd yn ôl ac yn ôl ac yn ôl a yn ôl, rydym yn dechrau cyflwyno nid yn unig 161 00:07:15,790 --> 00:07:18,060 HTML, ond PHP. 162 00:07:18,060 --> 00:07:20,786 Felly, yn nhermau lleygwr, beth yn PHP gadewch i ni ei wneud? 163 00:07:20,786 --> 00:07:22,770 >> GYNULLEIDFA: [Anghlywadwy]. 164 00:07:22,770 --> 00:07:24,258 >> DAVID Malan: Beth sy'n bod? 165 00:07:24,258 --> 00:07:25,250 >> GYNULLEIDFA: Cyflwyno rhesymeg i mewn i'r cod. 166 00:07:25,250 --> 00:07:26,620 >> DAVID Malan: Yeah, cyflwyno rhesymeg yn eich cod. 167 00:07:26,620 --> 00:07:29,570 Felly mae'n iaith raglennu gwir gyda dolenni, a newidynnau, a 168 00:07:29,570 --> 00:07:32,620 swyddogaethau, ac amodau, ac mae pob un y pethau yr ydym wedi bod yn defnyddio ffordd yn ôl 169 00:07:32,620 --> 00:07:33,780 pan ers dechrau. 170 00:07:33,780 --> 00:07:36,780 A PHP, yr ydym wedi gweld, gellir ei ddefnyddio naill ai yn y llinell orchymyn - mae'n 171 00:07:36,780 --> 00:07:39,190 Nid oes rhaid i chi gael unrhyw beth i'w wneud â'r we, er bod hynny'n 172 00:07:39,190 --> 00:07:43,150 mewn gwirionedd ei darddiad a'r hyn y mae'n tueddu i fod yn dda am ac yn ffafriol i - 173 00:07:43,150 --> 00:07:47,130 ond gallwch ddefnyddio PHP gan natur yn unig y ffaith bod ganddo print () 174 00:07:47,130 --> 00:07:49,660 swyddogaeth, a printf () swyddogaeth, neu adlais () swyddogaeth. 175 00:07:49,660 --> 00:07:52,440 Mae tusw o ffyrdd yr ydych Gall argraffu testun gyda PHP. 176 00:07:52,440 --> 00:07:56,540 >> Felly, gallwch ddefnyddio'r rhaglenni hyn iaith i'r allbwn yn union 177 00:07:56,540 --> 00:07:58,460 yr hyn yr ydym yn sôn amdanynt cyn. 178 00:07:58,460 --> 00:08:01,360 Gallwch gynhyrchu yn ddeinamig eich HTML. 179 00:08:01,360 --> 00:08:02,300 Efallai nad y cyfan ohono. 180 00:08:02,300 --> 00:08:06,460 Efallai eich bod pethau cod caled, fel y pennawd, i mewn na'r troedyn, a logo, 181 00:08:06,460 --> 00:08:07,950 a bod eich taflenni arddull, a hynny i gyd. 182 00:08:07,950 --> 00:08:11,190 Ond ar gyfer rhywbeth fel sefydlu p saith, lle rydych chi'n trin stociau a 183 00:08:11,190 --> 00:08:14,690 gan ddangos portffolio y defnyddiwr, sy'n mynd i newid yn ddeinamig, gallech 184 00:08:14,690 --> 00:08:18,960 yn sicr yn defnyddio PHP a'r rhesymeg y mae'n ei roi chi fel iaith raglennu i 185 00:08:18,960 --> 00:08:22,320 allbwn ddeinamig is-setiau y dudalen. 186 00:08:22,320 --> 00:08:25,900 >> Felly, pan fyddwch yn siarad am wefannau deinamig, neu raglenni ar y we, dyna 187 00:08:25,900 --> 00:08:27,200 hyn yr ydych yn wir yn siarad am. 188 00:08:27,200 --> 00:08:31,450 Gan ddefnyddio iaith fel PHP, neu bethau a elwir yn Python, Ruby neu, neu Java, neu 189 00:08:31,450 --> 00:08:35,900 eto ieithoedd eraill, i holi cronfa ddata yn aml, neu weinydd arall, a 190 00:08:35,900 --> 00:08:38,580 Yna boeri allan HTML ddeinamig. 191 00:08:38,580 --> 00:08:42,470 >> Nawr bod y canlyniad terfynol, wrth fynd heibio, yn bod y HTML y rhan fwyaf o wefannau, 192 00:08:42,470 --> 00:08:45,970 gan gynnwys eich saith set-p, yn ôl pob tebyg mynd i fod yn llanast mawr os 193 00:08:45,970 --> 00:08:48,060 ydych yn edrych ar y ffynhonnell cod mewn porwr. 194 00:08:48,060 --> 00:08:49,010 Nid yw hyn yn beth mawr. 195 00:08:49,010 --> 00:08:51,550 Ar y pwynt hwn, pan yr ydym yn gofalu am arddull, yr ydym yn gofalu am y 196 00:08:51,550 --> 00:08:52,740 pethau eich bod yn ysgrifennu. 197 00:08:52,740 --> 00:08:56,240 Ni fyddwn yn gofalu am y pethau bod yr hyn eich allbynnau cod. 198 00:08:56,240 --> 00:08:59,520 Felly peidiwch â phoeni am bant yma os yw'n PHP sy'n 199 00:08:59,520 --> 00:09:01,190 mewn gwirionedd yn outputting stwff. 200 00:09:01,190 --> 00:09:04,430 Wedi'r cyfan, ni fydd y porwr gofal, ac ni fydd dynol yn edrych 201 00:09:04,430 --> 00:09:05,400 yn y ffynhonnell beth bynnag. 202 00:09:05,400 --> 00:09:09,000 Rydym ni, y staff, er enghraifft, byddai yn edrych ar eich PHP. 203 00:09:09,000 --> 00:09:13,440 >> Felly, gadewch i mi roi enghraifft cyflym yn awr pam arall y gallai hyn fod yn ddefnyddiol. 204 00:09:13,440 --> 00:09:18,620 Felly, dweud y gwir, ni allaf gofio'r ddiwethaf amser Roeddwn i'n arfer C i ddatrys problem yn y 205 00:09:18,620 --> 00:09:19,620 y byd go iawn. 206 00:09:19,620 --> 00:09:22,330 Yr oedd yn ôl pob tebyg yn yr ysgol i raddedigion pan Roedd angen i mi ddefnyddio iaith sy'n 207 00:09:22,330 --> 00:09:26,710 yn weddol lefel isel a roddodd i mi y cyfle i wneud rhywbeth yn uchel iawn 208 00:09:26,710 --> 00:09:30,720 perfformio i arbed mewn gwirionedd cymaint o CPU cylchoedd ag y gallwn, i raddau helaeth 209 00:09:30,720 --> 00:09:33,990 oherwydd fy mod yn defnyddio setiau data mawr, a phob cylch CPU cyfrif. 210 00:09:33,990 --> 00:09:37,750 A dweud y gwir, hyd yn oed mewn pethau fel ffonau y dyddiau hyn a dyfeisiau eraill 211 00:09:37,750 --> 00:09:39,910 lle nad ydych yn llwyr cael cymaint o cof ac nid ydych yn llwyr fod â 212 00:09:39,910 --> 00:09:44,160 llawer o CPU, defnyddio ieithoedd yn gyflymach yn dal i apelio. 213 00:09:44,160 --> 00:09:47,290 >> Ond yn y byd go iawn, pan fyddwch yn unig am daflu rhywfaint o rhaglen at ei gilydd i 214 00:09:47,290 --> 00:09:50,340 dadansoddi rhywfaint o ddata, neu os ydych wedi casglu criw cyfan o gofrestriadau ar gyfer 215 00:09:50,340 --> 00:09:53,330 rhywfaint o grŵp myfyrwyr ac rydych am iawn awtomeiddio gyflym anfon e-bost 216 00:09:53,330 --> 00:09:56,240 o un i un i bob un o'r rhai a cofrestredig, rydych yn mynd i estyn am 217 00:09:56,240 --> 00:09:59,240 iaith ar lefel uwch na C fel petai. 218 00:09:59,240 --> 00:10:04,060 Rhywbeth fel PHP neu Python, neu Ruby, neu hanner dwsin o bobl eraill sy'n bodoli 219 00:10:04,060 --> 00:10:04,550 y dyddiau hyn. 220 00:10:04,550 --> 00:10:07,200 Ond mae'r tri yn ôl pob tebyg yr hawl mwyaf ffasiynol yn awr. 221 00:10:07,200 --> 00:10:10,840 >> A beth mae hyn yn golygu yw y gallwch chi agor sefydlu golygydd testun fel gedit neu 222 00:10:10,840 --> 00:10:14,030 y rhan fwyaf o unrhyw beth arall ac yna dim ond dechrau Cod ysgrifennu heb orfod poeni 223 00:10:14,030 --> 00:10:17,800 am lunio, heb orfod wir yn poeni am reoli cof, 224 00:10:17,800 --> 00:10:20,820 cadw mewn cof fodd bynnag, fod ychydig Bydd annibendod yn y pen draw yn dod yn ôl 225 00:10:20,820 --> 00:10:24,790 i frathu chi os bydd y set ddata yn cael mwy o faint neu os yw'r broblem yn cael fawr. 226 00:10:24,790 --> 00:10:27,230 Ond beth mae hyn yn ei olygu i ni yw y canlynol. 227 00:10:27,230 --> 00:10:29,860 >> Gadewch i mi fynd yn ei flaen ac yn rhedeg sillafu o broblem a chwech. 228 00:10:29,860 --> 00:10:33,480 Felly, mae hyn yn fy rhoi ar waith-seiliedig trie fy mod yn defnyddio ar y mawr 229 00:10:33,480 --> 00:10:35,500 bwrdd lle nad oeddwn perfformio mor dda. 230 00:10:35,500 --> 00:10:38,720 Byddwn yn dod yn ôl ymhen wythnos a ailedrych ar y rhai oedd yn y pen draw ar ben y 231 00:10:38,720 --> 00:10:40,430 bwrdd mawr yn ein darlith diwethaf. 232 00:10:40,430 --> 00:10:44,520 Ond am y tro, gadewch i mi fynd yn ei flaen a dim ond rhedeg fy ateb yn y testun, ac fe wnawn 233 00:10:44,520 --> 00:10:48,460 y Brenin Iago Beibl, ac yma rydym yn mynd. 234 00:10:48,460 --> 00:10:51,080 >> Felly, y rhai yn yr holl sôn, geiriau wedi'u camsillafu allan o 235 00:10:51,080 --> 00:10:52,240 y Brenin Iago Beibl. 236 00:10:52,240 --> 00:10:55,560 Ac mae fy rhoi ar waith yn cymryd hanner eiliad i gyd. 237 00:10:55,560 --> 00:10:58,270 Felly, nid yn rhy ddrwg ar y cyfrifiadur penodol. 238 00:10:58,270 --> 00:11:01,540 Ond meddyliwch am faint o codio Roedd rhaid i mi ysgrifennu. 239 00:11:01,540 --> 00:11:02,880 Meddyliwch faint o cod bu'n rhaid i chi ysgrifennu. 240 00:11:02,880 --> 00:11:06,170 Meddyliwch faint o oriau rydych chi'n ei wario yn y D-neuadd neu eich dorm neu lle bynnag 241 00:11:06,170 --> 00:11:07,890 mewn gwirionedd yn codio i fyny ateb hwnnw. 242 00:11:07,890 --> 00:11:11,850 >> Wel, os wyf mewn gwirionedd yn cael lefel uwch iaith fel PHP, cymryd sylw o'r 243 00:11:11,850 --> 00:11:13,350 beth y gallaf ei wneud yma. 244 00:11:13,350 --> 00:11:16,410 Yn gyntaf, mae'n debyg bod hyn yn lle hynny eich cod dosbarthu. 245 00:11:16,410 --> 00:11:17,790 Mae hon yn ffeil o'r enw sillafu. 246 00:11:17,790 --> 00:11:20,220 Mae ar gael fel rhan o heddiw cod dosbarthu. 247 00:11:20,220 --> 00:11:22,670 Ac yr wyf i'n mynd i chwifio fy llaw yn y rhan fwyaf o'r manylion, ond mae hyn mewn gwirionedd 248 00:11:22,670 --> 00:11:25,500 yn enghraifft ddiddorol o sut y efallai y byddwch porthladd iaith 249 00:11:25,500 --> 00:11:28,870 fel C drosodd i PHP. 250 00:11:28,870 --> 00:11:33,420 Wyf yn llythrennol agor dwy ffenestr testun, un gyda fy fersiwn C o speller.c, 251 00:11:33,420 --> 00:11:36,960 ac yr wyf newydd ddechrau cyfieithu yn fy ben i PHP a deipio gan ddefnyddio 252 00:11:36,960 --> 00:11:38,840 y swyddogaethau cyfatebol agosaf. 253 00:11:38,840 --> 00:11:40,100 >> Felly, mae rhai o'r pethau hyn yn wahanol. 254 00:11:40,100 --> 00:11:43,730 Gwelsom tro diwethaf na PHP yn defnyddio cynnwys yn yr un ffordd. 255 00:11:43,730 --> 00:11:47,050 Mae'n defnyddio ei gwneud yn ofynnol fel arfer, er bod gynnwys yn bodoli. 256 00:11:47,050 --> 00:11:50,330 Diffinio ychydig yn wahanol i # Ddiffinio'n C, ond mae hynny'n 257 00:11:50,330 --> 00:11:51,890 sut yr ydym yn gwneud yn gyson. 258 00:11:51,890 --> 00:11:55,860 $ Argc mae'n troi allan yn bodoli yn PHP, felly rydym wedi gweld hynny o'r blaen. 259 00:11:55,860 --> 00:11:58,650 Newidynnau yn unig yw'r rhain, a phob un sy'n dechrau gydag arwyddion ddoler. 260 00:11:58,650 --> 00:12:00,590 Dwyn i gof dyma griw o bwyntiau fel y bo'r angen. 261 00:12:00,590 --> 00:12:03,970 >> Felly stori fer hir, rydych yn croeso i troi drwy'r hyn os chwilfrydig, mae hyn yn 262 00:12:03,970 --> 00:12:10,010 bron i trosi llinell-am-linell y Fersiwn C o speller.c i mewn PHP. 263 00:12:10,010 --> 00:12:12,630 A allech chi wneud hyn eto ar gyfer hanner dwsin o ieithoedd eraill. 264 00:12:12,630 --> 00:12:14,910 >> Ond yr hyn sy'n ddiddorol yw hyn. 265 00:12:14,910 --> 00:12:16,910 Neu beth sy'n dweud y gwir digalon yw hyn. 266 00:12:16,910 --> 00:12:20,790 Gadewch i mi fynd yn ei flaen a theipiwch am dictionary.php, ac yn honni fy mod yn 267 00:12:20,790 --> 00:12:23,670 mynd i fynd yn ei flaen ac ail-weithredu problem gosod chwech yma. 268 00:12:23,670 --> 00:12:27,530 >> Felly, gadewch i ni yn cynnig cyntaf yn y ffeil, fydd yn cael ei rhoi ar waith yn 269 00:12:27,530 --> 00:12:30,550 PHP, felly gadewch i mi agor fy tagiau fel 'na. 270 00:12:30,550 --> 00:12:34,780 Gadewch i mi roi fy hun yn fyd-eang amrywiol, $ maint yn cael sero. 271 00:12:34,780 --> 00:12:36,710 Ac yr wyf i'n mynd i roi fy hun tabl hash. 272 00:12:36,710 --> 00:12:38,110 Byddaf yn defnyddio tabl hash ar gyfer y peth hyn. 273 00:12:38,110 --> 00:12:42,070 Sut ydw i'n datgan tabl hash yn PHP? 274 00:12:42,070 --> 00:12:42,990 Wneud. 275 00:12:42,990 --> 00:12:43,980 OK. 276 00:12:43,980 --> 00:12:48,870 >> Braced braced agos mor agored cynrychioli beth yn PHP, fel yr ydym wedi gweld? 277 00:12:48,870 --> 00:12:51,850 Amrywiaeth, ond mae amrywiaeth a allai fod yn amrywiaeth cysylltiadol. 278 00:12:51,850 --> 00:12:54,320 Arae cysylltiadol yn strwythur data sy'n 279 00:12:54,320 --> 00:12:55,860 allweddi gysylltiedig â gwerthoedd. 280 00:12:55,860 --> 00:12:59,430 >> Nawr yn y symlaf mynegeio'n rhifol amrywiaeth, allweddi hynny'n beth? 281 00:12:59,430 --> 00:13:02,250 282 00:13:02,250 --> 00:13:03,960 Zero, un, dau, tri, dde? 283 00:13:03,960 --> 00:13:08,780 Hen ysgol pethau yn ôl oddi wrth C. Ond gall hefyd fod yn llinynnau fel foo, a bar, 284 00:13:08,780 --> 00:13:12,210 neu Maxwell, neu unrhyw llinyn o'r fath. 285 00:13:12,210 --> 00:13:14,240 Felly, yr wyf yn gallu trosoledd y mewn dim ond hyn o bryd. 286 00:13:14,240 --> 00:13:17,550 >> Gadewch i mi fynd yn ei flaen ac yn datgan swyddogaeth fel - 287 00:13:17,550 --> 00:13:19,020 gadewch i ni wneud llwyth () yn gyntaf. 288 00:13:19,020 --> 00:13:20,690 Felly llwyth swyddogaeth (). 289 00:13:20,690 --> 00:13:23,440 A PHP yn ychydig yn wahanol yn y yn llythrennol deipio swyddogaeth, ond 290 00:13:23,440 --> 00:13:24,930 peidiwch â theipio math dychwelyd. 291 00:13:24,930 --> 00:13:28,760 Rydw i'n mynd i fynd yn ei flaen a dweud bod y Dylai swyddogaeth llwyth () cymryd mewn 292 00:13:28,760 --> 00:13:31,000 ddadl $ geiriadur, dim ond fel fersiwn C gwnaeth. 293 00:13:31,000 --> 00:13:32,510 Rydw i'n gwneud hynny ar y cof. 294 00:13:32,510 --> 00:13:34,910 >> Ac yr wyf yn cynnig fy mod mynd i wneud hyn. 295 00:13:34,910 --> 00:13:37,080 Rwy'n dim ond yn mynd i wneud foreach. 296 00:13:37,080 --> 00:13:40,710 Rydw i'n mynd i alw swyddogaeth o'r enw ffeil (), gan fynd yn enw'r y 297 00:13:40,710 --> 00:13:44,990 ffeil, sef y newidyn $ Geiriadur â $ gair. 298 00:13:44,990 --> 00:13:49,410 Ac yna y tu mewn fy ar gyfer ddolen yma, rwy'n mynd i fynd yn ei flaen ac yn ei storio yn fy 299 00:13:49,410 --> 00:13:57,440 $ Tabl bod $ gair yn cael wir. 300 00:13:57,440 --> 00:13:57,918 Wneud. 301 00:13:57,918 --> 00:14:01,264 O, aros. 302 00:14:01,264 --> 00:14:02,422 Wneud. 303 00:14:02,422 --> 00:14:02,760 OK. 304 00:14:02,760 --> 00:14:04,970 >> Dyna'r llwyth () swyddogaeth ddweud mewn PHP. 305 00:14:04,970 --> 00:14:05,865 Yn awr, pam y mae hynny'n gweithio? 306 00:14:05,865 --> 00:14:07,010 A dwi'n fath o twyllo yma. 307 00:14:07,010 --> 00:14:09,980 >> Felly, un, foreach a welsom amser yn fyr diwethaf. 308 00:14:09,980 --> 00:14:13,680 'I jyst yn golygu y gallwch ailadrodd dros amrywiaeth heb trafferthu gyda fi 309 00:14:13,680 --> 00:14:16,150 ac n ac yn ogystal a mwy, a hynny i gyd. 310 00:14:16,150 --> 00:14:21,350 Geiriadur, wrth gwrs, enw'r ffeil, rhywbeth fel mawr neu fach, y ddau 311 00:14:21,350 --> 00:14:22,830 geiriaduron ni ddefnyddiwyd y tro diwethaf. 312 00:14:22,830 --> 00:14:26,715 Ffeil yn swyddogaeth sy'n agor i fyny y testun ffeiliau, yn darllen yn linell wrth linell, a 313 00:14:26,715 --> 00:14:29,840 dwylo chi yn ôl amrywiaeth enfawr, pob un o'r elfennau y mae eu yn 314 00:14:29,840 --> 00:14:31,340 lein o'r ffeil. 315 00:14:31,340 --> 00:14:36,040 Felly dyna cyfuniad o fopen, a fread, ac er bod dolen, a mmap, 316 00:14:36,040 --> 00:14:37,080 a hynny i gyd. 317 00:14:37,080 --> 00:14:40,150 Yn olaf, fel gair yn unig yn golygu bod yn y amrywiol Rydw i'n mynd i gael mynediad at 318 00:14:40,150 --> 00:14:41,890 ar bob fersiwn yn y cylch hwn. 319 00:14:41,890 --> 00:14:46,910 >> Felly, yn fyr, mae hyn yn un leinin yma'n golygu agor y ffeil y mae ei enw yn 320 00:14:46,910 --> 00:14:50,750 geiriadur, y newidyn, ailadrodd dros fesul llinell, a phob tro y byddwch yn cael 321 00:14:50,750 --> 00:14:54,290 llinell, storio mewn gair amrywiol o'r enw, ac yna gwneud rhywbeth gyda gair. 322 00:14:54,290 --> 00:14:55,280 Beth ydw i am ei wneud? 323 00:14:55,280 --> 00:14:58,110 Yr wyf am roi gair i mewn i fy tabl hash. 324 00:14:58,110 --> 00:15:00,860 >> Wel, gallaf roi rhywbeth yn fy hash tabl yn union fel yn C 325 00:15:00,860 --> 00:15:02,140 ddefnyddio cromfachau sgwâr. 326 00:15:02,140 --> 00:15:03,660 Dyma'r enw ar gyfer fy tabl hash. 327 00:15:03,660 --> 00:15:07,180 Rydw i'n mynd i mynegai i mewn i'r hash tabl yn y lleoliad hwn. 328 00:15:07,180 --> 00:15:08,920 Felly nid braced sero, nid braced un. 329 00:15:08,920 --> 00:15:11,990 Quote Braced rhywbeth unquote, beth bynnag y gair hwnnw. 330 00:15:11,990 --> 00:15:15,200 Ac yn union fel y gallai fod gennych yn eich trie gwaith bwrdd hash, 'ch jyst storio 331 00:15:15,200 --> 00:15:17,650 effeithiol yn Boole, ymhlyg neu benodol. 332 00:15:17,650 --> 00:15:18,260 Wneud. 333 00:15:18,260 --> 00:15:20,000 Dw i'n storio gwir werth. 334 00:15:20,000 --> 00:15:23,150 >> Erbyn hyn mae un neu ddau o bethau Im 'yn torri corneli ar yma. 335 00:15:23,150 --> 00:15:27,720 Yn dechnegol, mae mynd i fod yn llinell newydd yn blino, / n, ar ddiwedd y 336 00:15:27,720 --> 00:15:28,820 pob un o'r geiriau hyn. 337 00:15:28,820 --> 00:15:31,770 Felly, mae'n debyg y dylwn alw swyddogaeth PHP a elwir yn chop (), a fydd yn 338 00:15:31,770 --> 00:15:33,460 yn llythrennol torri bod i ffwrdd. 339 00:15:33,460 --> 00:15:35,020 Ac yr wyf angen mewn gwirionedd wneud un peth arall. 340 00:15:35,020 --> 00:15:38,380 Mae'n debyg y dylwn cynyddiad maint ar bob ailadrodd, felly rwy'n cadw golwg 341 00:15:38,380 --> 00:15:39,560 yn fyd-eang o'r hyn ydyw. 342 00:15:39,560 --> 00:15:43,180 Ac yn ddidwyll, ac mae hyn yn un o'r agweddau stupider o PHP, os ydych yn 343 00:15:43,180 --> 00:15:46,950 gan ddefnyddio newidyn byd-eang, mae angen i chi i ddweud yn benodol eich bod. 344 00:15:46,950 --> 00:15:51,670 Felly, yr wyf i'n mynd i deipio mewn gwirionedd yn fyd-eang $ Maint, $ bwrdd byd-eang, ac yn awr 345 00:15:51,670 --> 00:15:52,690 fy swyddogaeth yn gyflawn. 346 00:15:52,690 --> 00:15:57,475 >> Felly, ddim cweit mor syml ag o'r blaen, ond yn ôl pob tebyg yn cymryd llai o amser nag y C 347 00:15:57,475 --> 00:15:58,220 fersiwn hwn, efallai? 348 00:15:58,220 --> 00:15:58,730 OK. 349 00:15:58,730 --> 00:16:00,390 >> Felly nawr gadewch i ni wneud y siec () swyddogaeth. 350 00:16:00,390 --> 00:16:04,300 Gadewch i ni weld os yw hyn o leiaf yn cymryd y o oriau ar ben ei bod wedi cymryd ni yn C. Felly 351 00:16:04,300 --> 00:16:06,500 gadewch i mi fynd yn ei flaen, ac yn datgan gwirio fel swyddogaeth. 352 00:16:06,500 --> 00:16:09,070 Cymryd mewn gair dadl, sydd yn mynd i ddod o sillafu. 353 00:16:09,070 --> 00:16:13,410 Ac yr wyf i'n jyst yn mynd i wirio a yw'r yn dilyn ISSET amrywiol, bwrdd 354 00:16:13,410 --> 00:16:18,400 braced strtolower geiriau - 355 00:16:18,400 --> 00:16:20,590 gadewch i ni gydbwyso fy holl cromfachau - 356 00:16:20,590 --> 00:16:24,275 wedyn yn dychwelyd yn wir. 357 00:16:24,275 --> 00:16:27,020 358 00:16:27,020 --> 00:16:28,460 Arall - 359 00:16:28,460 --> 00:16:30,330 a oedd mewn gwirionedd yn anodd rhan o'r rhaglen hon. 360 00:16:30,330 --> 00:16:31,940 Else, yn dychwelyd ffug. 361 00:16:31,940 --> 00:16:32,630 Wneud. 362 00:16:32,630 --> 00:16:33,460 Dyna siec (). 363 00:16:33,460 --> 00:16:34,520 >> Nawr, pam mae hyn yn gweithio? 364 00:16:34,520 --> 00:16:37,040 Wel, un yr wyf yn pasio mewn gair, sydd yn llinyn. 365 00:16:37,040 --> 00:16:41,400 Dau, rwy'n gwirio tu mewn i'r hash bwrdd, sydd wedi galw $ bwrdd. 366 00:16:41,400 --> 00:16:45,470 Rydw i'n ei orfodi i lythrennau bach drwy ffonio swyddogaeth eithaf tebyg tolower () yn 367 00:16:45,470 --> 00:16:48,580 C, ond mae hyn yn y gair cyfan, Nid yw cymeriad sengl. 368 00:16:48,580 --> 00:16:52,680 Ac os wedi ei osod, mewn geiriau eraill, mae mae gwerth osod, mewn geiriau eraill, 369 00:16:52,680 --> 00:16:54,880 os yw'n wir, yna ie, mae hwn yn air. 370 00:16:54,880 --> 00:16:56,530 Gan fy mod yn ei roi yno gyda llwyth (). 371 00:16:56,530 --> 00:16:59,100 Ac os nad yw, i ddim yn mynd i ddychwelyd ffug. 372 00:16:59,100 --> 00:17:00,090 >> Nawr bod y lleill yn hawdd. 373 00:17:00,090 --> 00:17:03,570 Maint y swyddogaeth (), sut ydw i'n gwneud hyn? 374 00:17:03,570 --> 00:17:05,230 Yr wyf yn y bôn yn dychwelyd $ faint. 375 00:17:05,230 --> 00:17:07,770 Ond yr wyf angen dechnegol gwneud hyn beth blino. 376 00:17:07,770 --> 00:17:10,640 Ac mewn gwirionedd i fyny clywed, roeddwn yn torri un gornel yn ormod. 377 00:17:10,640 --> 00:17:12,920 Fi 'n sylweddol angen i ni wneud $ bwrdd byd-eang. 378 00:17:12,920 --> 00:17:16,260 >> Ond y cael ei ddweud, dadlwytho). 379 00:17:16,260 --> 00:17:17,380 Dadlwytho () yn anhygoel. 380 00:17:17,380 --> 00:17:20,500 Dadlwytho swyddogaeth (). 381 00:17:20,500 --> 00:17:23,990 Sut ydw i'n eisiau i weithredu dadlwytho ()? 382 00:17:23,990 --> 00:17:25,079 Wneud. 383 00:17:25,079 --> 00:17:25,450 OK. 384 00:17:25,450 --> 00:17:28,900 >> Felly dadlwytho (), rheoli cof yn cymryd gofal llwyr am i chi yn 385 00:17:28,900 --> 00:17:31,800 rhywbeth fel PHP a llawer ieithoedd lefel uwch. 386 00:17:31,800 --> 00:17:32,600 Felly, mae hyn yn anhygoel. 387 00:17:32,600 --> 00:17:36,080 Fel pam y uffern wnaethom ni wario y gorffennol wyth wythnos yn ogystal ar ysgrifennu C 388 00:17:36,080 --> 00:17:41,030 yn ôl pob golwg araf iawn, mewn gwirionedd amser cymryd llawer o broblemau gyda degau o oriau 389 00:17:41,030 --> 00:17:42,530 o yn gweithio o dan ein gwregysau? 390 00:17:42,530 --> 00:17:46,110 >> Wel, am un peth, gallai hyn weithio iawn ar gyfer y rhaglenni bach. 391 00:17:46,110 --> 00:17:47,840 Yn sicr sped i fyny fy amser datblygu. 392 00:17:47,840 --> 00:17:49,790 Ond gadewch i ni weld beth fydd yn digwydd yn y byd go iawn. 393 00:17:49,790 --> 00:17:52,370 >> Gadewch i mi fynd i mewn i cyfeiriadur hwn mewn terfynell ffenestr. 394 00:17:52,370 --> 00:17:53,370 Mae sillafu. 395 00:17:53,370 --> 00:17:56,570 Ac yn sylwi wrth fynd heibio, ac efallai eich bod wedi dod ar draws hyn yn broblem a osodwyd 396 00:17:56,570 --> 00:17:58,190 chwech neu broblem a osodwyd saith. 397 00:17:58,190 --> 00:18:01,610 Nid oes yn llym yn rhaid i chi ben ffeiliau PHP gyda. php. 398 00:18:01,610 --> 00:18:05,250 Os byddwch yn rhoi llinell fel 'na un gyntaf yn y brig, mae hynny'n llinell arbennig 399 00:18:05,250 --> 00:18:10,980 o gystrawen sydd yn eu hanfod yn golygu dod o hyd i y rhaglen o'r enw PHP a'i ddefnyddio i 400 00:18:10,980 --> 00:18:12,270 dehongli y ffeil. 401 00:18:12,270 --> 00:18:15,410 Felly, does neb yn gwybod yn iawn bod Rydw i'n cynnal rhaglen PHP. 402 00:18:15,410 --> 00:18:19,860 Gallaf redeg 'i jyst fel pe bai yn rhywbeth a luniwyd ym C. 403 00:18:19,860 --> 00:18:20,650 >> Ond dyma y peth. 404 00:18:20,650 --> 00:18:21,600 A dweud y gwir, gadewch i ni wneud hyn eto. 405 00:18:21,600 --> 00:18:23,530 Dropbox/pset6 /. 406 00:18:23,530 --> 00:18:25,390 Mae sillafu. 407 00:18:25,390 --> 00:18:26,720 OK, 0.44 eiliad. 408 00:18:26,720 --> 00:18:28,080 Mae'n got gyflymach y tro hwn. 409 00:18:28,080 --> 00:18:29,745 >> Nawr, gadewch i ni fynd i mewn i'r fersiwn PHP. 410 00:18:29,745 --> 00:18:43,070 411 00:18:43,070 --> 00:18:44,320 Cyffwrdd 'n glws. 412 00:18:44,320 --> 00:18:50,830 413 00:18:50,830 --> 00:18:53,285 Ond dim ond yn meddwl faint o amser Yr wyf yn arbed ar oriau swyddfa. 414 00:18:53,285 --> 00:18:56,990 415 00:18:56,990 --> 00:18:57,790 OK. 416 00:18:57,790 --> 00:19:01,020 >> Felly 3.59 eiliad, sydd mewn gwirionedd nid yw'n swnio'n gywir chwaith. 417 00:19:01,020 --> 00:19:03,710 Ond mae hynny oherwydd stori hir yn fyr, pan fyddwch yn argraffu allan lawer iawn 418 00:19:03,710 --> 00:19:06,840 o bethau i'r sgrin, bod ei hun yn arafu pethau i lawr. 419 00:19:06,840 --> 00:19:11,260 Yr hyn y mae mewn gwirionedd yn cymryd y CPU yn y offer yn 3.59 eiliad, yn 420 00:19:11,260 --> 00:19:15,260 wahanol i C, a gymerodd 0.44 eiliad yn fwyaf diweddar. 421 00:19:15,260 --> 00:19:17,620 Dyna wir gorchymyn o maint gwahanol. 422 00:19:17,620 --> 00:19:20,280 >> Felly, lle y pris yn dod o? 423 00:19:20,280 --> 00:19:21,790 Pam ei fod mor llawer arafach? 424 00:19:21,790 --> 00:19:24,220 Pam mae PHP perfformio mor wael? 425 00:19:24,220 --> 00:19:25,242 Danielle? 426 00:19:25,242 --> 00:19:26,550 >> GYNULLEIDFA: Nid ydych oedd mewn gwirionedd ddefnyddio tabl hash. 427 00:19:26,550 --> 00:19:27,710 >> DAVID Malan: Doeddwn i ddim wir yn ddefnyddio tabl hash. 428 00:19:27,710 --> 00:19:28,760 Felly, yr wyf yn fath o ddim. 429 00:19:28,760 --> 00:19:29,870 Felly mae'n arae cysylltiadol. 430 00:19:29,870 --> 00:19:33,650 Mae'r rhan fwyaf tebygol os bydd y bobl yn PHP yn wir yn smart, maent yn eu defnyddio o dan y 431 00:19:33,650 --> 00:19:39,520 cwfl tabl hash go iawn ar waith yn rhywbeth fel C neu C + +. 432 00:19:39,520 --> 00:19:41,290 Ond. 433 00:19:41,290 --> 00:19:42,760 Yeah. 434 00:19:42,760 --> 00:19:44,010 >> GYNULLEIDFA: [Anghlywadwy]. 435 00:19:44,010 --> 00:19:46,690 436 00:19:46,690 --> 00:19:47,080 >> DAVID Malan: Yeah. 437 00:19:47,080 --> 00:19:50,780 Felly mae gan bob un o'r swyddogaethau ysgrifennais yn awr - mewn gwirionedd, gallwch ddweud bod unwaith eto yn 438 00:19:50,780 --> 00:19:51,480 ychydig yn uwch? 439 00:19:51,480 --> 00:19:54,509 >> GYNULLEIDFA: Mae pob un o'r swyddogaethau a chi wedi cynnwys Mae llawer mwy llawn 440 00:19:54,509 --> 00:19:56,610 gapasiti na - 441 00:19:56,610 --> 00:19:57,550 >> DAVID Malan: Felly dyna wir iawn. 442 00:19:57,550 --> 00:20:01,490 Mae llawer mwy o uwchben ein bod ni'n ddim wir yn gweld trwy ganolbwyntio yn unig ar 443 00:20:01,490 --> 00:20:03,730 dictionary.php, yr wyf newydd ei ysgrifennu. 444 00:20:03,730 --> 00:20:08,020 Ar y llaw arall, mae 'na gyfieithydd cyfan mynd yn y cefndir. 445 00:20:08,020 --> 00:20:12,040 Yn wir, pan yr wyf yn rhedeg y rhaglen hon, mae'n Nid oedd yn rhedeg sero a rhai a luniwyd 446 00:20:12,040 --> 00:20:14,290 gynllunio ar gyfer fy CPU Intel. 447 00:20:14,290 --> 00:20:19,270 Yn hytrach, yr oedd yn rhedeg fesul llinell Cod PHP sy'n edrych yn union 448 00:20:19,270 --> 00:20:20,350 fel rydym yn ei deipio. 449 00:20:20,350 --> 00:20:22,475 Ac felly pryd bynnag y byddwch yn defnyddio iaith dehongli, rydych 450 00:20:22,475 --> 00:20:23,850 mewn gwirionedd yn talu pris hwn. 451 00:20:23,850 --> 00:20:27,010 Mae'n mynd i gymryd peth amser i ddarllen eich ffeil top i'r gwaelod, o'r chwith i'r 452 00:20:27,010 --> 00:20:30,740 dde, ac yna gweithredu pob lein eto ac eto. 453 00:20:30,740 --> 00:20:34,250 >> Nawr mewn gwirionedd, yn enwedig ar y we, gallwch chi mewn gwirionedd yn hwyluso'r broses hon 454 00:20:34,250 --> 00:20:38,660 drwy caching canlyniadau'r Cod PHP yn cael ei dehongli. 455 00:20:38,660 --> 00:20:41,640 Ac mae hynny'n gwneud synnwyr ar y we, gan fod os nad oes gennych un defnyddiwr yn ei gael 456 00:20:41,640 --> 00:20:46,300 mi yma, ond 1,000 neu 10,000 o ddefnyddwyr, yna efallai y tro cyntaf y ffeil yn 457 00:20:46,300 --> 00:20:49,050 mynediad ei fod yn araf, ond ar ôl hynny mae'n llawer cyflymach. 458 00:20:49,050 --> 00:20:51,000 >> Ond mae hyn hefyd, unwaith eto, yn oddi ar masnach. 459 00:20:51,000 --> 00:20:53,870 Ac ar gyfer rhywbeth fel data ymchwil gosod, neu rywbeth mawr fel hyd yn oed 460 00:20:53,870 --> 00:20:58,330 hyn, bydd eich defnyddwyr yn y pen draw yn dechrau teimlo bod arafu. 461 00:20:58,330 --> 00:21:02,670 >> Felly, yn fyr, dehongli ieithoedd yn fawr iawn yn ffasiynol, yn boblogaidd iawn, ac 462 00:21:02,670 --> 00:21:06,710 dweud y gwir, mae'n debyg yr ieithoedd yr ydych Dylai cyrraedd ar gyfer wrth ddatrys problemau 463 00:21:06,710 --> 00:21:08,200 dilyn CS50. 464 00:21:08,200 --> 00:21:12,720 Ond yn sylweddoli faint yr ydych yn wirioneddol cymryd yn ganiataol o dan y cwfl 465 00:21:12,720 --> 00:21:15,910 'n sylweddol y rhai yn y gorffennol nifer o wythnosau yn y hash tablau, a choed, a cheisiau, 466 00:21:15,910 --> 00:21:20,770 sy'n cael eu defnyddio yn y pen draw i mewn gwirionedd gweithredu pethau fel braced agored, 467 00:21:20,770 --> 00:21:24,200 braced sgwâr, y gallwn yn awr ddiolchgar cymryd yn ganiataol. 468 00:21:24,200 --> 00:21:26,360 >> Felly, gadewch i ni edrych yn awr yn y cyd-destun ar y we. 469 00:21:26,360 --> 00:21:29,890 Ac yr wyf yn crybwyll y tro diwethaf y mae criw o superglobals yn PHP fod 470 00:21:29,890 --> 00:21:32,490 Nid yw yn wir yn berthnasol ar y llinell orchymyn. 471 00:21:32,490 --> 00:21:36,210 Eu bod yn fwy perthnasol yn y cyd-destun o ddefnyddio PHP mewn cyd-destun we. 472 00:21:36,210 --> 00:21:41,220 Felly, yn rhedeg PHP ar weinydd y we er mwyn i gynhyrchu pethau fel HTML. 473 00:21:41,220 --> 00:21:44,540 >> Ac rydym yn bwrw golwg ar $ _GET a $ _POST, a dyna lle yn awtomatig defnyddwyr 474 00:21:44,540 --> 00:21:49,100 mewnbwn yn dod i ben i fyny yn syml os byddwch yn cyflwyno ffurfio at ffeil yn dod i ben mewn. php ar y we 475 00:21:49,100 --> 00:21:50,460 gweinydd fel yr offer. 476 00:21:50,460 --> 00:21:53,310 Ond gadewch i ni edrych yn fras ar $ _COOKIE A ​​$ _SESSION. 477 00:21:53,310 --> 00:21:56,670 >> Yn nhermau lleygwr, beth yw cwci fel eich bod yn deall yn y cyd-destun 478 00:21:56,670 --> 00:21:58,220 ddefnyddio'r we? 479 00:21:58,220 --> 00:21:59,450 >> GYNULLEIDFA: Ffeil ar y cyfrifiadur. 480 00:21:59,450 --> 00:21:59,920 >> DAVID Malan: Yeah. 481 00:21:59,920 --> 00:22:03,500 Mae'n ffeil ar gyfrifiadur y defnyddiwr blannwyd gan ba bynnag gwefan 482 00:22:03,500 --> 00:22:04,410 ydych yn digwydd i ymweld. 483 00:22:04,410 --> 00:22:07,334 Felly, pan fyddwch yn mynd i Facebook, pan fyddwch yn mynd i bankofamerica.com, pan fyddwch yn mynd 484 00:22:07,334 --> 00:22:10,330 i google.com, pan fyddwch yn mynd i bron unrhyw gwefan yn y byd y dyddiau hyn, 485 00:22:10,330 --> 00:22:14,850 gan gynnwys cs50.net, mae cwci yn cael ei phlannu ar eich cyfrifiadur, sy'n 486 00:22:14,850 --> 00:22:19,800 naill ai gwerth storio yn RAM yn eich cyfrifiadur er cof eich porwr, neu 487 00:22:19,800 --> 00:22:22,800 weithiau yn wir ffeil storio ar eich disg galed. 488 00:22:22,800 --> 00:22:26,960 >> A beth sy'n nodweddiadol ei storio yn y ffeil Nid yw eich enw defnyddiwr, nad yw eich 489 00:22:26,960 --> 00:22:31,060 cyfrinair, fel arfer nid rhywbeth sensitif oni bai nad yw'r wefan mor 490 00:22:31,060 --> 00:22:35,040 dda gyda'u diogelwch, ond yn hytrach mae'n dynodwr unigryw mawr ymhlith 491 00:22:35,040 --> 00:22:35,680 pethau eraill. 492 00:22:35,680 --> 00:22:38,920 Mae'n LandLine rhif ar hap mawr plannu ar eich gyfrifiadur ond gallwch feddwl amdano fel 493 00:22:38,920 --> 00:22:42,740 fath o stamp llaw rhithwir fel o clwb neu ryw parc adloniant sy'n 494 00:22:42,740 --> 00:22:47,160 yn caniatáu i'r staff, y perchnogion y gwasanaeth, i gofio pwy ydych chi. 495 00:22:47,160 --> 00:22:51,030 Felly, os bydd nifer mawr ar hap yn debyg 12345678, er bod hynny'n amlwg yn 496 00:22:51,030 --> 00:22:54,180 heb fod yn rhy ar hap, meddyliwch am fod y stamp llaw pan fyddwch yn ymweld 497 00:22:54,180 --> 00:22:57,930 facebook.com am y tro cyntaf, maent yn stamp y rhif ar eich llaw. 498 00:22:57,930 --> 00:23:01,510 Ac yna oherwydd eich bod yn siarad HTTP, rydych yn bod yn porwr, ac oherwydd Facebook 499 00:23:01,510 --> 00:23:06,440 yn amlwg yn siarad yr un fath ag ar y we gweinyddwr, mae'r HTTP protocol yn dweud bod 500 00:23:06,440 --> 00:23:09,930 unrhyw adeg rydych wedyn yn ymweld â facebook.com, boed yn ail 501 00:23:09,930 --> 00:23:13,560 yn ddiweddarach, awr yn ddiweddarach, hyd yn oed y diwrnod nesaf, cyn belled â nad ydych wedi yn benodol 502 00:23:13,560 --> 00:23:17,050 logio allan, sydd yn effeithiol yn debyg i olchi eich dwylo. 503 00:23:17,050 --> 00:23:20,280 HTTP yn dweud y dylech gyflwyno eich stamp llaw bob tro y byddwch yn 504 00:23:20,280 --> 00:23:22,020 dychwelyd at y wefan. 505 00:23:22,020 --> 00:23:24,390 >> Beth Facebook felly y yw eu edrych ar y stamp llaw a 506 00:23:24,390 --> 00:23:26,850 maent yn ei ddweud, oh, 123456789. 507 00:23:26,850 --> 00:23:30,260 Nid wyf yn gwybod ar yr olwg gyntaf bod hyn yn yw David Malan yng Nghaergrawnt, 508 00:23:30,260 --> 00:23:34,690 Massachusetts, ond gallant wirio eu cronfa ddata a dweud, oh, y person 509 00:23:34,690 --> 00:23:39,930 ar ei gyfrifiadur rydym yn plannu 123456789 yw David Malan o Gaergrawnt, 510 00:23:39,930 --> 00:23:40,440 Massachusetts. 511 00:23:40,440 --> 00:23:46,000 Gadewch i ni ddangos bod defnyddiwr yna ei broffil dudalen neu ei Newyddion Feed. 512 00:23:46,000 --> 00:23:49,660 >> Ond mae problem yma os yw hyn yn yw sut y we yn wir yn gweithio. 513 00:23:49,660 --> 00:23:51,390 Gadewch i ni edrych ar enghraifft gyflym. 514 00:23:51,390 --> 00:23:55,190 Gadewch i ni mewn gwirionedd yn mynd i ddweud facebook.com. 515 00:23:55,190 --> 00:23:58,130 Ond cyn i ni allai fynd yno, gadewch i mi fynd yn ei flaen ac yn agor i fyny Chrome yn 516 00:23:58,130 --> 00:23:59,790 Arolygydd i lawr yma. 517 00:23:59,790 --> 00:24:01,140 Gadewch i mi edrych ar y tab rhwydwaith. 518 00:24:01,140 --> 00:24:06,020 Ac yn awr gadewch i ni fynd yn ei flaen a theipio yn https://facebook.com. 519 00:24:06,020 --> 00:24:09,410 Ac yr wyf i'n gwneud hynny fel nad ydym yn gweld holl ail-gyfeiriadau a gwastraff y rhai 520 00:24:09,410 --> 00:24:10,660 amser yn edrych trwy y rheiny. 521 00:24:10,660 --> 00:24:12,690 Gadewch i mi daro chofnoda. 522 00:24:12,690 --> 00:24:13,130 >> Mae pob hawl. 523 00:24:13,130 --> 00:24:14,580 Rydym yn gweld criw cyfan o geisiadau. 524 00:24:14,580 --> 00:24:15,640 Fe ddaw Facebook. 525 00:24:15,640 --> 00:24:16,930 Mae criw cyfan o ffeiliau. 526 00:24:16,930 --> 00:24:19,290 Ac yma, fesul fy sôn am latency tro diwethaf, dyna 527 00:24:19,290 --> 00:24:21,240 llawer o geisiadau HTTP. 528 00:24:21,240 --> 00:24:23,700 Ond mae'r un cyntaf yn ôl pob tebyg y mwyaf diddorol. 529 00:24:23,700 --> 00:24:26,420 >> Felly, gadewch i ni sgroliwch i lawr yma, ac 'N annhymerus' chwyddo i mewn mewn eiliad. 530 00:24:26,420 --> 00:24:29,090 Mae hyn yn mynd i fod yn fath o llanast, ond gadewch i ni weld. 531 00:24:29,090 --> 00:24:31,660 Facebook yn anfon ni criw cyfan o bethau. 532 00:24:31,660 --> 00:24:33,490 >> Ond Whoa, yn ddiddorol. 533 00:24:33,490 --> 00:24:37,880 Maent yn plannu nid un, ond mae pedwar stampiau llaw ar fy llaw yma. 534 00:24:37,880 --> 00:24:40,400 Set-cwci, Set-cwci, gosod-cookie, gosod-cwci. 535 00:24:40,400 --> 00:24:44,030 Ac mae ychydig o nodweddion yma. 536 00:24:44,030 --> 00:24:46,170 Mae pob un ohonynt sôn am rai fath o ddod i ben. 537 00:24:46,170 --> 00:24:50,090 Ac mae'n edrych fel Facebook yn gobeithio i gofio i mi tan 2015. 538 00:24:50,090 --> 00:24:53,670 Felly dyna yn ôl pob tebyg erbyn pa bryd y Mae'n rhaid i mi allgofnodi neu eu bod annhymerus 'yn unig 539 00:24:53,670 --> 00:24:55,710 gymryd yn ganiataol fy mod Nid yw dod yn ôl. 540 00:24:55,710 --> 00:24:57,840 Felly dyna mewn gwirionedd gweddus faint o amser. 541 00:24:57,840 --> 00:24:59,170 >> Ac mae rhai eraill yn bethau sy'n mynd ymlaen yma. 542 00:24:59,170 --> 00:25:03,036 Mae'n ymddangos bod y cwci yn rymus ddileu gan ddweud ei fod yn dod i ben yn 1970 543 00:25:03,036 --> 00:25:04,460 cyn cwcis yn bodoli. 544 00:25:04,460 --> 00:25:06,510 Felly mae'r porwr yn unig yn mynd i gymryd yn ganiataol OK, dyna fel 545 00:25:06,510 --> 00:25:07,910 golchi'r dwylo stamp. 546 00:25:07,910 --> 00:25:11,240 >> Ond yn awr pan fydd fy porwr yn gwneud cais dilynol - 547 00:25:11,240 --> 00:25:14,340 gadewch i mi fynd yn ei flaen ac yn gwneud hyn eto ac ail-lwytho. 548 00:25:14,340 --> 00:25:18,170 Nawr gadewch i mi sgrolio yn ôl i'r top cais ac yn mynd i lawr 549 00:25:18,170 --> 00:25:20,760 yma, yn gofyn am penawdau. 550 00:25:20,760 --> 00:25:21,390 Sylwi ar hyn. 551 00:25:21,390 --> 00:25:25,280 Felly, yn awr yr wyf i'n dan nad penawdau ymateb, ond sylwi mae'n dweud cais penawdau. 552 00:25:25,280 --> 00:25:29,220 Ac yn sylwi bod fy porwr fel rhan o ei gais ar ôl taro ail-lwytho wedi 553 00:25:29,220 --> 00:25:32,780 anfon y canlynol o leiaf gwybodaeth. 554 00:25:32,780 --> 00:25:34,670 Heb ei osod-cwci, ond cwci. 555 00:25:34,670 --> 00:25:38,750 Felly mae hwn yn y llinell, y pennawd HTTP felly i siarad, lle mae fy porwr yn fath 556 00:25:38,750 --> 00:25:43,340 o heb fy wybod ei gyflwyno fy llaw ar gyfer yr arolygiad Facebook. 557 00:25:43,340 --> 00:25:46,020 >> Felly gall cwcis hyn fod yn a ddefnyddir wedyn ar gyfer yr hyn? 558 00:25:46,020 --> 00:25:49,420 I gofio pwy ydych chi, neu gofio sut sawl gwaith ydych wedi bod yno, neu 559 00:25:49,420 --> 00:25:50,280 unrhyw beth mewn gwirionedd. 560 00:25:50,280 --> 00:25:52,742 >> Felly dyma counter.php. 561 00:25:52,742 --> 00:25:53,780 A gadewch i mi chwyddo i mewn ar y ffont. 562 00:25:53,780 --> 00:25:58,380 A phob tro y byddaf yn ail-lwytho'r dudalen hon, rhybudd mae'n cofio faint o weithiau 563 00:25:58,380 --> 00:25:59,250 Rydw i wedi bod yno. 564 00:25:59,250 --> 00:26:00,570 Wel, nid yw hynny'n bob un sy'n drawiadol. 565 00:26:00,570 --> 00:26:03,140 Gadewch i 'jyst yn cau tab hynny, ac yn awr gadewch i ni fynd yn ôl at 566 00:26:03,140 --> 00:26:07,860 http://localhost/counter.php. 567 00:26:07,860 --> 00:26:08,970 >> O, mae hynny'n ddiddorol. 568 00:26:08,970 --> 00:26:10,960 Mae'n dal i cofio, hyd yn oed er fy mod yn cau'r tab. 569 00:26:10,960 --> 00:26:14,010 Ac yn ddidwyll, os wyf yn cau'r porwr, os cânt eu gweithredu yn y ffordd iawn, yr wyf yn 570 00:26:14,010 --> 00:26:18,950 Gallai dal i gofio bod defnyddiwr hwn yn sy'n ef neu hi oedd y tro cyntaf, a 571 00:26:18,950 --> 00:26:22,840 dim ond unwaith y byddaf yn mynd i'r ddewislen Chrome, sy'n dros yma yma, ac ewch i 572 00:26:22,840 --> 00:26:25,990 Hanes, a chliciwch Clear Pori Data, gan y gall rhai ohonoch ei gael yn y 573 00:26:25,990 --> 00:26:33,050 yn y gorffennol, dim ond wedyn y bydd eich cwcis mewn gwirionedd yn cael eu dileu yn ystod y we 574 00:26:33,050 --> 00:26:33,970 datblygiad. 575 00:26:33,970 --> 00:26:35,340 >> Felly, os ydym yn mynd - 576 00:26:35,340 --> 00:26:37,080 gadewch i ni gau i fyny gedit yma. 577 00:26:37,080 --> 00:26:38,910 Ac os ydym yn mynd yn awr at y ffeil hon. 578 00:26:38,910 --> 00:26:44,210 Gadewch i mi fynd i mewn i'n vhosts / localhost / y cyhoedd, a gadewch i mi wneud 579 00:26:44,210 --> 00:26:46,340 counter.php. 580 00:26:46,340 --> 00:26:48,350 Hysbysiad bod hwn yn 'n bert rhaglen syml. 581 00:26:48,350 --> 00:26:50,250 Mae'n wefan eithaf syml. 582 00:26:50,250 --> 00:26:51,770 >> Felly ben y ffeil yn unig sylwadau. 583 00:26:51,770 --> 00:26:54,930 Ond dyma llinell newydd y gallwch wedi gweld eisoes mewn gosod-p saith, 584 00:26:54,930 --> 00:26:56,000 session_start (). 585 00:26:56,000 --> 00:27:00,380 Mae hon yn llinell o god PHP sy'n yn y bôn yn dweud wrth y gweinydd gwe, gwneud 586 00:27:00,380 --> 00:27:03,400 yn siwr i gael gwared dwylo a gwneud yn siwr i wirio stampiau llaw. 587 00:27:03,400 --> 00:27:06,810 Dyna'r cyfan llinell sy'n gwneud, ac mae'n gwneud yr holl broses honno i ni. 588 00:27:06,810 --> 00:27:09,510 Yna, yn sylwi fy mod i wedi jyst got dwy gangen yma. 589 00:27:09,510 --> 00:27:14,150 Os yw'r allwedd cownter tu mewn hon newidyn byd-eang arbennig a elwir yn 590 00:27:14,150 --> 00:27:18,010 $ _SESSION Ei osod - mewn geiriau eraill, os oes rhywfaint o werth yno - 591 00:27:18,010 --> 00:27:22,440 gadewch i ni ei gael ac yn ei storio mewn leol amrywiol o'r enw $ cownter. 592 00:27:22,440 --> 00:27:27,000 Else, gadewch i ni neilltuo $ cownter gwerth diofyn o 0. 593 00:27:27,000 --> 00:27:30,320 >> Nawr dyma un agwedd ar PHP sy'n yn fendith ac yn felltith. 594 00:27:30,320 --> 00:27:32,080 PHP yn ychydig yn flêr. 595 00:27:32,080 --> 00:27:35,160 Felly, tra yn C, yr hyn y byddai'r cwmpas y cownter wedi bod yn 596 00:27:35,160 --> 00:27:36,725 naill ai yma neu yma? 597 00:27:36,725 --> 00:27:39,270 598 00:27:39,270 --> 00:27:41,690 >> Byddai wedi bod yn cyfyngu i braces cyrliog hynny. 599 00:27:41,690 --> 00:27:42,090 Dyfalu beth? 600 00:27:42,090 --> 00:27:46,920 Yn PHP, mae'n bodoli hyd yn oed y tu allan i'r rhai braces cyrliog, yma, ac yma, 601 00:27:46,920 --> 00:27:49,120 ac yma, ac yma, a hyd yn oed i lawr isod. 602 00:27:49,120 --> 00:27:52,400 Felly, yr wyf yn dweud hyn yn fendith yn yr ystyr nad oes rhaid i chi feddwl fel 603 00:27:52,400 --> 00:27:54,070 galed fel y gwnaethom wythnosau yn ôl. 604 00:27:54,070 --> 00:27:56,880 Ond mae hefyd yn dipyn o felltith yn y ni waeth ble rydych yn defnyddio amrywiol o ran 605 00:27:56,880 --> 00:28:00,020 PHP, o leiaf mewn rhaglen fel hyn, mae'n fyd-eang hygyrch i 606 00:28:00,020 --> 00:28:01,170 gwell neu er gwaeth. 607 00:28:01,170 --> 00:28:06,130 Felly, rhaid i chi gadw mewn cof nawr bod efallai na fydd eich newidynnau heb eu diffinio. 608 00:28:06,130 --> 00:28:07,640 Efallai eich bod wedi diffinio nhw i rywle arall. 609 00:28:07,640 --> 00:28:09,460 >> Ond beth ydw i'n mynd i'w wneud yn y pen draw? 610 00:28:09,460 --> 00:28:13,160 Rydw i'n mynd i storio y tu mewn y byd-eang amrywiol fel gwerth y 611 00:28:13,160 --> 00:28:17,060 cownter yr allwedd canlyniad gwneud cownter ac 1. 612 00:28:17,060 --> 00:28:18,910 Felly, mae hyn yn unig yw rhifyddeg sy'n gwneud y 613 00:28:18,910 --> 00:28:20,590 incrementation y cownter. 614 00:28:20,590 --> 00:28:24,850 Ac mae'r ffaith fy mod yn storio fod gwerth yn ôl i mewn yma yw ei olygu i 615 00:28:24,850 --> 00:28:29,970 hanfod diweddaru'r gronfa ddata i cofiwch fod 123456789 defnyddiwr wedi bod yn 616 00:28:29,970 --> 00:28:31,010 yma ddwy waith. 617 00:28:31,010 --> 00:28:33,780 A phan wyf yn ei wneud eto y tro nesaf y byddaf yn ail-lwytho y dudalen, mae'n mynd i wirio 618 00:28:33,780 --> 00:28:36,710 fy stamp llaw a dweud, oh, 123456789 defnyddiwr yn awr 619 00:28:36,710 --> 00:28:38,410 bod yma dair gwaith. 620 00:28:38,410 --> 00:28:43,390 >> Ac felly beth PHP a thebyg ieithoedd yn ei wneud i ni yw eu bod yn figuring 621 00:28:43,390 --> 00:28:47,720 sut a ble ac am ba hyd i storio gwerthoedd yn y arbennig 622 00:28:47,720 --> 00:28:48,830 superglobal. 623 00:28:48,830 --> 00:28:52,750 Ac mae hyn yn superglobal y tro nesaf y byddaf yn ewch i'r dudalen hon yn fath o magically 624 00:28:52,750 --> 00:28:57,440 cyn-boblog, yn llawn gwerthoedd sy'n oedd y tro diwethaf i chi ymweld â hi, 625 00:28:57,440 --> 00:29:02,310 a oedd hynny'n eiliad yn ôl, yr wythnos yn ôl, neu yn 2013, ac rydym yn siarad yn awr 626 00:29:02,310 --> 00:29:03,790 tua 2015. 627 00:29:03,790 --> 00:29:07,600 PHP a 'r gweinyddwr gwe cymryd gofal hynny i gyd i chi. 628 00:29:07,600 --> 00:29:08,850 >> GYNULLEIDFA: [Anghlywadwy]. 629 00:29:08,850 --> 00:29:11,900 630 00:29:11,900 --> 00:29:15,760 >> DAVID Malan: Newidynnau yn PHP yn yn y bôn bob amser yn fyd-eang oni bai eich 631 00:29:15,760 --> 00:29:18,400 eu datgan tu mewn i swyddogaeth, ac yna maent yn lleol i 632 00:29:18,400 --> 00:29:19,420 y swyddogaeth yn unig. 633 00:29:19,420 --> 00:29:22,300 Ond oherwydd nid wyf wedi ysgrifennu unrhyw swyddogaethau, maent yn awr yn effeithiol 634 00:29:22,300 --> 00:29:25,090 byd-eang drwy gydol fy holl ffeiliau yma. 635 00:29:25,090 --> 00:29:26,040 >> GYNULLEIDFA: A oes ffordd i'w gwneud yn lleol? 636 00:29:26,040 --> 00:29:28,470 >> DAVID Malan: A oes unrhyw ffordd i'w gwneud yn lleol? 637 00:29:28,470 --> 00:29:30,680 Dim ond drwy eu lapio mewn i swyddogaethau. 638 00:29:30,680 --> 00:29:32,790 Pa yn y fersiwn ddiweddaraf o PHP, gallwch wneud hyn gyda 639 00:29:32,790 --> 00:29:34,130 swyddogaeth dienw. 640 00:29:34,130 --> 00:29:35,930 Ond yn fwy ar hynny yn y nghyd-destun JavaScript. 641 00:29:35,930 --> 00:29:37,260 Ond yr ateb byr yw na. 642 00:29:37,260 --> 00:29:40,888 Ateb hwy yn gadarnhaol. 643 00:29:40,888 --> 00:29:42,380 Nice. 644 00:29:42,380 --> 00:29:43,380 Cwestiwn cwis Da. 645 00:29:43,380 --> 00:29:43,930 Mae pob hawl. 646 00:29:43,930 --> 00:29:47,760 >> Felly, yn olaf, y dudalen ei hun yn mewn gwirionedd yn eithaf syml. 647 00:29:47,760 --> 00:29:51,470 Sylwch fod ar ôl i mi adael modd PHP, dwyn i gof bod yr holl bethau yma i lawr 648 00:29:51,470 --> 00:29:53,700 isod yn unig yn mynd i gael tafod allan crai i'r porwr. 649 00:29:53,700 --> 00:29:57,050 Sy'n iawn, oherwydd yr wyf yn awyddus i anfon y defnyddiwr rhai HTML, ond dwi ddim eisiau 650 00:29:57,050 --> 00:29:59,140 i ddiweddaru bod HTML ddeinamig. 651 00:29:59,140 --> 00:30:03,930 Ac un ffordd y gallaf wneud hyn yw i ddatrys o yn gyflym iawn ollwng yn ôl i PHP 652 00:30:03,930 --> 00:30:07,730 modd, defnyddiwch marc cwestiwn braced agored arwydd cyfartal, ac yna allbwn gwerth 653 00:30:07,730 --> 00:30:08,650 y cownter. 654 00:30:08,650 --> 00:30:12,360 >> Neu os mae hyn yn edrych ychydig yn cryptig, mae hyn yn arwydd cyfartal mewn gwirionedd dim ond rhai 655 00:30:12,360 --> 00:30:16,190 siwgr cystrawennol ar gyfer hyn printf ($ cownter). 656 00:30:16,190 --> 00:30:19,160 Ond dweud y gwir, dyna dim ond ychydig yn hyll ac ychydig yn blino i deipio. 657 00:30:19,160 --> 00:30:23,660 Felly PHP iawn 'n glws yn cynnig nodwedd hon lle gallwch ddweud yn fwy 658 00:30:23,660 --> 00:30:25,450 gryno yn yr un modd. 659 00:30:25,450 --> 00:30:26,940 >> Felly beth sy'n mynd ymlaen o dan y cwfl? 660 00:30:26,940 --> 00:30:31,210 Gadewch i ni yn gyflym edrych ar y rhwydwaith tab yma am counter.php. 661 00:30:31,210 --> 00:30:35,090 A gadewch i mi fynd yn ei flaen ac yn gyntaf gadewch i ni yn glir eich cwcis. 662 00:30:35,090 --> 00:30:38,670 Data pori clir gadewch i ni ers y dechrau o amser. 663 00:30:38,670 --> 00:30:39,680 Nawr, gadewch i ni fynd yn ôl dros yma. 664 00:30:39,680 --> 00:30:41,340 Nawr, gadewch i ni ail-lwytho'r dudalen. 665 00:30:41,340 --> 00:30:42,170 A dwi'n ôl ar sero. 666 00:30:42,170 --> 00:30:44,810 Gan fod fy stamp llaw wedi cael ei olchi, Yr wyf yn awr yn cael cwci newydd. 667 00:30:44,810 --> 00:30:48,780 >> Yn wir, os wyf yn edrych ar y tab rhwydwaith a edrych ar y penawdau ymateb, sylwch 668 00:30:48,780 --> 00:30:51,960 bod y peiriant yn cael ei anfon i mi cwci ei enw braidd yn 669 00:30:51,960 --> 00:30:55,820 fympwyol, ond yn fath o rhesymol, PHPSESSID. 670 00:30:55,820 --> 00:30:58,440 Ac mae'n anfon fy hyn yn wir rhif ar hap mawr. 671 00:30:58,440 --> 00:30:59,440 Dyw hi ddim yn eithaf rhif. 672 00:30:59,440 --> 00:31:00,390 Dyw hi ddim yn eithaf hecsadegol. 673 00:31:00,390 --> 00:31:03,600 Mae'n rhyw fath o linyn alffaniwmerig, ond mae'n debyg ei fod yn hap. 674 00:31:03,600 --> 00:31:06,830 A dyna yw'r stamp llaw er mwyn siarad a Im 'yn cyfeirio at. 675 00:31:06,830 --> 00:31:11,960 >> Yn y cyfamser, os byddaf yn cliciwch ail-lwytho ac yna edrych ar yr ail linell ar gyfer fy ail 676 00:31:11,960 --> 00:31:17,600 cais, yn sylwi nawr bod fy nghais penawdau yn cynnwys PHPSESSID hafal i hyn, 677 00:31:17,600 --> 00:31:19,390 Nid yw gosod-cwci, ond dim ond cwci. 678 00:31:19,390 --> 00:31:22,950 Ac mae hynny'n gyflwyniad fy porwr o fy stamp llaw. 679 00:31:22,950 --> 00:31:28,820 >> Felly, yn awr fel teaser, a byddwn yn siarad mwy am hyn mewn wythnos neu ddwy, ond 680 00:31:28,820 --> 00:31:31,590 ym mha ffordd y mae hyn yn gwneud i chi , eich cyfrif Facebook agored i niwed 681 00:31:31,590 --> 00:31:34,137 agored i niwed, ac eraill o'r fath cyfrifon agored i niwed? 682 00:31:34,137 --> 00:31:35,510 >> GYNULLEIDFA: Os oes gan rywun eich cwci. 683 00:31:35,510 --> 00:31:36,750 >> DAVID Malan: Yeah, os bydd rhywun yn Mae gan eich cwci. 684 00:31:36,750 --> 00:31:39,920 Yr wyf yn golygu wirioneddol, yn debyg iawn i rai ohonoch efallai wedi rhoi cynnig ar fel clwb neu 685 00:31:39,920 --> 00:31:44,030 parc difyrion, os ydych yn ceisio rywbeth fel hyn i gopïo'r stamp, er 686 00:31:44,030 --> 00:31:47,560 yn ôl i law rhywun arall, ac yna ef neu hi yn ei gyflwyno fel 687 00:31:47,560 --> 00:31:53,250 eu pen eu hunain, os yw'n mewn gwirionedd yn edrych union yr un fath, 123456789, yna y we 688 00:31:53,250 --> 00:31:57,980 gweinydd yn ymddangos yn unig yn mynd i ymddiried bod defnyddiwr, rydych yn. 689 00:31:57,980 --> 00:32:01,450 >> Ac mae hyn yn wir yn hanfodol bygythiad unrhyw tro y byddwch yn defnyddio cwcis 690 00:32:01,450 --> 00:32:05,420 oherwydd pe bai rhywun yn unig Negeseuon ebost twyllodrus felly siarad â'ch cwci, mae'r ffigurau hyn y mae'n ei 691 00:32:05,420 --> 00:32:08,660 yw, naill ai drwy wirioneddol gopïo ei drwy edrych ar eich cyfrifiadur 692 00:32:08,660 --> 00:32:09,890 a bod fel, OK. 693 00:32:09,890 --> 00:32:14,520 Cwci David yw JJ3JIK ac yn y blaen, ac yna eu bod yn ddigon craff i wybod 694 00:32:14,520 --> 00:32:18,080 sut i ddatrys y llaw anfon yr cwci o borwr neu o 695 00:32:18,080 --> 00:32:22,350 rhaglen y maent yn ysgrifennu, gallent yn llwyr logio i mewn i wefan â chi. 696 00:32:22,350 --> 00:32:28,560 Nid yw'n sy'n anodd i esgus bod yn rhywun arall oni bai ein bod ailymweld p-set 697 00:32:28,560 --> 00:32:30,790 dau, a gyflwynodd beth? 698 00:32:30,790 --> 00:32:32,065 >> GYNULLEIDFA: cryptograffeg. 699 00:32:32,065 --> 00:32:33,860 >> DAVID Malan: Ychydig ychydig o cryptograffeg. 700 00:32:33,860 --> 00:32:36,550 Cryptograffeg syml, o leiaf yn y safon argraffiad, ond crypto 701 00:32:36,550 --> 00:32:36,870 serch hynny. 702 00:32:36,870 --> 00:32:37,410 lai. 703 00:32:37,410 --> 00:32:41,440 Felly, mae'n troi allan os byddwch yn amgryptio pob un penawdau hyn gan ddefnyddio rhywbeth yr ydych 704 00:32:41,440 --> 00:32:48,770 Efallai yn gwybod mwy cyfarwydd fel SSL, haen soced ddiogel, neu URLs https://, 705 00:32:48,770 --> 00:32:51,890 Yna yr holl bethau hyn, rydym wedi bod yn glancing yn mewn gwirionedd amgryptio, 706 00:32:51,890 --> 00:32:54,800 sy'n golygu ei fod fel chi Ni ellir darllen y stamp llaw. 707 00:32:54,800 --> 00:32:59,350 Dim ond gall facebook.com, neu google.com, neu yn yr achos hwn, gall yr offer 708 00:32:59,350 --> 00:33:00,550 darllen y stamp llaw. 709 00:33:00,550 --> 00:33:04,020 >> Yn drasig, fodd bynnag, ac unwaith eto, mae hyn yn yn rhy priodol gyda'r stwff NSA 710 00:33:04,020 --> 00:33:06,410 yn ddiweddar, hyd yn oed SSL yn breakable. 711 00:33:06,410 --> 00:33:09,850 Ac mae'n mewn gwirionedd nad caled hyd yn oed agenna amgryptio. 712 00:33:09,850 --> 00:33:12,040 Nid yn gymaint trwy gracio y amgryptio, ond drwy twyllo'r y 713 00:33:12,040 --> 00:33:15,720 porwr i decrypting y data cyn pryd. 714 00:33:15,720 --> 00:33:17,880 Ond unwaith eto, byddwn yn tynnu eich â hynny cyn bo hir. 715 00:33:17,880 --> 00:33:21,242 Am y tro, dim ond bod ofn. 716 00:33:21,242 --> 00:33:23,070 Mae'n drasig math o wir. 717 00:33:23,070 --> 00:33:23,760 >> Mae pob hawl. 718 00:33:23,760 --> 00:33:27,910 Felly, lle mae hyn yn awr yn gadael i ni? 719 00:33:27,910 --> 00:33:29,010 Wel, gadewch i ni wneud hyn. 720 00:33:29,010 --> 00:33:31,790 Gadewch i ni fynd yn ei flaen ac yn cymryd cyflym ymlid cyn inni gymryd egwyl. 721 00:33:31,790 --> 00:33:33,790 Ac yr wyf yn meddwl y byddwn yn oedi'n ychydig yn hirach heddiw, ond yr ydym yn mynd i blymio i mewn i 722 00:33:33,790 --> 00:33:37,850 , a oedd yn rhywbeth newydd sbon ac yn rhywiol yn hogi eich awydd am hyd yn oed mwy. 723 00:33:37,850 --> 00:33:38,950 Felly dyna'r ymlid. 724 00:33:38,950 --> 00:33:41,520 >> Felly SQL, rydym yn dechrau siarad am erioed felly yn fyr y tro diwethaf. 725 00:33:41,520 --> 00:33:44,670 Byddwch yn wir yn cael eich dwylo budr gyda rhywfaint ohono yn gosod-t saith. 726 00:33:44,670 --> 00:33:46,480 Ac o ran lleygwr, beth sydd SQL - 727 00:33:46,480 --> 00:33:47,110 S-Q-L - 728 00:33:47,110 --> 00:33:49,850 ei wneud i chi? 729 00:33:49,850 --> 00:33:50,310 Beth yw hwn? 730 00:33:50,310 --> 00:33:51,546 Yeah. 731 00:33:51,546 --> 00:33:53,240 >> GYNULLEIDFA: Gadewch i chi data mynediad. 732 00:33:53,240 --> 00:33:53,360 >> DAVID Malan: Yeah. 733 00:33:53,360 --> 00:33:55,120 Mae'n gadewch i chi data mynediad mewn cronfa ddata. 734 00:33:55,120 --> 00:33:56,710 Strwythuredig Ymholiad Iaith. 735 00:33:56,710 --> 00:33:59,890 Ac mae hyn yn ei hanfod yn iaith raglennu. 736 00:33:59,890 --> 00:34:03,400 Mae nodweddion ohoni sydd ni fyddwn yn hyd yn oed ddefnyddio yn y dosbarth. 737 00:34:03,400 --> 00:34:04,710 Ond gallwch yn effeithiol diffinio swyddogaethau. 738 00:34:04,710 --> 00:34:06,870 Maent yn galw eu storio gweithdrefnau SQL. 739 00:34:06,870 --> 00:34:09,860 Ond byddwn yn ei gadw eithaf syml a dim ond ddefnyddio ar gyfer rhai gweithrediadau sylfaenol 740 00:34:09,860 --> 00:34:14,320 fel dewis data, mewnosod data, diweddaru data, a dileu data. 741 00:34:14,320 --> 00:34:17,400 >> A allwch chi wir yn meddwl cronfa ddata, fel cronfa ddata SQL, fel dim ond 742 00:34:17,400 --> 00:34:18,800 yn Microsoft Excel. 743 00:34:18,800 --> 00:34:21,989 Oherwydd bod SQL yn cyfeirio at perthynol cronfa ddata, lle 744 00:34:21,989 --> 00:34:23,480 perthynas yn unig yn golygu tablau. 745 00:34:23,480 --> 00:34:24,739 Rhesi a cholofnau. 746 00:34:24,739 --> 00:34:27,929 Felly, unrhyw beth y gallwch ei roi mewn taenlen fel hyn neu Google Docs, 747 00:34:27,929 --> 00:34:32,460 gallech roi i mewn i gronfa ddata SQL drwy ddatgan tabl. 748 00:34:32,460 --> 00:34:34,800 >> Nawr, sut yr ydych mewn gwirionedd yn cael mynediad wybodaeth honno? 749 00:34:34,800 --> 00:34:38,239 Wel, gyda gorchmynion neu ymholiadau fel hyn. 750 00:34:38,239 --> 00:34:40,199 SELECT, RHOWCH, DIWEDDARIAD, ac DILEU. 751 00:34:40,199 --> 00:34:44,489 Ac ar gyfer y rhan fwyaf, y rhai yw'r pedwar yn unig gynhwysion bydd angen i chi 752 00:34:44,489 --> 00:34:47,370 gwneud rhywbeth eithaf rymus yn broblem a osodwyd saith. 753 00:34:47,370 --> 00:34:49,940 >> Nawr yn ôl yn y dydd, byddai chi mewn gwirionedd rhyngweithio gyda chronfa ddata mewn 754 00:34:49,940 --> 00:34:52,730 ffenestr terfynell du a gwyn yn yn brydlon amrantu fel hyn. 755 00:34:52,730 --> 00:34:56,370 A'r gronfa ddata rydym yn rhedeg ar y Gelwir teclyn yn MySQL, sy'n 756 00:34:56,370 --> 00:34:58,560 injan gronfa ddata ffynhonnell am ddim ac yn agored. 757 00:34:58,560 --> 00:35:02,240 Os ydych yn Google a darllen y Wicipedia erthygl hon, byddwch yn gwybod bod yr enw yn 758 00:35:02,240 --> 00:35:05,060 ychydig o newid ar gyfer rhai fersiynau o Linux. 759 00:35:05,060 --> 00:35:10,460 Cronfa ddata maria mewn gwirionedd fforc fel petai o MySQL. 760 00:35:10,460 --> 00:35:12,740 >> Byr stori hir, prynu Oracle MySQL. 761 00:35:12,740 --> 00:35:13,870 Oracle yn gwmni mawr. 762 00:35:13,870 --> 00:35:17,010 Mae pobl wedi bod yn poeni y byddai'n parhau i fod yn ffynhonnell mor agored mwyach, 763 00:35:17,010 --> 00:35:20,930 felly mae hyn yn unig yw copi o MySQL sy'n dal i fod yn rhad ac am ddim, ffynhonnell agored o hyd, a 764 00:35:20,930 --> 00:35:23,550 gosod yn Fedora Linux yn ddiofyn. 765 00:35:23,550 --> 00:35:26,130 >> Ond mae hyn yn fath o boen yn y gwddf i gael gyfarwydd â 766 00:35:26,130 --> 00:35:27,310 gronfa ddata y ffordd hon. 767 00:35:27,310 --> 00:35:30,560 Felly, rydym yn cynnwys yn y peiriant CS50 offeryn ffynhonnell agored am ddim o'r enw 768 00:35:30,560 --> 00:35:31,700 phpMyAdmin. 769 00:35:31,700 --> 00:35:33,940 Dim ond cyd-ddigwyddiad bod mae'n ysgrifennu yn PHP. 770 00:35:33,940 --> 00:35:36,450 Does dim sylfaenol angen ar gyfer PHP yma. 771 00:35:36,450 --> 00:35:40,090 Ond mae hyn yn unig yw offeryn ar y we sy'n rydym yn llwytho i lawr rhad ac am ddim, gosod yn 772 00:35:40,090 --> 00:35:43,850 yr offer, sy'n ein galluogi i gael rhyngwyneb defnyddiwr graffigol ag ef 773 00:35:43,850 --> 00:35:48,610 i edrych ar y set-p saith cronfa ddata gyda i greu cronfeydd data newydd, 774 00:35:48,610 --> 00:35:51,980 dweud ar gyfer eich prosiect terfynol hun os ydych wedi fel, yn y pen draw yn creu 775 00:35:51,980 --> 00:35:55,900 gwefannau deinamig fel CS50 Cyllid sy'n eich galluogi i holi data a 776 00:35:55,900 --> 00:35:58,140 ddiweddaru data ddynamig. 777 00:35:58,140 --> 00:36:01,420 >> Nad ydych yn mynd i gael i ddefnyddio dim ond ffeil testun syml neu CSV. 778 00:36:01,420 --> 00:36:05,950 Alli 'n weithredol defnyddio cronfa ddata smart rhaglen er mwyn i chi gyflawni mwy 779 00:36:05,950 --> 00:36:10,240 ymholiadau soffistigedig na dim ond darllen drwy bopeth llinol. 780 00:36:10,240 --> 00:36:14,150 >> Felly, er enghraifft, mae hyn yn hyn yr ydym yn rhoi chi allan o'r blwch ar gyfer set-t saith. 781 00:36:14,150 --> 00:36:18,280 Mae hwn yn tabl gyda mae'n debyg o leiaf dair colofn, ac un ohonynt yw 782 00:36:18,280 --> 00:36:21,450 enw defnyddiwr, ac un ohonynt yw hash, a'r llall o'r rhain yw adnabod. 783 00:36:21,450 --> 00:36:26,200 >> Ond y peth diddorol, a dim ond i tynnu sylw at un meddwl yma, enw defnyddiwr 784 00:36:26,200 --> 00:36:29,270 yn ôl pob tebyg eisoes yn unigryw, dde? 785 00:36:29,270 --> 00:36:31,190 Yr wyf yn golygu, y rhan fwyaf o unrhyw wefan, os oes gennych enw defnyddiwr, mae 786 00:36:31,190 --> 00:36:32,370 Ni all fod yn ddau Caesars. 787 00:36:32,370 --> 00:36:33,440 Ni ellir cael dau malans. 788 00:36:33,440 --> 00:36:34,950 Ni ellir cael dau jharvards. 789 00:36:34,950 --> 00:36:35,600 Mae ei unigryw. 790 00:36:35,600 --> 00:36:38,610 Fel arall, nid ydynt yn gwybod pa jharvard ydyw mewn gwirionedd. 791 00:36:38,610 --> 00:36:42,710 Felly, yr hyn a allai fod yn gymhelliant i hefyd cael drydedd golofn ar y chwith 792 00:36:42,710 --> 00:36:46,970 yno a elwir yn ID, sy'n edrych fel nifer sy'n un modd unigryw? 793 00:36:46,970 --> 00:36:51,300 Mae'n teimlo ychydig yn ddi-waith i mi ar yr olwg gyntaf. 794 00:36:51,300 --> 00:36:54,910 Pam y gallai fod yn gymhellol i gael nid yn unig enwau defnyddwyr unigryw, 795 00:36:54,910 --> 00:36:56,837 ond hefyd rhifau unigryw? 796 00:36:56,837 --> 00:36:59,460 >> GYNULLEIDFA: Gallent gael yr un cyfrinair. 797 00:36:59,460 --> 00:37:01,720 >> DAVID Malan: Efallai y bydd pobl yn cael yr un cyfrinair, yn sicr. 798 00:37:01,720 --> 00:37:03,900 Gallai hynny ddigwydd gwbl. 799 00:37:03,900 --> 00:37:08,270 Ond os oes ganddynt enw defnyddiwr unigryw hwn, yr wyf yn fyddai'n dadlau nad yw hynny'n wir 800 00:37:08,270 --> 00:37:11,630 mater, oherwydd os ydynt teipio eu enw defnyddiwr, dim ond angen i mi wirio eu 801 00:37:11,630 --> 00:37:15,060 cyfrinair, eu hash o hynny. 802 00:37:15,060 --> 00:37:15,970 Pam arall? 803 00:37:15,970 --> 00:37:17,950 >> GYNULLEIDFA: Hymprydiwr chwilio. 804 00:37:17,950 --> 00:37:18,680 >> DAVID Malan: chwilio gyflymach. 805 00:37:18,680 --> 00:37:19,548 Pam? 806 00:37:19,548 --> 00:37:21,460 >> GYNULLEIDFA: ID yn unig un. 807 00:37:21,460 --> 00:37:24,040 >> DAVID Malan: ID Dim ond un cymeriad, neu i fod yn fwy manwl gywir, mae'n LandLine rhif, 808 00:37:24,040 --> 00:37:26,910 felly mae'n debyg 32 darnau neu rywbeth fel 'na. 809 00:37:26,910 --> 00:37:30,270 Er bod y enw defnyddiwr, mae'n debyg Jason I fyny Hirschhorn yno yn fath o 810 00:37:30,270 --> 00:37:33,900 chwerthinllyd hir, ac mae'n mynd i mynd â fi lawer mwy o amser i linyn 811 00:37:33,900 --> 00:37:40,910 cymharu H-I-R-S-C-H-H-O-R-N, ac efallai a / 0 neu rywbeth fel 'na, er mwyn 812 00:37:40,910 --> 00:37:45,100 i chwilio am Jason, yn hytrach na dim ond gan ddweud rhowch rif defnyddiwr dau mi. 813 00:37:45,100 --> 00:37:46,510 Dyna 32 o ddarnau. 814 00:37:46,510 --> 00:37:48,550 Mae'n INT unigol sy'n rhaid i chi gymharu. 815 00:37:48,550 --> 00:37:52,150 Ac yn wir, dyna pam mae cronfeydd data yn union yn tueddu i neilltuo IDs unigryw i 816 00:37:52,150 --> 00:37:53,710 rhesi ynddynt. 817 00:37:53,710 --> 00:37:56,280 >> Nawr pa fathau data eraill sydd heblaw INT ac i bob golwg 818 00:37:56,280 --> 00:37:57,160 llinynnau fel hyn? 819 00:37:57,160 --> 00:37:59,700 Wel, i fod yn fwy priodol, Cronfeydd data SQL, fel 820 00:37:59,700 --> 00:38:02,060 MySQL, rhaid caeau CHAR. 821 00:38:02,060 --> 00:38:05,320 Ac torgoch ychydig yn gamarweiniol Nid yw CHAR sengl. 822 00:38:05,320 --> 00:38:10,290 Mae cae CHAR mewn cronfa ddata MySQL yn un neu fwy o gymeriadau, ond mae'n 823 00:38:10,290 --> 00:38:11,780 nifer penodol o gymeriadau. 824 00:38:11,780 --> 00:38:15,710 >> Felly, er enghraifft, os byddaf yn mynd drosodd i phpMyAdmin oherwydd efallai y byddwch yn barod, neu 825 00:38:15,710 --> 00:38:21,340 yn fuan bydd problem yn gosod saith, ac yr wyf yn mynd i fy gronfa ddata, a dim ond am hwyl, 826 00:38:21,340 --> 00:38:25,700 gadewch i greu tabl newydd o'r enw profi gyda dim ond dwy golofn. 827 00:38:25,700 --> 00:38:27,160 'N annhymerus' yna cliciwch Go. 828 00:38:27,160 --> 00:38:30,070 A bydd hyn yn dod yn eithaf cyfarwydd, yn enwedig wrth i chi tincer 829 00:38:30,070 --> 00:38:31,130 o gwmpas ar eich pen eich hun. 830 00:38:31,130 --> 00:38:34,140 Yma, efallai y byddwn yn teipio adnabod i greu tabl newydd o'r math INT. 831 00:38:34,140 --> 00:38:37,770 Ond yma efallai y byddwn deipio enw defnyddiwr i ail-greu y tabl hwnnw yn gynharach. 832 00:38:37,770 --> 00:38:40,700 Ac yn sylwi gen i criw cyfan o fathau i ddewis o'u plith. 833 00:38:40,700 --> 00:38:43,610 >> Ac mae hyn hefyd dyna pam phpMyAdmin yn fath o 'n glws. 834 00:38:43,610 --> 00:38:46,770 Mae'n fath o hunan-addysgu yn eich bod gall dim ond math o bwynt, a chliciwch, a 835 00:38:46,770 --> 00:38:50,730 edrych ar bwydlenni dropdown, a chasglu o bod yr hyn bwerau SQL yn rhoi i chi. 836 00:38:50,730 --> 00:38:54,090 >> Ac yn wir, os byddaf yn dewis CHAR, byddaf wedyn yn rhaid i nodi hyd, na sut 837 00:38:54,090 --> 00:38:55,940 llawer o werthoedd, faint o chars. 838 00:38:55,940 --> 00:39:00,090 Gwerthoedd mor gyffredin iawn yw pethau fel 255, ond mae hynny'n ychydig yn hir. 839 00:39:00,090 --> 00:39:02,250 Fel arfer yn wyth am enw defnyddiwr. 840 00:39:02,250 --> 00:39:03,590 Ond mae hynny'n ychydig bach y dyddiau hyn. 841 00:39:03,590 --> 00:39:05,430 Felly, mae hyn yn benderfyniad dylunio. 842 00:39:05,430 --> 00:39:08,630 A yw'n 8 nod max, 32, 255, 1,000? 843 00:39:08,630 --> 00:39:09,830 Mae'n wir i fyny i chi. 844 00:39:09,830 --> 00:39:12,350 Ond cae CHAR yn nifer penodedig. 845 00:39:12,350 --> 00:39:16,420 Felly dewiswch rhy ychydig ac rydych yn fath o sgriwio os ydych am enw defnyddiwr hirach. 846 00:39:16,420 --> 00:39:19,132 Dewiswch gormod o a beth sy'n anfantais? 847 00:39:19,132 --> 00:39:20,820 >> GYNULLEIDFA: [Anghlywadwy]. 848 00:39:20,820 --> 00:39:21,620 >> DAVID Malan: Mae'n LandLine wastraffus. 849 00:39:21,620 --> 00:39:24,835 Yn union fel yn C, os oes gennych fwy darn o gof nag sydd ei angen, rydych yn 850 00:39:24,835 --> 00:39:27,190 dim ond gwastraffu amser ac yn gwastraffu gofod. 851 00:39:27,190 --> 00:39:31,430 Felly, fel dewis arall, yn bodoli VARCHAR, sy'n datrys y broblem hon drwy 852 00:39:31,430 --> 00:39:36,390 trin hyd nid fel hyd penodol, ond fel uchafswm hyd, a defnyddio 853 00:39:36,390 --> 00:39:40,990 nifer amrywiol o chars, sydd wedyn yn yn tueddu i ddefnyddio dim ond cymaint o chars ag y byddwch yn 854 00:39:40,990 --> 00:39:42,710 ei angen mewn gwirionedd. 855 00:39:42,710 --> 00:39:43,670 Mae hynny'n swnio'n berffaith. 856 00:39:43,670 --> 00:39:45,640 >> Pam nad ydym yn cael gwared ar y Data CHAR deipio wedyn? 857 00:39:45,640 --> 00:39:48,500 Beth allai fod yn anfantais o ddefnyddio VARCHARs, sy'n swnio'n 858 00:39:48,500 --> 00:39:51,644 fel ei fod yn ennill neis? 859 00:39:51,644 --> 00:39:52,596 Yeah? 860 00:39:52,596 --> 00:39:53,846 >> GYNULLEIDFA: [Anghlywadwy]. 861 00:39:53,846 --> 00:39:57,360 862 00:39:57,360 --> 00:39:57,790 >> DAVID Malan: OK, yn dda. 863 00:39:57,790 --> 00:40:01,101 Felly, os yw pob un eich data yn yr un hyd, beth yw'r pryder? 864 00:40:01,101 --> 00:40:05,250 >> GYNULLEIDFA: Oherwydd eich bod yn gwastraffu data trwy ddweud wrthynt i gyd. 865 00:40:05,250 --> 00:40:09,060 >> DAVID Malan: Felly, os eich holl ddata yn yr un hyd, fodd bynnag, byddwn yn dadlau 866 00:40:09,060 --> 00:40:12,300 bod bennu uchafswm hyd ar VARCHAR yn wahanol i 867 00:40:12,300 --> 00:40:16,070 pennu hyd penodol ar CHAR os eich bod yn gwybod y rhif hwnnw ymlaen llaw. 868 00:40:16,070 --> 00:40:19,500 Ond mae yn wir, ac 'n annhymerus' math o darn o'r ateb hwnnw y realiti 869 00:40:19,500 --> 00:40:22,610 bod yna dal i fod yn max, a allai fod yn boen, yn enwedig os ydych yn 870 00:40:22,610 --> 00:40:25,920 yn dod ar draws enw person sy'n anarferol o hir na wnaethoch 871 00:40:25,920 --> 00:40:26,860 rhagweld. 872 00:40:26,860 --> 00:40:31,420 Ac mae hefyd ychydig yn llai effeithlon i chwilio mewn gwirionedd ar VARCHARs fel 873 00:40:31,420 --> 00:40:35,620 hytrach na chars chwilio, yn enwedig ar gyfer tablau hir sy'n cael llawer ac 874 00:40:35,620 --> 00:40:36,510 llawer o ddata. 875 00:40:36,510 --> 00:40:40,060 Felly yma hefyd, thematig eto dim dewis amlwg. 876 00:40:40,060 --> 00:40:42,870 >> Felly, dim ond i roi ymdeimlad o eraill yr ydych yn mathau o ddata a allai fod o ddiddordeb 877 00:40:42,870 --> 00:40:45,400 naill ai ar gyfer gosod-t saith neu mewn y dyfodol, mae INT. 878 00:40:45,400 --> 00:40:47,270 Mae BIGINT, a oedd yn yn debyg hir iawn. 879 00:40:47,270 --> 00:40:48,880 Mae'n tueddu i fod yn 64 ddarnau. 880 00:40:48,880 --> 00:40:51,640 Mae degol, gyda degol a byddwch yn gweld yn y broblem set, sy'n llawer 881 00:40:51,640 --> 00:40:55,300 ateb glanach i'r problemau yr ydym yn a gafwyd gyda arnofio ac fel y bo'r angen 882 00:40:55,300 --> 00:40:55,980 bwynt anfanyldeb. 883 00:40:55,980 --> 00:40:57,390 Ac yna mae DyddiadAmser. 884 00:40:57,390 --> 00:41:01,530 Mae llythrennol math data sydd wedi i edrych fel y flwyddyn, mis, diwrnod, 885 00:41:01,530 --> 00:41:03,730 ac awr, munud, ac yn ail. 886 00:41:03,730 --> 00:41:07,470 >> Ond mae cronfeydd data SQL hefyd pethau byddwn yn galw mynegeion. 887 00:41:07,470 --> 00:41:11,630 A mynegai yn rhywbeth yr ydych nodi wrth greu y tabl i 888 00:41:11,630 --> 00:41:15,720 wneud y chwiliadau a gweithrediadau eraill yn fwy effeithlon. 889 00:41:15,720 --> 00:41:18,550 Yn benodol, mae rhywbeth a elwir yn y mynegai CYNRADD chi a allai 890 00:41:18,550 --> 00:41:19,440 datgan fel a ganlyn. 891 00:41:19,440 --> 00:41:22,330 >> Gwnaethom hyn i chi gyda'r tabl defnyddwyr yr ydym yn ei roi i chi. 892 00:41:22,330 --> 00:41:26,160 Ond sylwi os wyf yn ail-greu â llaw y tabl defnyddwyr yma yn rhoi 893 00:41:26,160 --> 00:41:27,110 ei fod yn enw o ddefnyddwyr. 894 00:41:27,110 --> 00:41:28,125 Rwyf eisoes penodedig adnabod. 895 00:41:28,125 --> 00:41:29,330 Yr wyf yn benodol INT. 896 00:41:29,330 --> 00:41:32,000 Yr wyf yn benodol enw defnyddiwr gyda uchafswm 32 nod. 897 00:41:32,000 --> 00:41:36,140 Ond os ydym yn cadw sgrolio yn y deg ffenestr o led, rhybudd yna 898 00:41:36,140 --> 00:41:38,260 criw o bethau eraill y gallaf bennu. 899 00:41:38,260 --> 00:41:40,950 >> Un, gallaf nodi priodoleddau fel, eich bod yn gwybod beth, mae hyn yn 900 00:41:40,950 --> 00:41:42,190 Dylai INT fod HEB EI ARWYDDO. 901 00:41:42,190 --> 00:41:45,510 Nid wyf am rifau negyddol, felly gadewch i ni ei gwneud yn HEB EI ARWYDDO. 902 00:41:45,510 --> 00:41:48,660 Nid Null yn berthnasol yma oherwydd Dwi ddim am i bob defnyddiwr i 903 00:41:48,660 --> 00:41:49,640 gael rhif unigryw. 904 00:41:49,640 --> 00:41:50,830 Dydw i ddim am iddo fod null. 905 00:41:50,830 --> 00:41:52,330 >> Ond mae hyn yn ddiddorol. 906 00:41:52,330 --> 00:41:57,780 Gallaf nodi bod adnabod yn naill ai'r allwedd gynradd o'r gronfa ddata hon, neu ei fod yn 907 00:41:57,780 --> 00:42:00,620 unigryw, neu ei fod yn mynegeio, neu destun llawn. 908 00:42:00,620 --> 00:42:05,630 Felly, ar gyfer dibenion heddiw, stori hir byr, PRIMARY yn golygu y bydd hyn yn 909 00:42:05,630 --> 00:42:10,570 fod yn gysyniadol ac yn dechnegol y maes yr ydym yn eu defnyddio i unigryw 910 00:42:10,570 --> 00:42:12,140 adnabod defnyddwyr. 911 00:42:12,140 --> 00:42:16,140 >> Felly, pan fyddwn yn edrych i fyny i ddefnyddwyr, mae hyn yn fath o addewid i edrych i fyny yn bennaf gan 912 00:42:16,140 --> 00:42:17,370 y dynodwr unigryw. 913 00:42:17,370 --> 00:42:21,930 A bydd y gronfa ddata yn sicrhau, os ydych yn gael rhif defnyddiwr 3, ni allwch 914 00:42:21,930 --> 00:42:25,400 gorfforol mewnosod defnyddiwr arall â'r un rhif 3. 915 00:42:25,400 --> 00:42:28,380 Bydd y gronfa ddata yn unig wrthod i arbed eich newidiadau. 916 00:42:28,380 --> 00:42:32,310 Sy'n beth da, oherwydd eich bod yn gallu amddiffyn eich hun rhag eich hun. hunan 917 00:42:32,310 --> 00:42:34,270 >> Fel arall, enw defnyddiwr. 918 00:42:34,270 --> 00:42:37,670 Felly, yr ail res, galw i gof, yn y maes enw defnyddiwr. 919 00:42:37,670 --> 00:42:41,860 Felly, yr ail res yma yw enw defnyddiwr, fel y gwnaethom ar y pellaf ar y chwith yno. 920 00:42:41,860 --> 00:42:43,940 >> Felly, beth arall y gallwn am y manylion? 921 00:42:43,940 --> 00:42:47,840 Dydw i ddim yn caniatáu, yn ôl SQL, i nodi dau allweddi cynradd. 922 00:42:47,840 --> 00:42:50,750 gallwch nodi allwedd ar y cyd lle rydych yn edrych ar y ddau faes, ond nid ydynt yn gallu 923 00:42:50,750 --> 00:42:52,260 unigol fod yn allweddi cynradd. 924 00:42:52,260 --> 00:42:54,750 Felly dyna allan o'r cwestiwn. 925 00:42:54,750 --> 00:42:56,040 Felly, y gallai yr wyf am i ddewis? 926 00:42:56,040 --> 00:42:59,710 >> Wel, UNIGRYW yn debyg o ran ysbryd i allwedd gynradd lle rydych yn nodi hyn 927 00:42:59,710 --> 00:43:03,570 Bydd y maes yn unigryw, ond mae'n ddim yn mynd i fod yr un 928 00:43:03,570 --> 00:43:04,410 Rwy'n defnyddio drwy'r amser. 929 00:43:04,410 --> 00:43:08,450 Ac nid ydym yn mynd i ddefnyddio'r un bob yr amser ar gyfer yr hyn reswm eto? 930 00:43:08,450 --> 00:43:10,490 Mae'n arafach o bosibl os mae'n enw defnyddiwr hir. 931 00:43:10,490 --> 00:43:11,740 Dim ond yn wastraff amser. 932 00:43:11,740 --> 00:43:16,140 >> MYNEGAI, yn y cyfamser, yn nodi ei fod yn ddim yn mynd i fod yn unigryw, ond hoffwn 933 00:43:16,140 --> 00:43:19,470 i chi weithio eich hud o dan y cwfl i wneud yn gyflymach i mi 934 00:43:19,470 --> 00:43:21,420 chwilio ar y maes hwn. 935 00:43:21,420 --> 00:43:23,320 Felly mae hyn mae'n debyg nad yn berthnasol yma. 936 00:43:23,320 --> 00:43:26,500 Am enw defnyddiwr, byddwn i'n dadlau bod UNIGRYW yn ateb da. 937 00:43:26,500 --> 00:43:31,200 Ond mae'n debyg ein bod yn gwneud defnyddwyr yn fwy diddorol na dim ond enwau defnyddwyr, 938 00:43:31,200 --> 00:43:32,430 hashes, a rhifau adnabod. 939 00:43:32,430 --> 00:43:33,860 Beth pe baem yn rhoi pobl enwau llawn? 940 00:43:33,860 --> 00:43:37,700 Beth pe baem yn rhoi cyfeiriadau iddynt a data arall amdanynt? 941 00:43:37,700 --> 00:43:43,360 >> Wel, os ydych yn nodi bod colofn mewn cronfa ddata yn cael ei mynegeio, mae hynny'n golygu bod 942 00:43:43,360 --> 00:43:47,730 MySQL, neu Oracle, neu beth bynnag cronfa ddata ydych yn defnyddio, weithio ei hud 943 00:43:47,730 --> 00:43:51,300 ac yn defnyddio rhyw fath o ddata ffansi strwythur fel coeden, neu trie, neu 944 00:43:51,300 --> 00:43:55,940 tabl hash, neu rywbeth i warantu bod pan fyddwch yn chwilio am ddata gan ddefnyddio 945 00:43:55,940 --> 00:43:58,150 dewis ar y maes arbennig hwnnw - 946 00:43:58,150 --> 00:44:01,310 ddangos i mi fel pawb bod yn byw ar Stryd Rhydychen. 947 00:44:01,310 --> 00:44:02,540 Mae ymholiad fel 'na. 948 00:44:02,540 --> 00:44:06,250 Os ydych chi wedi nodi o flaen llaw y ydych chi eisiau mynegai ar y maes hwnnw, y 949 00:44:06,250 --> 00:44:09,050 Bydd chwiliadau yn llawer, llawer cyflymach. 950 00:44:09,050 --> 00:44:12,090 >> Os nad ydych yn pennu mynegai, y gorau gallwch ei wneud yw chwiliad llinol os 951 00:44:12,090 --> 00:44:13,030 nid yw'n cael ei datrys. 952 00:44:13,030 --> 00:44:16,220 Ond os eich bod yn nodi MYNEGAI, y smart pobl sydd wedi gwneud y gronfa ddata - 953 00:44:16,220 --> 00:44:19,340 pobl fel chi sy'n awr yn gwybod coed a ceisiau a thablau hash - 954 00:44:19,340 --> 00:44:23,220 Bydd adeiladu ddata o'r fath yn awtomatig strwythur RAM i wneud yn siŵr bod 955 00:44:23,220 --> 00:44:26,050 chwiliadau hynny yn llawer cyflymach. 956 00:44:26,050 --> 00:44:29,660 >> Testun llawn yn y cyfamser yn debyg o ran ysbryd, ond yn caniatáu i chi wneud nod-chwiliwr 957 00:44:29,660 --> 00:44:35,480 chwiliadau, fel dangoswch i mi bawb a yn byw ar strydoedd sy'n dechrau gyda'r 958 00:44:35,480 --> 00:44:36,960 Llythyr O am ba bynnag reswm. 959 00:44:36,960 --> 00:44:38,850 Gallwch wneud chwiliadau nod-chwiliwr fel 'na. 960 00:44:38,850 --> 00:44:45,880 Neu, pethau fwy cymhellol fel sioe mi pawb sydd â'r gair - 961 00:44:45,880 --> 00:44:49,400 ddangos i mi i bawb y mae ei enw yn dechrau gyda llythyr penodol. 962 00:44:49,400 --> 00:44:51,880 Gallwch chwilio am eiriau allweddol yn y modd hwn. 963 00:44:51,880 --> 00:44:52,630 Mae pob hawl. 964 00:44:52,630 --> 00:44:55,760 >> Felly, mae cyfleoedd dylunio yno o bosibl. 965 00:44:55,760 --> 00:44:57,740 Mae eraill sy'n 'n annhymerus' chwifio fy nwylo ar. 966 00:44:57,740 --> 00:45:00,530 Mae'n troi allan y gallwch gael gwahanol beiriannau storio. 967 00:45:00,530 --> 00:45:04,390 Ac mae hyn yn fwy dirgel nag sydd ei angen yn sicr ar gyfer datrys gosod saith. 968 00:45:04,390 --> 00:45:06,920 Yn ddiofyn, rydych guys yn defnyddio rywbeth o'r enw InnoDB. 969 00:45:06,920 --> 00:45:10,910 Byddwch yn gweld sôn am hyn yn rhywle yn rhyngwyneb phpMyAdmin mwyaf tebygol. 970 00:45:10,910 --> 00:45:14,130 Ond yn gwybod bod yna dylunio eraill penderfyniadau sydd o botensial 971 00:45:14,130 --> 00:45:18,030 diddordeb yn dod prosiectau terfynol os byddwch yn gwneud rhywbeth ar y we. 972 00:45:18,030 --> 00:45:19,330 >> Ond gadewch i ni wneud hyn. 973 00:45:19,330 --> 00:45:23,130 Gadewch i ni fynd yn ei flaen ac yn rhoi hyn ar yr sgrîn fel ymlid ar gyfer stori 974 00:45:23,130 --> 00:45:26,330 eich cynnwys chi, a roommate, a gwydraid o laeth. 975 00:45:26,330 --> 00:45:28,240 Gadewch i ni gymryd dau funud neu felly dorri yma. 976 00:45:28,240 --> 00:45:31,060 Ac os gallwch ffon o gwmpas, gadewch i ni ddod yn ôl, yn edrych ychydig yn fwy yn SQL, a 977 00:45:31,060 --> 00:45:35,160 yna ychydig o JavaScript gyda wyth mewn cof set-t. 978 00:45:35,160 --> 00:45:36,120 >> Mae pob hawl. 979 00:45:36,120 --> 00:45:40,420 Felly, gadewch i ni fynd i feddwl am achos cornel a all godi yn hawdd iawn 980 00:45:40,420 --> 00:45:44,240 yng nghyd-destun defnyddio cronfa ddata, neu dweud y gwir, hyd yn oed gan ddefnyddio pethau byd go iawn 981 00:45:44,240 --> 00:45:46,280 fel ATM i gael arian. 982 00:45:46,280 --> 00:45:47,640 Felly dyma oergell. 983 00:45:47,640 --> 00:45:50,040 Gadewch i ni dybio eich bod wedi cael un hefyd yn eich dorm neu eich tŷ. 984 00:45:50,040 --> 00:45:54,990 A oes gennych chi un roommate, ac mae'r ddau ydych yn wir yn hoffi llaeth er enghraifft. 985 00:45:54,990 --> 00:45:57,210 >> Felly, byddwch yn dod adref o ddosbarth un diwrnod. 986 00:45:57,210 --> 00:45:58,490 Nad yw ef neu hi'n eto ôl. 987 00:45:58,490 --> 00:45:59,180 I chi agor yr oergell. 988 00:45:59,180 --> 00:46:00,870 Ydych wir eisiau gwydraid mawr o laeth. 989 00:46:00,870 --> 00:46:01,820 Does dim llaeth. 990 00:46:01,820 --> 00:46:02,920 Felly, beth ydych chi'n ei wneud? 991 00:46:02,920 --> 00:46:03,840 Rydych yn cau'r oergell. 992 00:46:03,840 --> 00:46:04,670 Chi cydio eich allweddi. 993 00:46:04,670 --> 00:46:05,930 Rydych yn mynd allan i'r sgwâr. 994 00:46:05,930 --> 00:46:09,240 A ydych yn mynd i mewn lein yn CGG at y rhai pethau hunan ddesg dalu, sydd bob amser yn 995 00:46:09,240 --> 00:46:11,180 cymryd mwy o amser nag yn cael arianwyr. 996 00:46:11,180 --> 00:46:11,820 Anyhow. 997 00:46:11,820 --> 00:46:15,490 >> Felly, yna, yn y cyfamser, dot dot dot, eich roommate yn dod adref ac ef neu hi 998 00:46:15,490 --> 00:46:17,440 yn yr un modd mae hankering ar gyfer rhai llaeth. 999 00:46:17,440 --> 00:46:20,380 Felly, ef neu hi yn agor yr oergell, yn edrych y tu mewn, a oh, damn. 1000 00:46:20,380 --> 00:46:21,160 Dim llaeth. 1001 00:46:21,160 --> 00:46:24,750 Felly, ef neu hi yn bennaeth allan, yn digwydd i fynd i'r CVS arall, a oedd ond yn 1002 00:46:24,750 --> 00:46:27,900 bloc i ffwrdd am ryw reswm, a'i fod mae'n cael yn unol i brynu ychydig o laeth. 1003 00:46:27,900 --> 00:46:30,480 >> Yn y cyfamser, byddwch yn dod adref, ef neu mae hi'n dod adref, a beth 1004 00:46:30,480 --> 00:46:31,980 chi yn y pen draw gael? 1005 00:46:31,980 --> 00:46:33,080 Dwywaith cymaint o laeth. 1006 00:46:33,080 --> 00:46:34,620 Ond nad ydych yn wir yn hoffi llaeth bod llawer. 1007 00:46:34,620 --> 00:46:37,300 Felly, nawr eich bod yn cael cymaint o laeth sydd bellach yn un ohonynt yn unig yn mynd i fynd yn sur 1008 00:46:37,300 --> 00:46:37,820 yn y pen draw. 1009 00:46:37,820 --> 00:46:39,370 Felly, mae hyn yn broblem yn wael iawn. 1010 00:46:39,370 --> 00:46:39,900 Iawn? 1011 00:46:39,900 --> 00:46:41,990 >> Felly, beth sydd wedi digwydd? 1012 00:46:41,990 --> 00:46:44,810 Felly y bôn, mae hyn yn fath am enghraifft chwerthinllyd. 1013 00:46:44,810 --> 00:46:48,580 Ond o dan y cwfl, yr hyn yr ydym wedi cael digwydd yma yn y ddau chi wedi gwirio 1014 00:46:48,580 --> 00:46:52,390 gyflwr rhai darn o cof, yr oergell. 1015 00:46:52,390 --> 00:46:54,420 Mae'r ddau chi wedi gwirio y wladwriaeth rhai amrywiol. 1016 00:46:54,420 --> 00:46:57,360 Ddau ohonoch tynnodd gasgliad eich bod yna wedi gweithredu ar. 1017 00:46:57,360 --> 00:47:01,420 Ond yn anffodus, tra bydd eich roommate oedd yn y siop, cyflwr y 1018 00:47:01,420 --> 00:47:05,670 amrywiol newid, ef neu hi yn dod yn ôl ac yn awr yn awyddus i newid y wladwriaeth, ond 1019 00:47:05,670 --> 00:47:07,480 mae eisoes wedi cael ei newid ar iddo ef neu hi. 1020 00:47:07,480 --> 00:47:11,120 Ac wrth gwrs, ni fyddai ef neu hi wedi mynd i'r siop os ydynt yn gwybod 1021 00:47:11,120 --> 00:47:13,010 eich bod yn barod ar y ffordd. 1022 00:47:13,010 --> 00:47:16,430 >> Felly, yn y byd go iawn, sut allech chi osgoi'r broblem hon, gan dybio eich bod wedi 1023 00:47:16,430 --> 00:47:18,940 oergell, mae gennych roommate, ac rydych mewn gwirionedd yn hoffi llaeth? 1024 00:47:18,940 --> 00:47:19,760 >> GYNULLEIDFA: Cyfathrebu. 1025 00:47:19,760 --> 00:47:20,580 >> DAVID Malan: Cyfathrebu. 1026 00:47:20,580 --> 00:47:21,160 OK. 1027 00:47:21,160 --> 00:47:22,500 Ond sut y byddwch yn cyfathrebu? 1028 00:47:22,500 --> 00:47:23,990 >> GYNULLEIDFA: Gadewch nodyn. 1029 00:47:23,990 --> 00:47:25,480 >> DAVID Malan: Gadewch nodyn, dde? 1030 00:47:25,480 --> 00:47:28,025 Bob amser yn gadael nodyn, ar gyfer cefnogwyr y sioe. 1031 00:47:28,025 --> 00:47:31,580 Mae pob hawl, felly bob amser yn gadael nodyn, neu rhoi wirioneddol fel clo neu rywbeth 1032 00:47:31,580 --> 00:47:35,440 ar yr oergell sy'n cadw eich roommate rhag archwilio cyflwr 1033 00:47:35,440 --> 00:47:36,540 newidyn hwnnw. 1034 00:47:36,540 --> 00:47:40,800 >> Yn awr, pam y gallai hyn fod yn germane i problem set saith, neu i ATM. 1035 00:47:40,800 --> 00:47:46,780 Wel, dychmygu byd mewn ATM lle efallai y byddwch yn gallu mynd i fyny at ATM 1036 00:47:46,780 --> 00:47:48,920 peiriant yma, ac ATM arall yma. 1037 00:47:48,920 --> 00:47:50,680 Ac mae hyn yn digwydd yn aml iawn. 1038 00:47:50,680 --> 00:47:54,150 Ac mae'n debyg oedd gennych ddau cardiau ATM, sydd yn bosibl cael. 1039 00:47:54,150 --> 00:47:57,420 A byddwch yn logio i mewn i'r ddau peiriannau yn effeithiol ar yr un pryd, gobeithio 1040 00:47:57,420 --> 00:47:58,660 er nad oedd unrhyw un yn edrych. 1041 00:47:58,660 --> 00:48:01,260 Ac yna byddwch yn teipio eich PIN yn fras ar yr un pryd. 1042 00:48:01,260 --> 00:48:06,280 Ac yna ydych yn gwneud ymholiad cydbwysedd i weld faint o arian sydd gennych. 1043 00:48:06,280 --> 00:48:08,920 A gadewch i ni ddweud eich bod wedi $ 100 ar ôl yn eich cyfrif. 1044 00:48:08,920 --> 00:48:13,310 Felly, yn y bôn yr un pryd, rydych yn dweud un, sero, sero, nodwch. 1045 00:48:13,310 --> 00:48:16,000 A ydych yn gobeithio cael rhywfaint o arian yn ôl. 1046 00:48:16,000 --> 00:48:18,440 >> Ond faint o arian y gallech ei gael yn ôl? 1047 00:48:18,440 --> 00:48:21,710 Nawr gyfrifiaduron ar ddiwedd y dydd, yn enwedig os ydynt yn siarad 1048 00:48:21,710 --> 00:48:27,360 Nid yw gweinyddwyr, o reidrwydd yn gwneud pethau yn y drefn sy'n cael ei ddisgwyl. 1049 00:48:27,360 --> 00:48:30,860 >> Felly, mae'n debyg yr hyn sy'n digwydd, oherwydd y beth bynnag materion cyflymder rhwydwaith yno 1050 00:48:30,860 --> 00:48:34,530 , neu faterion CPU sydd ar gael, neu unrhyw beth fel 'na, mae'n debyg bod y 1051 00:48:34,530 --> 00:48:38,530 ATM gyntaf yn gwirio eich cydbwysedd a gweld, oh, y person hwn $ 100. 1052 00:48:38,530 --> 00:48:41,840 Ond wedyn yn cael canolbwyntio ar y ffordd oherwydd efallai copi wrth gefn yn digwydd ac felly mae'n 1053 00:48:41,840 --> 00:48:42,500 arafu. 1054 00:48:42,500 --> 00:48:45,080 Neu efallai tra'n gwirio, y rhwydwaith cysylltiad got ychydig yn arafach oherwydd 1055 00:48:45,080 --> 00:48:45,910 hyn yn unig yn digwydd. 1056 00:48:45,910 --> 00:48:47,100 Maent yn dyfeisiau corfforol. 1057 00:48:47,100 --> 00:48:49,330 Felly, yn y cyfamser, yr ail ATM yn gofyn yr un cwestiwn. 1058 00:48:49,330 --> 00:48:53,030 Faint o arian mae David wedi? 100 $ yw'r ateb. 1059 00:48:53,030 --> 00:48:58,930 Ond oherwydd bod y ATM cyntaf heb eto anfonwyd y neges tynnu $ 100, yn 1060 00:48:58,930 --> 00:49:03,000 ATM wedi arolygu cromen y banc, gweld yno yn $ 100 yno, ac yn awr 1061 00:49:03,000 --> 00:49:07,160 ddau peiriannau a allai fod yn mynd i boeri allan ateb. 1062 00:49:07,160 --> 00:49:12,240 >> Yn awr, mae hyn yn wych i chi mewn rhyw ffordd os yw'r hyn y banc yn ei wneud yn y pen draw 1063 00:49:12,240 --> 00:49:17,200 yn newid y swm i finws 100 erbyn gosod y newidyn cyfateb i'ch 1064 00:49:17,200 --> 00:49:21,570 cyfrif banc gyfartal i 0, yn hytrach na i wneud minws 100. 1065 00:49:21,570 --> 00:49:24,410 Nawr yn yr achos gwaethaf ar gyfer y banc - 1066 00:49:24,410 --> 00:49:27,470 neu yn y gorau ar gyfer y banc, yn y cyfamser, maent yn rhoi i chi $ 200, a 1067 00:49:27,470 --> 00:49:31,690 eich cyfrif banc yn awr yn dangos negyddol $ 100, sydd nid yn wir yn 1068 00:49:31,690 --> 00:49:32,950 o fudd i chi o gwbl. 1069 00:49:32,950 --> 00:49:36,500 Ond y pwynt yw fod y ras hon amod ar gyfer dau roommates cael 1070 00:49:36,500 --> 00:49:40,660 llaeth, neu ar gyfer dau ATMs ceisio cael arian parod a newid cyflwr o gladdgell 1071 00:49:40,660 --> 00:49:44,510 ar yr un pryd yn bodoli unrhyw tro y byddwch yn cael cronfa ddata. 1072 00:49:44,510 --> 00:49:48,290 >> Nawr yn broblem gosod saith, y mater hwn yn codi yn yr ystyr, os ydych yn prynu 1073 00:49:48,290 --> 00:49:52,110 cyfran o stoc Facebook, ac yna enghraifft, byddwch yn prynu ail gyfran o 1074 00:49:52,110 --> 00:49:55,160 Facebook stoc, mae angen i chi wneud penderfyniad gan fod y rhaglennydd. 1075 00:49:55,160 --> 00:49:58,710 Er mwyn penderfynu sut i ddiweddaru'r cronfa ddata, odds yn ydych yn mynd i 1076 00:49:58,710 --> 00:50:02,250 cael un rhes ar gyfer y stoc, ac mae hyn yn yn un ffordd o weithredu. 1077 00:50:02,250 --> 00:50:06,640 A ydych yn mynd i gael un gyfran o FB, sydd yn eu stoc Ticker symbol 1078 00:50:06,640 --> 00:50:10,120 am enw defnyddiwr hwn, neu y defnyddiwr hwn ID y dynodwr unigryw. 1079 00:50:10,120 --> 00:50:12,340 >> Ond gall yr un stori yn digwydd yma. 1080 00:50:12,340 --> 00:50:15,800 Os ydych yn SELECT yn SQL, fel y gwelwch mewn datrys gosod saith pan fyddwch yn gweld, 1081 00:50:15,800 --> 00:50:18,460 oh, David un gyfran o stoc Facebook. 1082 00:50:18,460 --> 00:50:23,240 Gadewch i mi yn awr yn newid hyn i fod yn ddau cyfranddaliadau, oherwydd ei fod am i brynu 1083 00:50:23,240 --> 00:50:24,120 ail gyfran. 1084 00:50:24,120 --> 00:50:27,860 Ond mae'n debyg David mewn gwirionedd roedd dau porwr ffenestri ar agor, neu'n debyg y 1085 00:50:27,860 --> 00:50:32,150 ei fod yn cyfrif ar y cyd gyda dau briod, ac mae'r ddau ohonynt yn cael eu ceisio i berfformio 1086 00:50:32,150 --> 00:50:36,770 yr un llawdriniaeth, yno, hefyd, y potensial yn bodoli am benderfyniad i fod yn 1087 00:50:36,770 --> 00:50:39,670 gwneud yn seiliedig ar y flwyddyn flaenorol cyflwr y byd - 1088 00:50:39,670 --> 00:50:41,290 y cyfrif un gyfran - 1089 00:50:41,290 --> 00:50:45,630 a'r ddau berson, neu'r ddau gweinyddwyr, yn awr ceisio dweud gynyddiad i ddau cyfranddaliadau. 1090 00:50:45,630 --> 00:50:49,020 Ond yn yr achos hwn, efallai y byddwch wedi codi arian i mi ar gyfer y ddau gyfranddaliadau, ond 1091 00:50:49,020 --> 00:50:50,830 gynyddrannedig dim ond bod un adeg. 1092 00:50:50,830 --> 00:50:54,730 >> , Y broblem sylfaenol Felly, yn fyr yma, fel yn achos y jôc am adael 1093 00:50:54,730 --> 00:50:58,750 nodi, neu roi clo arni, yn os oes dau o bobl, neu ddau edafedd - 1094 00:50:58,750 --> 00:50:59,930 meddwl yn ôl i grafu - 1095 00:50:59,930 --> 00:51:03,220 Gall archwilio cyflwr rhai amrywiol ac yna ceisio newid hynny amrywio, 1096 00:51:03,220 --> 00:51:07,950 ond nid y ddau beth yn digwydd yn y un pryd, ond yn gallu cael eu torri ar draws 1097 00:51:07,950 --> 00:51:11,500 gan bethau eraill yn digwydd, gall data fynd i mewn i gyflwr rhyfedd iawn. 1098 00:51:11,500 --> 00:51:15,450 A gallwch elwa neu gallwch ddioddef yn yr ystyr yr enghraifft arian. 1099 00:51:15,450 --> 00:51:18,110 >> Felly, yn broblem set saith, rydym yn rhoi i chi un llinell hon o'r cod, sy'n hir 1100 00:51:18,110 --> 00:51:21,000 stori fer, yn datrys hyn yn broblem yn MySQL. 1101 00:51:21,000 --> 00:51:24,950 Mae'r cyfarwyddyd hir iawn nad yw'n hyd yn oed yn ffitio ar un llinell ar y 1102 00:51:24,950 --> 00:51:30,370 sgrin yma yn sicrhau bod eich llawdriniaeth yn yr hyn a elwir atomig. 1103 00:51:30,370 --> 00:51:33,720 Mae'r cyfan yn digwydd ar yr un pryd, neu nid yw'n digwydd o gwbl. 1104 00:51:33,720 --> 00:51:37,530 Ni all yr ymadrodd hir iawn yn cael eu torri ar draws yn rhannol. 1105 00:51:37,530 --> 00:51:39,840 >> A beth mae'n ei wneud yn llythrennol yr hyn y mae'n ei ddweud. 1106 00:51:39,840 --> 00:51:44,200 Rhowch i mewn i rai tabl canlynol tri chae gwerthoedd penodol hynny, 1107 00:51:44,200 --> 00:51:47,280 ond ar allweddol dyblyg, peidiwch â gwneud mewnosodiad. 1108 00:51:47,280 --> 00:51:48,280 Gwneud y wybodaeth ddiweddaraf. 1109 00:51:48,280 --> 00:51:52,450 Felly, mae hyn yn debyg gwneud SELECT a INSERT felly i siarad ar yr un pryd. 1110 00:51:52,450 --> 00:51:55,150 A beth yw'r allwedd sy'n debyg cael eu cyfeirio at y fan hon? 1111 00:51:55,150 --> 00:51:58,300 1112 00:51:58,300 --> 00:52:01,380 >> Mae'n troi allan, a byddwch yn gweld hyn yn problem yn gosod spec saith yn, oherwydd 1113 00:52:01,380 --> 00:52:06,040 rydym wedi datgan bod un allwedd unigryw yn y tabl hwn penodol fel bod 1114 00:52:06,040 --> 00:52:08,480 ni allwch gael rhesi lluosog ar gyfer yr un defnyddiwr gyda'r 1115 00:52:08,480 --> 00:52:10,150 yr un symbol stoc ceiniog - 1116 00:52:10,150 --> 00:52:13,780 yn yr enghraifft hon yma, DVN.V yn stoc ceiniog gwirion ein bod yn 1117 00:52:13,780 --> 00:52:14,980 cyfeirio atynt yn y fanyleb. 1118 00:52:14,980 --> 00:52:17,860 Oherwydd ein bod wedi datgan ei fod yn unigryw, beth mae hyn yn ei olygu yw, os ydych yn 1119 00:52:17,860 --> 00:52:23,580 ceisio mewnosod rhes dyblyg, rydych yn yn hytrach na mynd i ddiweddaru heb 1120 00:52:23,580 --> 00:52:27,020 unrhyw un arall yn cael cyfle i newid cyflwr y byd chwaith. 1121 00:52:27,020 --> 00:52:29,400 Felly, yn fyr, mae hyn yn sicrhau pethau'n atomig. 1122 00:52:29,400 --> 00:52:32,530 >> Yn fwy cyffredinol, fodd bynnag, cronfeydd data fel MySQL - 1123 00:52:32,530 --> 00:52:35,460 ac nid oes angen nodwedd hon i chi am p-set saith, ond ei gadw mewn golwg ar gyfer 1124 00:52:35,460 --> 00:52:36,200 y dyfodol - 1125 00:52:36,200 --> 00:52:38,870 gefnogi'r hyn a elwir yn trafodion, lle gallwch ddweud 1126 00:52:38,870 --> 00:52:40,990 DECHRAU CYFLAWNI'R llythrennol. 1127 00:52:40,990 --> 00:52:43,270 Yna gallwch weithredu dau ddatganiad SQL. 1128 00:52:43,270 --> 00:52:45,710 A datganiad SQL, fel y byddwch yn gweld mewn saith gosod-p, yn edrych ychydig yn 1129 00:52:45,710 --> 00:52:46,750 rhywbeth fel hyn. 1130 00:52:46,750 --> 00:52:48,820 Diweddariad o'r enw gyfrif bwrdd. 1131 00:52:48,820 --> 00:52:52,550 Gosod y golofn cydbwysedd cyfartal i ba bynnag y golofn cydbwysedd ar hyn o bryd 1132 00:52:52,550 --> 00:52:57,280 yw minws 1,000 ble mae'r rhif, yr rhif y cyfrif, fel y ID defnyddiwr, 1133 00:52:57,280 --> 00:53:00,830 yn hafal i 2, ac yna diweddaru cyfrif dot dot dot. 1134 00:53:00,830 --> 00:53:04,350 >> Felly, mewn termau lleyg, beth yw y ddau yn ymholiadau yn ymddangos i fod yn ei wneud yn y 1135 00:53:04,350 --> 00:53:05,840 synnwyr byd go iawn o fancio? 1136 00:53:05,840 --> 00:53:07,440 >> GYNULLEIDFA: Trosglwyddo i arbedion. 1137 00:53:07,440 --> 00:53:08,020 >> DAVID Malan: Yn union. 1138 00:53:08,020 --> 00:53:10,470 Drosglwyddo arian o un cyfrif i'r llall. 1139 00:53:10,470 --> 00:53:14,400 Ac mae hyn yn enghraifft arall lle rydych yn wir eisiau y ddau beth ddigwydd 1140 00:53:14,400 --> 00:53:15,570 neu na fydd yn digwydd. 1141 00:53:15,570 --> 00:53:18,880 Dydych chi ddim eisiau rhywbeth i gael yn y canol ohonynt ac o bosibl llanast i fyny 1142 00:53:18,880 --> 00:53:22,220 y math, neu llanast i fyny faint o arian sydd gennych, neu faint 1143 00:53:22,220 --> 00:53:23,170 arian y mae'r banc wedi. 1144 00:53:23,170 --> 00:53:26,890 Felly, beth sydd wir yn neis am drafodion yn MySQL yw hynny, ac 1145 00:53:26,890 --> 00:53:30,160 cronfeydd data yn fwy cyffredinol, yw eu bod yn a phobl smart sydd wedi rhoi ar waith 1146 00:53:30,160 --> 00:53:33,670 nodweddion hyn yn chyfrif i maes sut i wneud yn siŵr bod y ddau beth hynny yn digwydd 1147 00:53:33,670 --> 00:53:35,120 neu ddim o gwbl. 1148 00:53:35,120 --> 00:53:38,580 >> Ac os ydych yn wir yn anelu at wneud gwefan sy'n cael ei ddefnyddio gan bobl ar 1149 00:53:38,580 --> 00:53:41,490 campws, pobl yn y byd go iawn, yn gwneud rhywbeth yn yr ystyr startup, 1150 00:53:41,490 --> 00:53:43,300 mae'r rhain yn y math o penderfyniadau dylunio sy'n 1151 00:53:43,300 --> 00:53:45,020 yn dod yn erioed mor bwysig. 1152 00:53:45,020 --> 00:53:48,240 Fel arall, byddwch yn dechrau colli data, colli defnyddwyr, neu yn yr achos gwaethaf fel 1153 00:53:48,240 --> 00:53:51,800 rydym wedi gweld yma, o bosibl colli arian. 1154 00:53:51,800 --> 00:53:56,180 Felly eto, yn fwy am hynny yn broblem a osodwyd saith, yn ogystal â efallai ar gyfer rhai o'r 1155 00:53:56,180 --> 00:53:57,530 chi mewn prosiectau terfynol. 1156 00:53:57,530 --> 00:54:01,870 >> Felly, gadewch i ni newid y darlun oedd gennym funud yn ôl yn unig yn un ffordd fwy. 1157 00:54:01,870 --> 00:54:04,070 Felly, gadewch i mi mewn gwirionedd weld os gallaf - 1158 00:54:04,070 --> 00:54:06,030 Na, mae hynny'n mynd. 1159 00:54:06,030 --> 00:54:06,690 Yno y mae. 1160 00:54:06,690 --> 00:54:09,020 >> Felly dyma lle rydym yn gadael y tro diwethaf. 1161 00:54:09,020 --> 00:54:12,390 Ac mae'n troi allan rydym yn mynd i toss un peth arall i mewn i'r gymysgedd yma - 1162 00:54:12,390 --> 00:54:14,510 iaith o'r enw JavaScript. 1163 00:54:14,510 --> 00:54:18,060 Felly, mewn gwirionedd yn cyd-fynd JavaScript yn y darn hwn - 1164 00:54:18,060 --> 00:54:22,086 a doeddwn i ddim yn eithaf yn gadael digon o le, felly nid yw hyn bellach wrth raddfa. 1165 00:54:22,086 --> 00:54:23,900 OK, mae hyn yn wir yn pathetic. 1166 00:54:23,900 --> 00:54:27,075 Iawn, felly dyna JavaScript. 1167 00:54:27,075 --> 00:54:27,340 Mae pob hawl. 1168 00:54:27,340 --> 00:54:28,760 Dwi wir yn gwneud ei fod yn cam. 1169 00:54:28,760 --> 00:54:29,390 Mae pob hawl. 1170 00:54:29,390 --> 00:54:34,790 >> Felly JavaScript yn rhaglennu arall iaith, ac mae ein olaf, os yw hynny'n helpu 1171 00:54:34,790 --> 00:54:37,770 sicrwydd nad oes llawer mwy o'r hydrantau tân yma. 1172 00:54:37,770 --> 00:54:41,100 Felly JavaScript hefyd yn dehongli iaith, sy'n golygu nad ydych yn 1173 00:54:41,100 --> 00:54:42,670 llunio i mewn i sero a rhai. 1174 00:54:42,670 --> 00:54:43,690 Rydych yn unig redeg. 1175 00:54:43,690 --> 00:54:47,680 Ond yr hyn sy'n sylfaenol wahanol gyda JavaScript fel arfer eich bod yn 1176 00:54:47,680 --> 00:54:49,815 peidiwch â rhedeg ar eich gweinydd gwe. 1177 00:54:49,815 --> 00:54:52,570 Nid yw'n cael ei redeg yn y offer per se. 1178 00:54:52,570 --> 00:54:57,490 Yn hytrach, mae'n cael ei lwytho i lawr gan ddefnyddiwr drwy HTTP yn eu porwr - 1179 00:54:57,490 --> 00:55:00,260 Chrome, Safari, Internet Explorer, Firefox, beth bynnag - 1180 00:55:00,260 --> 00:55:03,860 ac mae'n y porwr sy'n executes hyn iaith raglennu benodol. 1181 00:55:03,860 --> 00:55:08,000 >> Felly, i fod yn glir, PHP hyd yn hyn wedi bod yn eu gweithredu naill ai yn y llinell orchymyn yn 1182 00:55:08,000 --> 00:55:11,290 ein ffenestr du a gwyn, ar weinydd fel y peiriant, cyfrifiadur 1183 00:55:11,290 --> 00:55:14,490 hoffi'r offer, neu mae wedi bod yn gyflawni gan weinydd y we 1184 00:55:14,490 --> 00:55:15,860 rhedeg ar gyfrifiadur. 1185 00:55:15,860 --> 00:55:20,490 Ond mae'r thema yma yw bod PHP hyd yn hyn wedi ei weithredu ochr y gweinydd, felly 1186 00:55:20,490 --> 00:55:24,820 y defnyddiwr a phorwr y defnyddiwr byth yn gweld llinell o god PHP. 1187 00:55:24,820 --> 00:55:28,530 >> Yn wir, os ydych chi erioed yn agor porwr i eich gwefan neu arall a'ch bod 1188 00:55:28,530 --> 00:55:32,400 mewn gwirionedd yn gweld y cod PHP yn eich ffenestr, rhywun wedi sgriwio i fyny. 1189 00:55:32,400 --> 00:55:34,950 Oherwydd nad yw'n fod i fod yn hanfon at porwr yn uniongyrchol. 1190 00:55:34,950 --> 00:55:38,150 Mae'n i fod i gael eu gweithredu a troi i mewn i rywbeth fel HTML. 1191 00:55:38,150 --> 00:55:40,120 >> Ond JavaScript yn ei hanfod y gwrthwyneb. 1192 00:55:40,120 --> 00:55:44,350 Mae'n i fod i gael ei redeg fel arfer y tu mewn o ffenestr porwr y defnyddiwr. 1193 00:55:44,350 --> 00:55:46,840 A pha fathau o wefannau yn defnyddio JavaScript yna y dyddiau hyn? 1194 00:55:46,840 --> 00:55:49,640 1195 00:55:49,640 --> 00:55:52,180 >> Fel llythrennol pob gwefan poblogaidd. 1196 00:55:52,180 --> 00:55:55,430 Pob gwefan eich bod guys yn ôl pob tebyg defnyddio bob dydd yn defnyddio JavaScript ar gyfer y 1197 00:55:55,430 --> 00:55:57,330 symlaf a hyd yn oed y nodweddion sexiest. 1198 00:55:57,330 --> 00:55:59,800 >> Felly, rhywbeth fel Facebook Sgwrs os ydych yn defnyddio hynny. 1199 00:55:59,800 --> 00:56:01,040 Sut mae hynny'n gweithio mewn gwirionedd? 1200 00:56:01,040 --> 00:56:05,090 Dda hyd yn hyn, yr holl bethau rydym wedi wneud gyda HTML a PHP yn tybio y 1201 00:56:05,090 --> 00:56:08,750 chi dynnu i fyny URL, ac rydych daro Chofnoda, a byddwch yn gweld rhywfaint o gynnwys HTML. 1202 00:56:08,750 --> 00:56:11,970 A ydych yn cliciwch ar y ddolen, sy'n newid y URL, yn newid y dudalen, a reloads 1203 00:56:11,970 --> 00:56:12,740 rhywfaint o gynnwys newydd. 1204 00:56:12,740 --> 00:56:16,340 Cliciwch URL arall neu gyflwyno ffurflen, rydych yn cael cludo i dudalen arall a 1205 00:56:16,340 --> 00:56:17,420 byddwch yn gweld rhywfaint o gynnwys newydd. 1206 00:56:17,420 --> 00:56:22,710 >> Ond gan ddefnyddio rhywbeth fel Facebook Sgwrs, neu Gchat, neu Google Maps, yn anaml 1207 00:56:22,710 --> 00:56:27,350 mae'r dudalen gyfan adnewyddu fel bod byddwch yn gweld sgrîn gwyn ychydig eiliadau a 1208 00:56:27,350 --> 00:56:28,470 Yna, cynnwys newydd. 1209 00:56:28,470 --> 00:56:32,610 Yn hytrach, tudalennau gwe heddiw yn ddeinamig cael eu diweddaru unwaith eto a 1210 00:56:32,610 --> 00:56:35,570 eto ac eto pob math o'r tu ôl i'r llenni. 1211 00:56:35,570 --> 00:56:38,560 Ac mae'n troi allan pan fyddwch yn mynd i'r rhywbeth fel Facebook, neu Gchat, 1212 00:56:38,560 --> 00:56:43,050 neu Gmail, a'r diweddariadau dudalen yn awtomatig heb ail-lwytho y 1213 00:56:43,050 --> 00:56:47,630 sgrîn gyfan, yr hyn sydd wedi digwydd yw bod eich porwr wedi gwneud math o gyfrinachol 1214 00:56:47,630 --> 00:56:49,410 ceisiadau HTTP ychwanegol - 1215 00:56:49,410 --> 00:56:52,740 nid ar gyfer tudalennau gwe cyfan, ond dim ond ar gyfer darnau bach o ddata, fel y 1216 00:56:52,740 --> 00:56:55,740 neges chwim bod eich ffrind yn unig hanfon atoch, neu y diweddariad statws hwnnw 1217 00:56:55,740 --> 00:56:58,210 rhywun newydd ei anfon atoch, neu tweet bod rhywun newydd anfon. 1218 00:56:58,210 --> 00:57:02,120 Mae'n dim ond gwneud ceisiadau bach ar gyfer data, ac yna defnyddio JavaScript, mae hyn yn 1219 00:57:02,120 --> 00:57:06,370 iaith raglennu, i newid yr hyn y dudalen we yn edrych fel heb y 1220 00:57:06,370 --> 00:57:09,860 gweinydd yn helpu, heb y gweinydd cynhyrchu y HTML. 1221 00:57:09,860 --> 00:57:13,820 >> Felly, yn fyr, gall JavaScript yn cael ei ddefnyddio, yna i nôl data newydd, nid yn unig o 1222 00:57:13,820 --> 00:57:16,750 y gweinydd heb ail-lwytho yn ei gyfanrwydd tudalen neu gyflwyno ffurflen. 1223 00:57:16,750 --> 00:57:20,060 Gellir hefyd ei ddefnyddio i newid DOM fel y'i gelwir - 1224 00:57:20,060 --> 00:57:21,520 model gwrthrych ddogfen - 1225 00:57:21,520 --> 00:57:24,620 sydd ychydig y ffordd ffansi ar gyfer gan ddweud y goeden o HTML 1226 00:57:24,620 --> 00:57:26,220 ein bod yn gweld y tro diwethaf. 1227 00:57:26,220 --> 00:57:31,640 >> Felly, er mwyn tawelu meddwl, JavaScript syntactically mor debyg i C yn ogystal. 1228 00:57:31,640 --> 00:57:32,820 Does dim prif swyddogaeth. 1229 00:57:32,820 --> 00:57:35,430 Rydych yn unig yn dechrau ysgrifennu'r cod a bydd yn cael ei weithredu, neu 1230 00:57:35,430 --> 00:57:36,900 dehongli yn fwy priodol. 1231 00:57:36,900 --> 00:57:38,660 Bydd amodau yn edrych fel hyn. 1232 00:57:38,660 --> 00:57:41,230 Dim wahanol i C neu PHP o ran hynny. 1233 00:57:41,230 --> 00:57:43,890 Mynegiadau Boole neu-ed gyda'i gilydd yn edrych fel hyn. 1234 00:57:43,890 --> 00:57:45,590 Anded gyda'i gilydd yn edrych fel hyn. 1235 00:57:45,590 --> 00:57:47,750 >> Bydd switshis edrych fel hyn. 1236 00:57:47,750 --> 00:57:49,440 Ar gyfer dolenni edrych fel hyn. 1237 00:57:49,440 --> 00:57:51,060 Er y bydd dolenni edrych fel hyn. 1238 00:57:51,060 --> 00:57:53,316 Wneud tra bydd dolenni edrych fel hyn. 1239 00:57:53,316 --> 00:57:54,780 >> Mae hyn yn newydd. 1240 00:57:54,780 --> 00:57:58,753 Felly nid JavaScript Mae foreach adeiladu fel y cyfryw, ond mae lluniad hwn 1241 00:57:58,753 --> 00:58:03,870 am i amrywiol o ran amrywiaeth, a fi yn hyn o achos yn dod yn werth mynegai. 1242 00:58:03,870 --> 00:58:06,880 Felly mae'n ychydig yn wahanol i'r hyn a foreach, er bod fersiynau newydd o 1243 00:58:06,880 --> 00:58:10,280 JavaScript yn dod allan drwy'r amser, felly hyd yn oed nodweddion iaith hyn 1244 00:58:10,280 --> 00:58:10,880 yn esblygu. 1245 00:58:10,880 --> 00:58:16,920 >> Ac wrth fynd heibio, JavaScript y dyddiau hyn Gellir hefyd ei ddefnyddio ar weinydd yn union fel 1246 00:58:16,920 --> 00:58:19,920 PHP ddefnyddio fframwaith o'r enw Node.js. 1247 00:58:19,920 --> 00:58:24,670 Un o CS50 yn TFS, Kevin, wedi arwain seminar ar Node.js sydd ar gael yn 1248 00:58:24,670 --> 00:58:26,440 cs50.net/seminars. 1249 00:58:26,440 --> 00:58:28,830 Felly, os ydych yn chwilfrydig, yn gwybod eich bod yn Gellir defnyddio hwn ar yr ochr gweinydd fel 1250 00:58:28,830 --> 00:58:33,870 yn dda, ond mae hynny'n duedd gweddol ddiweddar, ond yn un bwerus ar hynny. 1251 00:58:33,870 --> 00:58:35,270 >> Mae hyn ychydig yn wahanol. 1252 00:58:35,270 --> 00:58:37,910 Mae hwn yn amrywiaeth yn JavaScript. 1253 00:58:37,910 --> 00:58:40,115 A beth taro chi fel gwahanol yn erbyn C neu PHP? 1254 00:58:40,115 --> 00:58:43,890 1255 00:58:43,890 --> 00:58:47,420 Mae ychydig o straeon cyflym gallwn ddweud yma. 1256 00:58:47,420 --> 00:58:49,367 Beth sydd ar goll erbyn PHP? 1257 00:58:49,367 --> 00:58:51,652 >> GYNULLEIDFA: [Anghlywadwy]. 1258 00:58:51,652 --> 00:58:52,110 >> DAVID Malan: Ie? 1259 00:58:52,110 --> 00:58:53,322 Mae'n ddrwg gennym, yn dweud eto? 1260 00:58:53,322 --> 00:58:54,740 >> GYNULLEIDFA: Heb ddatgan y math o amrywiol. 1261 00:58:54,740 --> 00:58:56,390 >> DAVID Malan: Nid ydym yn datgan y math o amrywiol. 1262 00:58:56,390 --> 00:58:59,630 Felly, mewn gwirionedd yn eithaf fel PHP, nid ydym yn nodi'r mathau o newidyn hwn. 1263 00:58:59,630 --> 00:59:02,670 Yn hytrach, rydym yn fwy cyffredinol dweud var ar gyfer amrywiol. 1264 00:59:02,670 --> 00:59:06,690 Nid oes gennym niwsans PHP o'r arwydd doler, sydd, er ddiflas i 1265 00:59:06,690 --> 00:59:09,160 math, yn ei gwneud yn fwy amlwg bod rhywbeth yn newidyn. 1266 00:59:09,160 --> 00:59:11,830 Tra yma, rydym yn fath o yn ôl i Ymagwedd C o ddim ond ffonio 1267 00:59:11,830 --> 00:59:14,500 amrywiol gan yr enw yr ydym am ei roi, fel rhifau. 1268 00:59:14,500 --> 00:59:17,170 A hefyd fel PHP, rydym wedi cromfachau sgwâr ar gyfer y 1269 00:59:17,170 --> 00:59:19,170 gwerthoedd y tu mewn i'r amrywiaeth. 1270 00:59:19,170 --> 00:59:22,490 >> Felly newidynnau mewn JavaScript hefyd gallai edrych fel hyn. 1271 00:59:22,490 --> 00:59:26,900 Hysbysiad yma mae hwn yn llinyn o'r enw s, ond yn yr un modd rydym heb ei nodi 1272 00:59:26,900 --> 00:59:28,750 ei fod yn llinyn. 1273 00:59:28,750 --> 00:59:33,160 Yma er yn nodwedd nad yw'n yn bodoli yn union yr un ffordd yn PHP, 1274 00:59:33,160 --> 00:59:34,460 ond ychydig yn yr un modd. 1275 00:59:34,460 --> 00:59:36,530 Mae hwn yn gwrthrych yn JavaScript. 1276 00:59:36,530 --> 00:59:42,110 A gwrthrychau yn fath o Fyddin Swistir Cyllell o strwythur data yn eich bod 1277 00:59:42,110 --> 00:59:43,900 Gellir eu defnyddio ar gyfer unrhyw nifer o bethau. 1278 00:59:43,900 --> 00:59:46,860 >> Yma, er enghraifft, rydym yn datgan newidyn a elwir dyfynbris. 1279 00:59:46,860 --> 00:59:49,110 Y math o newidyn hwnnw yn wrthrych. 1280 00:59:49,110 --> 00:59:53,550 Gallwch chi feddwl am hyn fel strwythur C sydd â allweddi a gwerthoedd. 1281 00:59:53,550 --> 00:59:55,250 Symbol yn allweddol. 1282 00:59:55,250 --> 00:59:57,350 FB yn werth, mae'n debyg symbol stoc. 1283 00:59:57,350 --> 00:59:57,930 Adain Garpiog. 1284 00:59:57,930 --> 01:00:02,180 Price yn allweddol arall, ac mae ei gwerth yn mae'n debyg pwynt fel y bo'r angen, neu 1285 01:00:02,180 --> 01:00:06,510 nifer yn fwy cyffredinol yn JavaScript, o $ 49.26. 1286 01:00:06,510 --> 01:00:09,030 >> Felly nid oes gan PHP - 1287 01:00:09,030 --> 01:00:12,980 nid ydym wedi gweld mewn gwrthrychau PHP yn eithaf fel hyn, ond yr ydym yn gweld yn analog, 1288 01:00:12,980 --> 01:00:14,093 a oedd yn beth? 1289 01:00:14,093 --> 01:00:14,980 >> GYNULLEIDFA: [Anghlywadwy]. 1290 01:00:14,980 --> 01:00:16,110 >> DAVID Malan: araeau cysylltiadol. 1291 01:00:16,110 --> 01:00:19,990 Felly, tra mae gan PHP araeau cysylltiadol y mae ei gystrawen yn erioed ychydig er 1292 01:00:19,990 --> 01:00:20,370 wahanol - 1293 01:00:20,370 --> 01:00:21,780 gwelsom y cromfachau sgwâr. 1294 01:00:21,780 --> 01:00:23,860 Rydym yn gweld y symbolau saethau 'n annaearol. 1295 01:00:23,860 --> 01:00:27,330 Mae JavaScript gwrthrychau, ond mae hyn yn yn bennaf gwahaniaeth semantig a 1296 01:00:27,330 --> 01:00:29,260 gyfystyr gwahanol am y tro. 1297 01:00:29,260 --> 01:00:35,060 Fodd bynnag, wrth fynd heibio, PHP hefyd gwrthrychau mewn ffordd sy'n Java a eraill 1298 01:00:35,060 --> 01:00:37,810 ieithoedd gwrthrychau mewn rhaglennu gwrthrych-oriented. 1299 01:00:37,810 --> 01:00:40,440 Ond byddwn yn defnyddio'r rhain yn unig ar gyfer mathau data am y tro. 1300 01:00:40,440 --> 01:00:42,170 Gwrthrychau a araeau cysylltiadol. 1301 01:00:42,170 --> 01:00:44,140 >> Gallai hyn un yn ei gwneud yn ychydig yn fwy clir. 1302 01:00:44,140 --> 01:00:45,890 Dyma pam y mae gwrthrych yn ddefnyddiol. 1303 01:00:45,890 --> 01:00:48,760 Pan fyddwch eisiau i ddatgan yn fyfyriwr, fel Zamyla, gallwn mewn gwirionedd 1304 01:00:48,760 --> 01:00:52,630 grynhoi fel petai y tu mewn o hynny gwrthwynebu ddefnyddio cromfachau cyrliog yn union fel 1305 01:00:52,630 --> 01:00:55,060 cyn criw cyfan o allweddi a gwerthoedd yma. 1306 01:00:55,060 --> 01:00:59,150 Mae gennym adnabod, tŷ, ac enw ar gyfer Zamyla, wedi'i ddilyn gan hanner colon fel 1307 01:00:59,150 --> 01:01:00,690 arferol ar y diwedd. 1308 01:01:00,690 --> 01:01:04,840 >> Down yma hefyd, mae hyn ychydig yn wahanol, ond hefyd yn bwerus iawn 1309 01:01:04,840 --> 01:01:05,690 y dyddiau hyn. 1310 01:01:05,690 --> 01:01:08,780 Dyma amrywiaeth, a gwn fod oherwydd mae 'na braced sgwâr i fyny 1311 01:01:08,780 --> 01:01:11,090 top a braced sgwâr ar y gwaelod. 1312 01:01:11,090 --> 01:01:16,050 Ac mae hyn yn amrywiaeth o ba ddata teipio ymddangos yn JavaScript? 1313 01:01:16,050 --> 01:01:21,260 Mae hwn yn amrywiaeth o mae'n edrych fel dri gwrthrych. 1314 01:01:21,260 --> 01:01:24,580 Ac yr wyf yn gwybod ei fod yn gwrthrych yn unig oherwydd y braces cyrliog. 1315 01:01:24,580 --> 01:01:28,760 Ac yn sylwi mae Brace cyrliog agored, rhai pethau, Brace cyrliog yn agos, coma, 1316 01:01:28,760 --> 01:01:31,180 yna mae rhai yn fwy, coma, ac yna mae rhai yn fwy. 1317 01:01:31,180 --> 01:01:33,800 Felly dyna dri dadleuon gwahanu gan ddau atalnodau. 1318 01:01:33,800 --> 01:01:36,810 >> Felly mae hwn yn amrywiaeth o dri gwrthrych. 1319 01:01:36,810 --> 01:01:39,940 A phob un o'r amcanion hynny yn ymddangos yn myfyriwr neu aelod o staff o rai 1320 01:01:39,940 --> 01:01:42,370 didoli, pob un â adnabod, tŷ, ac enw. 1321 01:01:42,370 --> 01:01:45,060 Ond yr wyf wedi galw hyn yn rhywbeth a elwir yn JSON - 1322 01:01:45,060 --> 01:01:47,450 JavaScript Nodiant Gwrthrych. 1323 01:01:47,450 --> 01:01:52,060 Ac mae hyn yn fformat data sydd mewn gwirionedd yn mor boblogaidd iawn ac yn 1324 01:01:52,060 --> 01:01:55,100 ffasiynol y dyddiau hyn, os ydych yn ysgrifennu cais sy'n defnyddio Facebook 1325 01:01:55,100 --> 01:01:59,150 API, mae'r Twitter API, mewn gwirionedd bron unrhyw API allan yno y dyddiau hyn, 1326 01:01:59,150 --> 01:02:02,820 gan gynnwys rhai o'r CS50 ei hun, yr data rydych yn mynd yn ôl nid yw yn 1327 01:02:02,820 --> 01:02:04,720 hen fformat CSV ysgol. 1328 01:02:04,720 --> 01:02:06,780 >> Oherwydd dwyn i gof sy'n CSV yn super syml. 1329 01:02:06,780 --> 01:02:10,230 Mae yr un colofnau gwahanu gan atalnodau. 1330 01:02:10,230 --> 01:02:13,190 Data JSON yn rhoi mwy o metadata chi. 1331 01:02:13,190 --> 01:02:17,800 Mae'n cysylltu allwedd gyda phob gwerth felly nid oes rhaid iddynt i ychydig gymryd yn ganiataol y 1332 01:02:17,800 --> 01:02:22,460 y golofn 0 yn un gwerth, colofn un yn un arall, colofn dau yn un arall. 1333 01:02:22,460 --> 01:02:26,790 Popeth mewn gwrthrych JSON yma fath o hunan-ddisgrifio, oherwydd y mae pob 1334 01:02:26,790 --> 01:02:30,940 un o enwau yn y ffeil hon wedi llythrennol enwi o flaen fel 1335 01:02:30,940 --> 01:02:32,510 llinyn a ddyfynnir. 1336 01:02:32,510 --> 01:02:34,950 >> Felly, gadewch i ni edrych ar y ychydig o enghreifftiau yma. 1337 01:02:34,950 --> 01:02:36,800 Gadewch i mi fynd i mewn i'r peiriant. 1338 01:02:36,800 --> 01:02:41,000 A gadewch i mi fynd i mewn i'n vhost cyfeiriadur i gyhoeddus. 1339 01:02:41,000 --> 01:02:45,590 A gadewch i mi fynd i mewn i'r JavaScript cyfeiriadur. 1340 01:02:45,590 --> 01:02:49,610 A gadewch i ni fynd yn ei flaen ac yn agor i fyny dom-0.html, lle mae DOM yn unig yn golygu 1341 01:02:49,610 --> 01:02:51,010 model gwrthrych ddogfen. 1342 01:02:51,010 --> 01:02:53,490 Mae'n y stwff goeden y mae Cyfeiriais ato yn gynharach. 1343 01:02:53,490 --> 01:02:54,950 >> A gadewch i mi gynnig y canlynol. 1344 01:02:54,950 --> 01:02:57,720 Dyma dudalen ar y we y mae ei corff yn eithaf syml. 1345 01:02:57,720 --> 01:03:00,170 Felly, i lawr yma yn y gwaelod, sylwi gen i ffurflen. 1346 01:03:00,170 --> 01:03:01,500 Rydym wedi gweld rhai o'r blaen. 1347 01:03:01,500 --> 01:03:07,600 Mae ganddo ddau mewnbynnau, un sydd â ID enw, un ohonynt math o 1348 01:03:07,600 --> 01:03:09,830 cyflwyno, a'r cyntaf un o fath yn destun. 1349 01:03:09,830 --> 01:03:11,900 Felly, mae hyn mewn gwirionedd yn swnio'n eithaf syml. 1350 01:03:11,900 --> 01:03:13,090 >> Gadewch i ni fynd yma. 1351 01:03:13,090 --> 01:03:15,390 Gadewch i ni fynd yn ôl i'r dudalen hon yma. 1352 01:03:15,390 --> 01:03:21,030 Gadewch i ni fynd i mewn i localhost, ac yn mynd i mewn i ein cyfeirlyfr JavaScript, ac yn mynd i 1353 01:03:21,030 --> 01:03:24,640 dom-0, ac yma mae gennym ffurflen hon. 1354 01:03:24,640 --> 01:03:26,550 Felly dyna mae'n debyg i gyd y dudalen hon ei wneud. 1355 01:03:26,550 --> 01:03:28,740 Mae ganddo enw cae gyda a botwm Anfon. 1356 01:03:28,740 --> 01:03:30,340 Ond dydw i ddim yn mynd i ddefnyddio PHP yma. 1357 01:03:30,340 --> 01:03:34,310 Rydw i'n mynd i wneud popeth ochr y cleient fel petai yn JavaScript fel a ganlyn. 1358 01:03:34,310 --> 01:03:39,100 >> Sylwch fy mod yn wir wedi rhoi enw maes mewnbwn hwn yn unigryw 1359 01:03:39,100 --> 01:03:42,350 dynodwr, a fydd mewn gwirionedd yn achub fi beth amser mewn munud. 1360 01:03:42,350 --> 01:03:45,480 Ac yn sylwi fy mod wedi cyflwyno tag arall yn y pen fy dudalen we, mae'r 1361 01:03:45,480 --> 01:03:46,565  tag. 1362 01:03:46,565 --> 01:03:50,120 >> Felly mae'n yn yr ystyr bod JavaScript yn iaith raglennu-ochr cleientiaid. 1363 01:03:50,120 --> 01:03:55,020 Yn yr achos hwn, yn union fel CSS, yr wyf wedi rhoi yn syth tu mewn fy HTML. 1364 01:03:55,020 --> 01:03:58,810 Ond rhybudd Rwyf wedi datgan swyddogaeth sy'n edrych ychydig fel PHP 1365 01:03:58,810 --> 01:04:01,530 syntactically, ond mae hyn yn mewn gwirionedd JavaScript, oherwydd unwaith eto, mae'n 1366 01:04:01,530 --> 01:04:03,920 ar ochr cleientiaid yn y porwr. 1367 01:04:03,920 --> 01:04:07,590 Ac yn cymryd dyfalu beth mae hyn yn mynd i ei wneud, er bod rhai o'r gystrawen 1368 01:04:07,590 --> 01:04:09,338 yma yn newydd. 1369 01:04:09,338 --> 01:04:11,760 >> GYNULLEIDFA: Dywedwch helo i bwy bynnag. 1370 01:04:11,760 --> 01:04:14,020 >> DAVID Malan: Mae'n mynd i ddweud helo i bwy bynnag yn ymweld y dudalen hon. 1371 01:04:14,020 --> 01:04:15,120 Felly, sut? 1372 01:04:15,120 --> 01:04:18,070 >> Felly sylwi, mae'n troi allan yn JavaScript mae 'na rybudd () swyddogaeth. 1373 01:04:18,070 --> 01:04:22,840 Mae hon yn swyddogaeth fath iawn o drist bod mewn gwirionedd dim ond yn tueddu i cythruddo defnyddwyr. 1374 01:04:22,840 --> 01:04:25,440 Dyw hi ddim yn un a ddylai chi wir yn defnyddio fel arfer, ond mae'n gyflym ac yn fudr 1375 01:04:25,440 --> 01:04:27,710 ffordd o'r math o argraffu rhywbeth i ddefnyddiwr graffigol 1376 01:04:27,710 --> 01:04:29,180 rhyngwynebu, fel porwr. 1377 01:04:29,180 --> 01:04:31,400 Hysbysiad yma fy mod i wedi cael llinyn mewn dyfynodau sengl. 1378 01:04:31,400 --> 01:04:36,010 Mae'n ymddangos bod yn wahanol i C, JavaScript mewn gwirionedd yn rhaid i chi ddefnyddio un 1379 01:04:36,010 --> 01:04:38,730 dyfyniadau, a dweud y gwir dim ond math y confensiwn arddulliadol ymhlith 1380 01:04:38,730 --> 01:04:41,180 JavaScript rhaglenwyr i ddefnyddio dyfynodau sengl. 1381 01:04:41,180 --> 01:04:43,750 PHP, maent mewn gwirionedd ychydig yn ystyr gwahanol. 1382 01:04:43,750 --> 01:04:45,810 Ond ar hyn o bryd, dim ond yn gwybod bod dyna'r unig reswm. 1383 01:04:45,810 --> 01:04:49,270 Mae'r confensiwn yn JavaScript yn aml i defnyddio dyfynodau sengl, ond gallem ddefnyddio 1384 01:04:49,270 --> 01:04:50,950 dyfynodau dwbl yn y ddau le hefyd. 1385 01:04:50,950 --> 01:04:52,610 >> Felly, mae hyn yn ddiddorol. 1386 01:04:52,610 --> 01:04:56,430 Dwyn i gof tro diwethaf yr oedd ein bod llun ar y sgrin oedd yn tynnu coeden 1387 01:04:56,430 --> 01:04:59,720 lle rydych yn cael y nod HTML, ac mae'r pen nod, a'r corff nod, 1388 01:04:59,720 --> 01:05:00,800 ac yna rhywfaint o destun. 1389 01:05:00,800 --> 01:05:04,700 Ond roedd un nod arbennig yn y top iawn fy mod wedi galw y ddogfen. 1390 01:05:04,700 --> 01:05:08,260 Wel, mae'n troi allan yn JavaScript, unrhyw tro y byddwch yn ysgrifennu rhaglen yn JavaScript 1391 01:05:08,260 --> 01:05:11,040 mewn porwr, gennych fynediad i newidyn byd-eang arbennig. 1392 01:05:11,040 --> 01:05:14,130 Debyg o ran ysbryd i superglobals PHP yn, cael ei alw'n hwn yn 1393 01:05:14,130 --> 01:05:16,050 pob dogfen llythrennau bach. 1394 01:05:16,050 --> 01:05:21,480 >> Mae'n debyg i strwythur, ond mae strwythur hwn hefyd mae ganddo swyddogaethau tu mewn iddo. 1395 01:05:21,480 --> 01:05:23,790 Felly dim ond mae ganddo strwythur C data fel arfer. 1396 01:05:23,790 --> 01:05:29,060 Ond mae gwrthrych JavaScript gan fod hyn yn dechnegol hefyd ganddo swyddogaethau, 1397 01:05:29,060 --> 01:05:31,830 elwir fel arall yn ddulliau, tu mewn iddo. 1398 01:05:31,830 --> 01:05:35,750 A gallwch ffonio swyddogaeth tu mewn gwrthrych yn llythrennol yn gwneud ei 1399 01:05:35,750 --> 01:05:39,610 enw, dot, ac yna enw'r y swyddogaeth, neu eto dull. 1400 01:05:39,610 --> 01:05:41,160 Dim ond yn gyfystyr, mewn gwirionedd. 1401 01:05:41,160 --> 01:05:42,450 >> A beth mae swyddogaeth hon yn ei wneud? 1402 01:05:42,450 --> 01:05:43,840 Gallwch fath o ddyfalu o'i henw. 1403 01:05:43,840 --> 01:05:45,590 Cael elfen erbyn adnabod. 1404 01:05:45,590 --> 01:05:50,040 Felly, mae hyn yn mynd i chwilio'r dudalen ar y we, chwilio y goeden, yn chwilio am 1405 01:05:50,040 --> 01:05:55,210 beth bynnag nod, elfen AKA, mae gan ID unigryw o dyfyniad unquote enw. 1406 01:05:55,210 --> 01:05:56,560 Ac yna beth ydw i'n mynd i'w wneud? 1407 01:05:56,560 --> 01:06:00,350 Rydw i'n mynd i gael y gwerth tu mewn y nod yn y goeden, ac rwy'n mynd 1408 01:06:00,350 --> 01:06:02,580 i ddweud rywsut helo wrth yr enw hwnnw. 1409 01:06:02,580 --> 01:06:05,360 >> Felly, yn cymryd dyfalu, er nad rydym wedi gweld hyn eto, beth mae'r plws 1410 01:06:05,360 --> 01:06:07,396 symbolau yn golygu yma ac yma yn ôl pob tebyg? 1411 01:06:07,396 --> 01:06:08,230 >> GYNULLEIDFA: Concatenate. 1412 01:06:08,230 --> 01:06:09,220 >> DAVID Malan: Concatenate. 1413 01:06:09,220 --> 01:06:11,290 Iawn, ac mae'r rhain yn unig math o dylunio penderfyniadau 1414 01:06:11,290 --> 01:06:12,280 pobl a wnaed o flynyddoedd yn ôl. 1415 01:06:12,280 --> 01:06:15,190 Yn PHP, rydych concatenate pethau gyda dotiau. 1416 01:06:15,190 --> 01:06:18,800 Yn C, yr ydych yn neidio drwy nifer o gylchoedd a ffoniwch swyddogaethau fel strcopy () neu 1417 01:06:18,800 --> 01:06:20,600 strcat () neu swyddogaethau eraill o'r fath. 1418 01:06:20,600 --> 01:06:22,060 Ond yn JavaScript, byddwch yn defnyddio pwyntiau cadarnhaol. 1419 01:06:22,060 --> 01:06:24,770 Felly, mae hyn yn unig yw cydgadwyno tri llinynnau - 1420 01:06:24,770 --> 01:06:27,850 helo, enw, ac yna pwynt ebychnod. 1421 01:06:27,850 --> 01:06:30,390 >> Felly, pryd a pham y mae swyddogaeth hon a elwir er bod? 1422 01:06:30,390 --> 01:06:33,150 Wel, yn cymryd dyfalu oddi wrth y HTML ar y gwaelod. 1423 01:06:33,150 --> 01:06:35,810 Pam fod cyfarch () Enw'r neu pryd? 1424 01:06:35,810 --> 01:06:39,730 1425 01:06:39,730 --> 01:06:44,030 >> Mae'n debyg, fel y gorau gallaf ddweud, ar cyflwyno, pan fydd y ffurflen hon yn cael ei chyflwyno, 1426 01:06:44,030 --> 01:06:47,200 Rydw i'n mynd i wneud beth bynnag sydd tu mewn dyfyniadau hyn. 1427 01:06:47,200 --> 01:06:50,900 Ac yn benodol, yr wyf i'n mynd i alw cyfarch () ac yna dychwelyd ffug. 1428 01:06:50,900 --> 01:06:53,090 >> Wel, gadewch i ni weld beth y rhwyd effaith yma yn gyntaf. 1429 01:06:53,090 --> 01:06:58,290 Felly, gadewch i mi fynd yn ei flaen a theipio i mewn, dyweder, Loren, Cyflwyno. 1430 01:06:58,290 --> 01:06:59,440 Helo Loren. 1431 01:06:59,440 --> 01:07:02,990 Gadewch i ni weld os efallai hyn yn unig oedd gweithrediad lwcus. 1432 01:07:02,990 --> 01:07:03,200 Na. 1433 01:07:03,200 --> 01:07:05,990 Felly, mae'n teipio allan beth bynnag enwi Fi 'n weithredol yn rhoi yno. 1434 01:07:05,990 --> 01:07:07,970 >> Ond sylwi beth sydd ddim yn newid. 1435 01:07:07,970 --> 01:07:10,360 Mae'r URL yn dal i fod dom-0.html. 1436 01:07:10,360 --> 01:07:11,820 Does dim register.php. 1437 01:07:11,820 --> 01:07:13,110 Does dim ail ffeil. 1438 01:07:13,110 --> 01:07:14,930 Does dim priodoledd gweithredu. 1439 01:07:14,930 --> 01:07:19,720 Felly, beth mae hyn yn ffug dychwelyd wneud yn ôl pob tebyg? 1440 01:07:19,720 --> 01:07:23,660 Pam ydw i'n galw cyfarch () ac yna dychwelyd ffug yn ôl pob tebyg? 1441 01:07:23,660 --> 01:07:26,420 Beth sy'n digwydd fel arfer pan fyddwch yn clicio Cyflwyno ar ffurflen a bod hyd yn oed gennym 1442 01:07:26,420 --> 01:07:27,854 gweld yn ystod yr wythnos diwethaf? 1443 01:07:27,854 --> 01:07:29,900 >> GYNULLEIDFA: [Anghlywadwy]. 1444 01:07:29,900 --> 01:07:30,860 >> DAVID Malan: Mae'n mynd yn rhywle, dde? 1445 01:07:30,860 --> 01:07:32,720 Mae'n mynd i ryw URL cyrchfan. 1446 01:07:32,720 --> 01:07:34,120 Ond dydw i ddim am i hynny ddigwydd yma. 1447 01:07:34,120 --> 01:07:37,620 Rwyf am i fy dudalen gwefan hon i fod yn gwbl deinamig fel Gmail, lle unwaith y byddwch chi'n 1448 01:07:37,620 --> 01:07:38,650 yno, byddwch yn aros yno. 1449 01:07:38,650 --> 01:07:42,900 Nid yw'r URL yn newid mewn ffordd sy'n yn nodi y dudalen gyfan yn ail-lwytho. 1450 01:07:42,900 --> 01:07:46,680 Yn hytrach, Fi jyst eisiau newid rhywbeth fel argraffu rhywbeth 1451 01:07:46,680 --> 01:07:48,320 yma ar y sgrin. 1452 01:07:48,320 --> 01:07:49,630 >> Wel gadewch i mi lanhau hyn i fyny ychydig. 1453 01:07:49,630 --> 01:07:55,370 Gadewch i mi agor na dom-0, ond gadewch i mi agor dom-2. 1454 01:07:55,370 --> 01:07:57,350 Yn union fel eich bod wedi gweld rhai gystrawen yma. 1455 01:07:57,350 --> 01:08:02,080 >> Mae'n ymddangos bod hyn yr ydym newydd oedd yn defnyddio JavaScript amrwd. 1456 01:08:02,080 --> 01:08:04,420 Felly, mae hyn yn wir yr iaith JavaScript. 1457 01:08:04,420 --> 01:08:07,340 Efallai y bydd rhai ohonoch yn gwybod am llyfrgell o'r enw jQuery. 1458 01:08:07,340 --> 01:08:09,980 >> Felly nid jQuery yr un fath beth â JavaScript. 1459 01:08:09,980 --> 01:08:14,110 Mae'n dim ond llyfrgell bod wir yn smart guy ysgrifennu a boblogeiddio o'r fath 1460 01:08:14,110 --> 01:08:18,100 bod bron pawb yn y byd yn awr defnyddio jQuery wrth ddefnyddio Javascript. 1461 01:08:18,100 --> 01:08:20,890 Ac ar yr olwg gyntaf, yn onest, mae'n yn edrych ychydig yn fwy cryptig. 1462 01:08:20,890 --> 01:08:24,990 Ond byddwch yn dod o hyd, yn enwedig os byddwch yn mynd yno ar gyfer eich prosiect terfynol gyda gwe 1463 01:08:24,990 --> 01:08:29,029 datblygu, fe welwch fod hwn glanhau pethau i fyny ac yn arbed i chi dipyn o 1464 01:08:29,029 --> 01:08:30,229 ychydig linellau o god. 1465 01:08:30,229 --> 01:08:33,189 >> Felly, gadewch i ni dim ond cipolwg ar sut y y ffurflen hon yn gweithio. 1466 01:08:33,189 --> 01:08:35,664 Sylwi ar yr hyn wnes i dynnu yn ôl pob golwg o fy HTML? 1467 01:08:35,664 --> 01:08:38,240 1468 01:08:38,240 --> 01:08:40,630 Does dim ar gyflwyno trin fel petai. 1469 01:08:40,630 --> 01:08:41,470 Does dim priodoledd. 1470 01:08:41,470 --> 01:08:43,359 Oherwydd eich bod yn gwybod, beth Doeddwn i ddim wir yn ei hoffi? 1471 01:08:43,359 --> 01:08:45,640 Roeddwn yn teimlo fel ein bod yn gostwng i hen arferion yno. 1472 01:08:45,640 --> 01:08:49,340 Yn union fel ei fod yn dechrau teimlo flêr i intermingle ddau CSS gyda 1473 01:08:49,340 --> 01:08:52,149 HTML, oherwydd eich bod yn fath o taflu gwahanol ieithoedd ar draws y 1474 01:08:52,149 --> 01:08:56,180 lle, yn yr un modd oedd hyn yn dechrau teimlo'n fel ffordd ddrwg i fynd i lawr lle 1475 01:08:56,180 --> 01:09:01,069 Im 'yn rhoi cod JavaScript tu mewn fy HTML yn hytrach na ffactoreiddio allan. 1476 01:09:01,069 --> 01:09:02,279 >> Felly dyna y wers yma. 1477 01:09:02,279 --> 01:09:05,080 Yn dom-2.html, rwy'n ffactoreiddio allan. 1478 01:09:05,080 --> 01:09:07,399 Ac yr wyf i'n gwneud pethau ychydig yn wahanol. 1479 01:09:07,399 --> 01:09:09,630 Am y tro, dw i'n mynd i chwifio fy nwylo ar beth mae hyn yn wir yn 1480 01:09:09,630 --> 01:09:10,590 o dan y cwfl. 1481 01:09:10,590 --> 01:09:14,210 Ond dim ond am nawr cymryd yn ganiataol bod yn gyntaf linell o god yn y llyfrgell hon 1482 01:09:14,210 --> 01:09:18,170 a elwir yn jQuery yn unig yn golygu pan fydd y ddogfen yn barod, gwnewch y canlynol. 1483 01:09:18,170 --> 01:09:20,080 >> Oherwydd y gall tudalennau gwe gymryd peth amser i lwytho. 1484 01:09:20,080 --> 01:09:23,029 Efallai eich bod ar y rhyngrwyd araf cysylltiad, a gallai fod yn nyddu 1485 01:09:23,029 --> 01:09:25,290 ac yn troelli, ac yn olaf mae'n llwytho. 1486 01:09:25,290 --> 01:09:29,060 Mae hynny'n linell o god yn unig yn dweud aros hyd nes y dudalen gyfan yn barod, mae'r ddogfen 1487 01:09:29,060 --> 01:09:31,189 yn barod, cyn gweithredu cod hwn. 1488 01:09:31,189 --> 01:09:34,390 >> Ac yn awr yn sylwi, mae hyn yn ôl pob tebyg y mwyaf defnyddiol gyntaf 1489 01:09:34,390 --> 01:09:36,189 cymryd i ffwrdd o jQuery. 1490 01:09:36,189 --> 01:09:42,140 Mae'r llinell yma yn debyg iawn o ran ysbryd i linell llawer hirach hyn yma. 1491 01:09:42,140 --> 01:09:46,920 Tra mewn cod JavaScript crai, mae gwrthrych byd-eang ddogfen yn bodoli sy'n 1492 01:09:46,920 --> 01:09:50,460 mae iddo swyddogaeth o'r enw getElementById (), y bobl a ysgrifennodd 1493 01:09:50,460 --> 01:09:55,720 symleiddio jQuery hynny i ddweud arwydd doler, ac yna tu mewn 1494 01:09:55,720 --> 01:10:00,250 cromfachau yn rhoi dau ddyfynbris, ac yna rhoi symbol hash dilyn gan y 1495 01:10:00,250 --> 01:10:02,250 ID unigryw yr ydych am i afael. 1496 01:10:02,250 --> 01:10:06,170 Felly, mae hyn yn cyfateb i document.getElementById. 1497 01:10:06,170 --> 01:10:11,090 >> Yn y cyfamser,. Cyflwyno yn unig yn golygu ar cyflwyno ba ffurf bynnag y ydych yn 1498 01:10:11,090 --> 01:10:14,240 cyfeirio atynt ar y chwith, ewch ymlaen a gweithredu hyn. 1499 01:10:14,240 --> 01:10:16,600 Ond mae hyn yn awr yn y chwilfrydedd hefyd. 1500 01:10:16,600 --> 01:10:19,560 Beth sy'n rhyfedd am yr hyn y Rwyf wedi tynnu sylw yma? 1501 01:10:19,560 --> 01:10:23,840 1502 01:10:23,840 --> 01:10:28,594 Nid yn unig y mae'n fath o syntactically newydd, mae hefyd yn rhywbeth ar goll. 1503 01:10:28,594 --> 01:10:29,558 >> GYNULLEIDFA: dim ond Mae'n cael ei alw swyddogaeth? 1504 01:10:29,558 --> 01:10:31,970 Nid Mae'n cael ei alw yn effro? 1505 01:10:31,970 --> 01:10:32,440 >> DAVID Malan: Yeah. 1506 01:10:32,440 --> 01:10:35,450 Wel, felly effro () i lawr yma, i fod yn deg. 1507 01:10:35,450 --> 01:10:39,520 Ond nid oes sôn am enw, fel y gwyddoch, foo neu 1508 01:10:39,520 --> 01:10:40,980 rhywbeth i fyny yma. 1509 01:10:40,980 --> 01:10:43,830 Ac yn wir, mae hyn yn un o nodweddion o JavaScript hynny'n eithaf 1510 01:10:43,830 --> 01:10:45,370 pwerus, ond hefyd yn eithaf newydd. 1511 01:10:45,370 --> 01:10:47,460 A PHP mewn gwirionedd wedi hyn hefyd. 1512 01:10:47,460 --> 01:10:49,500 >> Gadewch i mi fynd yn ei flaen ac yn gwneud rhywbeth real gyflym. 1513 01:10:49,500 --> 01:10:52,030 Gadewch i mi fynd yn ei flaen ac yn rhoi hyn allan yma. 1514 01:10:52,030 --> 01:10:52,600 Gadewch i mi wneud hyn. 1515 01:10:52,600 --> 01:10:53,690 Swyddogaeth. 1516 01:10:53,690 --> 01:10:56,455 Gadewch i ni yn galw trafodwr hwn (). 1517 01:10:56,455 --> 01:10:58,290 Swyddogaeth trin fel petai. 1518 01:10:58,290 --> 01:11:00,110 Rhywbeth sy'n delio â rhywfaint o weithredu. 1519 01:11:00,110 --> 01:11:02,700 Gadewch i mi lanhau fy bant. 1520 01:11:02,700 --> 01:11:04,380 A rhoi hyn yma. 1521 01:11:04,380 --> 01:11:06,090 A rhoi hynny yma. 1522 01:11:06,090 --> 01:11:06,470 Yep. 1523 01:11:06,470 --> 01:11:07,060 OK. 1524 01:11:07,060 --> 01:11:10,300 >> Felly nawr gen i swyddogaeth o'r enw trin () nad wyf yn wir yn gwybod 1525 01:11:10,300 --> 01:11:10,890 yr hyn y mae'n ei wneud eto. 1526 01:11:10,890 --> 01:11:12,710 Mae'n dal i fod y pethau yn unig. 1527 01:11:12,710 --> 01:11:13,900 Wps. 1528 01:11:13,900 --> 01:11:15,820 Cymryd gormod. 1529 01:11:15,820 --> 01:11:18,490 Gadewch i ni wneud hyn. 1530 01:11:18,490 --> 01:11:18,990 Mae pob hawl. 1531 01:11:18,990 --> 01:11:20,240 Mae'n ddrwg gennym. 1532 01:11:20,240 --> 01:11:23,140 1533 01:11:23,140 --> 01:11:23,690 Mae pob hawl. 1534 01:11:23,690 --> 01:11:24,720 Gadewch i mi wneud hyn. 1535 01:11:24,720 --> 01:11:25,020 OK. 1536 01:11:25,020 --> 01:11:27,040 Mae hynny'n edrych yn neis ac yn syth ymlaen yn awr. 1537 01:11:27,040 --> 01:11:29,090 Gadewch i mi wneud hyn. 1538 01:11:29,090 --> 01:11:29,860 Gwnewch hyn. 1539 01:11:29,860 --> 01:11:30,950 Ac yn iawn. 1540 01:11:30,950 --> 01:11:33,080 Felly nawr, gadewch i ni roi hyn dros yma. 1541 01:11:33,080 --> 01:11:35,840 1542 01:11:35,840 --> 01:11:37,270 Dim mwy o raglenni ar y hedfan. 1543 01:11:37,270 --> 01:11:37,900 OK. 1544 01:11:37,900 --> 01:11:40,000 >> Felly nawr, gadewch i ni fynd yn ôl i lle y dechreuodd y stori. 1545 01:11:40,000 --> 01:11:43,530 Yn flaenorol, yr wyf yn dweud bod y llinell yma golygu pan fydd y ddogfen yn barod, ewch 1546 01:11:43,530 --> 01:11:44,380 ymlaen a gwneud hyn. 1547 01:11:44,380 --> 01:11:45,660 Beth ydw i am ei wneud? 1548 01:11:45,660 --> 01:11:49,070 Wel yn benodol, yr wyf am i fynd ymlaen a gwneud y canlynol. 1549 01:11:49,070 --> 01:11:53,700 Gweithredu y llinell o god, ac yna yr hyn yr wyf am i chi ei wneud yw galw hyn yn 1550 01:11:53,700 --> 01:11:56,370 gweithredu pan fydd y ffurflen yn cael ei chyflwyno. 1551 01:11:56,370 --> 01:11:57,730 >> Nawr mae hyn yn yr hyn sy'n ddiddorol. 1552 01:11:57,730 --> 01:11:59,170 Nid yw hyn ynddo'i hun yn swyddogaeth. 1553 01:11:59,170 --> 01:12:02,540 Hysbysiad Nid wyf yn rhoi cromfachau yma yn y ffordd arferol. 1554 01:12:02,540 --> 01:12:06,800 Rwy'n llythrennol basio swyddogaeth o'r enw trin () i swyddogaeth arall 1555 01:12:06,800 --> 01:12:10,800 enw chyflwyno () fel dadl yn er ei fod yn debyg i amrywiol. 1556 01:12:10,800 --> 01:12:14,290 Ac mae hyn yn un o nodweddion JavaScript, yn ymdrin â swyddogaethau eu hunain 1557 01:12:14,290 --> 01:12:15,710 yn wir dim ond gwrthrychau. 1558 01:12:15,710 --> 01:12:18,350 Yn wir, maent yn wir yn unig newidynnau o ryw fath. 1559 01:12:18,350 --> 01:12:21,340 Ac os yw enw'r y swyddogaeth yn drafodwr (), nid oes unrhyw reswm na allaf 1560 01:12:21,340 --> 01:12:23,390 ei throsglwyddo i mewn fel dadl yma. 1561 01:12:23,390 --> 01:12:27,530 Ac mae hyn yn golygu pan fydd y ffurflen gyda ID y demo yn 1562 01:12:27,530 --> 01:12:29,320 gyflwynwyd, ffoniwch y swyddogaeth hon. 1563 01:12:29,320 --> 01:12:32,770 >> Ond yn awr, os wyf yn dadwneud yr holl o hyn, Yna, pam wnes i efallai yn gwneud 1564 01:12:32,770 --> 01:12:34,850 hwn funud yn ôl? 1565 01:12:34,850 --> 01:12:36,840 Wel, mae hyn yn swyddogaeth ddienw. 1566 01:12:36,840 --> 01:12:41,080 Oherwydd dweud y gwir, yr wyf yn sylweddoli pam yr ydw i'n trafferthu i wastraff amser datgan 1567 01:12:41,080 --> 01:12:45,540 swyddogaeth a elwir yn trin () yn unig i alw mewn un a dim ond un lle? 1568 01:12:45,540 --> 01:12:48,640 Os nad wyf yn angen yr enw, ac nid wyf yn angen i alw yn fwy nag un lle, 1569 01:12:48,640 --> 01:12:51,200 gadewch i ni dim ond gweithredu'r swyddogaeth iawn lle rwy'n ei angen. 1570 01:12:51,200 --> 01:12:55,190 Ac felly JavaScript a PHP cymorth hyn yn cael eu galw'n swyddogaethau dienw sy'n 1571 01:12:55,190 --> 01:12:57,900 caniatáu i mi i wneud yn union hynny yma. 1572 01:12:57,900 --> 01:12:59,570 >> Ond rydym yn dim ond crafu'r wyneb. 1573 01:12:59,570 --> 01:13:02,430 Gadewch i ni tynnu coes gyda dim ond cwpl enghreifftiau terfynol yma. 1574 01:13:02,430 --> 01:13:04,600 >> Os byddaf yn mynd i mewn i quote.php. 1575 01:13:04,600 --> 01:13:07,160 1576 01:13:07,160 --> 01:13:11,870 Sylwch fod hyn mewn gwirionedd yn PHP swyddogaeth, rhaglen PHP, a ysgrifennais 1577 01:13:11,870 --> 01:13:15,270 sy'n disgwyl yn baramedr HTTP a elwir yn symbol, a gallaf basio i mewn 1578 01:13:15,270 --> 01:13:16,730 gwerth fel FB. 1579 01:13:16,730 --> 01:13:20,010 Ac os ydym mewn gwirionedd yn edrych ar y ffynhonnell cod, mae hyn yn ymholi wefan rhad ac am ddim 1580 01:13:20,010 --> 01:13:23,680 enw Yahoo Cyllid, yn union fel p-set saith, ac mae'n dychwelyd i mi 1581 01:13:23,680 --> 01:13:26,580 rhywbeth yn debyg y fformat a elwir yn JSON - 1582 01:13:26,580 --> 01:13:28,010 Nodiant Gwrthrych JavaScript. 1583 01:13:28,010 --> 01:13:28,810 Dim ond gwrthrych. 1584 01:13:28,810 --> 01:13:32,500 Sylwch ar y braces cyrliog, y dyfyniadau, y colon, a'r atalnodau. 1585 01:13:32,500 --> 01:13:34,720 >> Nawr yn y cyfamser, mae hyn yn 'n bert oera. 1586 01:13:34,720 --> 01:13:38,520 Oherwydd y gall yr wyf yn ôl pob tebyg yn defnyddio rhaglenni iaith i gynhyrchu URLs 1587 01:13:38,520 --> 01:13:40,370 sy'n edrych fel hyn yn ddeinamig, iawn? 1588 01:13:40,370 --> 01:13:43,340 Gallaf newid hyn i Google a mynd yn ôl Google 1589 01:13:43,340 --> 01:13:47,930 pris stoc o $ 1,017.55. 1590 01:13:47,930 --> 01:13:49,640 Felly, gadewch i ni weld os na allwn ddefnyddio hyn nawr. 1591 01:13:49,640 --> 01:13:56,590 >> Gadewch i mi fynd i Ajax-0 yma, sy'n edrych fel y canlynol. 1592 01:13:56,590 --> 01:13:59,750 Mae'n dim ond gwefan sydd wedi ffurflen gyda botwm. 1593 01:13:59,750 --> 01:14:05,860 Gadewch i mi yma fynd yn ei flaen a theipiwch yn YHOO am y symbol stoc Yahoo, cliciwch Get 1594 01:14:05,860 --> 01:14:10,530 Dyfyniad, ac yn awr yn sylwi rydw i wedi gotten neges gyda 32.86. 1595 01:14:10,530 --> 01:14:14,050 >> Gadewch i mi mewn gwirionedd yn mynd i fersiwn ffansi y dudalen hon, fersiwn dau, a 1596 01:14:14,050 --> 01:14:17,530 fath yn gadewch i ni yn dweud Microsoft, MSFT. 1597 01:14:17,530 --> 01:14:18,410 Get Quote. 1598 01:14:18,410 --> 01:14:19,850 Ac yn awr sylwi, dim rhybudd. 1599 01:14:19,850 --> 01:14:22,770 Hysbysiad lle mae'n dweud pris i'w benderfynu? 1600 01:14:22,770 --> 01:14:27,060 Mae symlaf o enghreifftiau a awgrymiadau ar ba Gchat, a Facebook 1601 01:14:27,060 --> 01:14:30,070 Sgwrs, a Gmail, ac eraill o'r fath gwefannau yn ei wneud trwy gwirionedd 1602 01:14:30,070 --> 01:14:31,290 newid y dudalen we. 1603 01:14:31,290 --> 01:14:31,800 >> Sylwi ar hyn. 1604 01:14:31,800 --> 01:14:33,120 Gadewch i mi ail-lwytho y dudalen. 1605 01:14:33,120 --> 01:14:35,080 Gadewch i mi agor Arolygydd Chrome yn. 1606 01:14:35,080 --> 01:14:36,890 Gadewch i mi fynd i'r elfennau tab i lawr yma. 1607 01:14:36,890 --> 01:14:42,310 Nawr sylwi os byddaf yn chwyddo i mewn i lawr yma ac agor yr hyd, sylwi bod hyn yn fy 1608 01:14:42,310 --> 01:14:44,500 HTML DOM - fy nogfen model gwrthrych. 1609 01:14:44,500 --> 01:14:45,920 Mae hyn yn fy HTML. 1610 01:14:45,920 --> 01:14:48,750 Ond yn awr yn sylwi, hyd yn oed er ei fod yn mynd i fod ychydig yn anodd ei weld yn y ddwy 1611 01:14:48,750 --> 01:14:52,080 le ar unwaith, os wyf yn teipio FB i fyny yma, gwyliwch y gwaelod 1612 01:14:52,080 --> 01:14:54,110 y sgrin yn unig. 1613 01:14:54,110 --> 01:14:57,720 >> Mae'n newid mewn gwirionedd fy HTML ar y hedfan. 1614 01:14:57,720 --> 01:15:01,670 Ac mae'n gwneud hyn yn eithaf syml drwy wneud rhywbeth fel hyn. 1615 01:15:01,670 --> 01:15:06,800 Os byddaf yn agor Ajax-2, sylwch gweithredu rhywbeth mor sexy fel 1616 01:15:06,800 --> 01:15:09,560 , hyd yn oed er 'i' eithaf hyll, ond soffistigedig â hynny 1617 01:15:09,560 --> 01:15:11,910 swyddogaethol, mae rhai HTML ar y gwaelod. 1618 01:15:11,910 --> 01:15:13,810 Ond sylwi Roeddwn i'n arfer i tag. 1619 01:15:13,810 --> 01:15:16,640 Nid ydym wedi defnyddio hyn o'r blaen, ond mae hyn yn fel, ond nid yw'n gorfodi 1620 01:15:16,640 --> 01:15:17,840 popeth ar linell newydd. 1621 01:15:17,840 --> 01:15:20,830 Mae'n gwneud ardal hirsgwar ar yr un llinell yn y bôn. 1622 01:15:20,830 --> 01:15:22,870 >> Hysbysiad a roddais yn ID yn y pris. 1623 01:15:22,870 --> 01:15:26,800 Ac mae'n troi allan drwy ddefnyddio'r un Llyfrgell JavaScript, mae gennyf swyddogaeth 1624 01:15:26,800 --> 01:15:30,440 Gelwir dyfyniad () sy'n cael ei alw pryd bynnag y y ffurflen yn cael ei chyflwyno. 1625 01:15:30,440 --> 01:15:31,800 A beth rwy'n ei wneud yw hyn. 1626 01:15:31,800 --> 01:15:35,730 Rwy'n datgan amrywiol o ran JavaScript a elwir yn url, gan arbed gwerth 1627 01:15:35,730 --> 01:15:38,650 quote.php? symbol =. 1628 01:15:38,650 --> 01:15:44,220 Mewn geiriau eraill, yr wyf fy hun wyf yn dechrau i baratoi cais HTTP, ac yna 1629 01:15:44,220 --> 01:15:49,250 Rwy'n cydgadwyno ar hynny gyda mwy beth bynnag yr elfen gyda'r ID 1630 01:15:49,250 --> 01:15:54,190 o symbol yw, yr hysbysiad yw bod maes testun i'r dde i lawr yma. 1631 01:15:54,190 --> 01:15:56,630 Felly, yn union fel oedd gennym ffurflenni yn y gorffennol. 1632 01:15:56,630 --> 01:16:01,450 >> Ac yna mae'n troi allan yn jQuery, os ydych yn ffonio. val (), sy'n galw o val 1633 01:16:01,450 --> 01:16:05,900 swyddogaeth, swyddogaeth gwerth, sy'n cael beth bynnag yw'r defnyddiwr wedi teipio i mewn 1634 01:16:05,900 --> 01:16:08,920 Ac yna yr holl draffig rhwydwaith sy'n digwydd yw hyn. 1635 01:16:08,920 --> 01:16:11,230 $. GetJSON. 1636 01:16:11,230 --> 01:16:13,720 >> Ac wrth fynd heibio, arwydd doler yn dim ond nodiant llaw-fer. 1637 01:16:13,720 --> 01:16:16,860 Mae'n wirioneddol jQuery.getJSON. 1638 01:16:16,860 --> 01:16:21,520 Mynd i mi i JSON o'r URL, a phan y cais yn dod yn ôl, galw hyn 1639 01:16:21,520 --> 01:16:26,550 swyddogaeth ac yn pasio i mewn fel y ddadl beth bynnag daeth yn ôl oddi wrth y gweinydd. 1640 01:16:26,550 --> 01:16:31,205 >> Felly, mewn geiriau eraill, os byddaf yn mynd yn ôl at y porwr, ac yr wyf yn mynd yn ôl i quote.php, 1641 01:16:31,205 --> 01:16:35,590 beth yw fy porwr yn ei wneud yn mynd yn darn hwn o ddata. 1642 01:16:35,590 --> 01:16:38,930 A phan fyddaf yn mynd at y dudalen we yma, rhybudd os ydym yn hytrach ewch i'r rhwydwaith 1643 01:16:38,930 --> 01:16:43,820 tab ac yn glir, ac yna teipiwch rhywbeth fel GOOG ar gyfer Google a Get 1644 01:16:43,820 --> 01:16:46,340 Dyfyniad, sylwch nad oedd y dudalen yn newid. 1645 01:16:46,340 --> 01:16:50,990 Ond mae cais HTTP ei wneud, a beth daeth yn ôl yma os ydym yn edrych ar y 1646 01:16:50,990 --> 01:16:56,130 ymateb criw cyfan o JSON ein bod yn gweld diwedd gyda 1647 01:16:56,130 --> 01:16:58,070 y llinell hon syml yma. 1648 01:16:58,070 --> 01:17:00,150 >> Mae data ar yr hyn a gotten o'r gweinydd. 1649 01:17:00,150 --> 01:17:02,120 Price yn enw'r allweddol Rwy'n poeni am. 1650 01:17:02,120 --> 01:17:05,230 Felly data.price rhoi i mi hynny. 1651 01:17:05,230 --> 01:17:07,540 >> Nawr yn y cyfamser, ac mae hyn yn yw'r enghraifft olaf. 1652 01:17:07,540 --> 01:17:09,280 Gallwch wneud hyd yn oed mwy ar y dudalen. 1653 01:17:09,280 --> 01:17:12,440 Un mewn gwirionedd, wel dau. 1654 01:17:12,440 --> 01:17:14,780 Gallwn ddod yn ôl y tag, os ydych yn cofio hyn. 1655 01:17:14,780 --> 01:17:15,850 Dyna JavaScript. 1656 01:17:15,850 --> 01:17:17,110 Gallwn wneud hynny. 1657 01:17:17,110 --> 01:17:17,690 Gyffrous iawn. 1658 01:17:17,690 --> 01:17:18,800 Byddwn yn gadael hynny fel Cliffhanger. 1659 01:17:18,800 --> 01:17:21,590 >> Ond yn fwy cyffrous, gallwch gwneud pethau fel hyn. 1660 01:17:21,590 --> 01:17:25,940 Os byddaf yn mynd i geolocation-1, mae'n troi allan sy'n Chrome yn gwybod ein bod yn 1661 01:17:25,940 --> 01:17:30,672 hydred lledred 42.37. -71.10. 1662 01:17:30,672 --> 01:17:32,940 Felly, mae hyd yn oed yn fwy yno ar gael i chi. 1663 01:17:32,940 --> 01:17:34,290 Ond mwy am hynny yr wythnos nesaf. 1664 01:17:34,290 --> 01:17:35,540 Welwn ni chi ddydd Llun. 1665 01:17:35,540 --> 01:17:37,558