1 00:00:00,000 --> 00:00:11,330 2 00:00:11,330 --> 00:00:12,360 >> Дэвід Малан: Добра. 3 00:00:12,360 --> 00:00:15,970 Гэта CS50, і гэта канец тыдня дзевяці. 4 00:00:15,970 --> 00:00:18,560 Гэта быў віхура над за апошнія некалькі дзён. 5 00:00:18,560 --> 00:00:21,580 І праблема ўсталяваць сем, калі вы калена глыбока ў яе, зразумець, ці ёсць даволі 6 00:00:21,580 --> 00:00:23,340 трохі новага, што там унутры. 7 00:00:23,340 --> 00:00:26,660 Але давайце паглядзім, калі мы не можам сабраць ўсе разам тут коратка 8 00:00:26,660 --> 00:00:29,230 да гэтага згортвацца ў яшчэ іншае напрамак і бачанне 9 00:00:29,230 --> 00:00:30,510 дзе яшчэ мы можам пайсці. 10 00:00:30,510 --> 00:00:32,630 >> Так да гэтага часу, мы гаварылі пра HTML. 11 00:00:32,630 --> 00:00:33,740 Мы гаварылі аб CSS. 12 00:00:33,740 --> 00:00:34,705 Мы гаварылі пра PHP. 13 00:00:34,705 --> 00:00:36,520 Вы пачалі адчуваць SQL. 14 00:00:36,520 --> 00:00:38,360 Сёння мы пагаворым крыху аб JavaScript. 15 00:00:38,360 --> 00:00:41,230 Але як усе гэтыя разрозненыя мовы спалучаюцца адзін з адным? 16 00:00:41,230 --> 00:00:44,970 >> Таму мы гаварылі на мінулым тыдні пра Паняцце які мае сервер. 17 00:00:44,970 --> 00:00:48,470 Так што давайце проста намаляваць гэты прастакутнік якасці вэб-сервера тут. 18 00:00:48,470 --> 00:00:52,200 І вэб-сервер служыць, безумоўна, файлы. 19 00:00:52,200 --> 00:00:54,640 І некаторыя з гэтых файлаў можа быць HTML файлы. 20 00:00:54,640 --> 00:00:58,270 Такім чынам, адна з рэчаў, якія вэб-сервер можа выплюнуць можа быць файл, які быў 21 00:00:58,270 --> 00:01:01,290 мы проста маляваць, як гэта які змяшчае некаторы HTML. 22 00:01:01,290 --> 00:01:04,786 Так з пункту гледжання непрафесіяналы, што робіць HTML дазволіць вам зрабіць? 23 00:01:04,786 --> 00:01:06,036 >> Залы: добра выглядаць. 24 00:01:06,036 --> 00:01:09,670 25 00:01:09,670 --> 00:01:12,310 >> Дэвід Малан: Добра, зрабіць старонку выглядаць прыгожа, хоць я думаю, я даказаў 26 00:01:12,310 --> 00:01:13,370 што ў адваротным выпадку. 27 00:01:13,370 --> 00:01:18,250 Так HTML браўзэр дазваляюць выкласці старонак структурна, і гэта дазваляе 28 00:01:18,250 --> 00:01:22,410 роду эстэтычна звярстаць старонку, пазначаць статычнага кантэнту, так што вы 29 00:01:22,410 --> 00:01:23,640 Затым можна праглядзець з дапамогай вэб-браўзэра. 30 00:01:23,640 --> 00:01:24,690 >> Але гэта ключ. 31 00:01:24,690 --> 00:01:26,130 Гэта статычны кантэнт. 32 00:01:26,130 --> 00:01:28,590 Вы пішаце, вы захавайце яго, а затым вы грузіце яго. 33 00:01:28,590 --> 00:01:31,130 І вэб-сервер затым служыць гэта да вашых наведвальнікаў. 34 00:01:31,130 --> 00:01:35,700 >> Але мы стылізаваць рэчы, выкарыстоўваючы розныя мова ў цэлым. 35 00:01:35,700 --> 00:01:40,150 Мы пачалі выкарыстоўваць атрыбут стылю на пэўных тэгаў. 36 00:01:40,150 --> 00:01:43,400 І атрыбут стылю пакладзем рэчы, як памер і колер шрыфта. 37 00:01:43,400 --> 00:01:46,460 І вы, верагодна, адкрылі для сябе, ці вы хутка для канчатковага 38 00:01:46,460 --> 00:01:50,160 праекты патэнцыйна, ўсё ж іншыя ўласцівасці, якія можна выкарыстоўваць у CSS. 39 00:01:50,160 --> 00:01:54,710 І так з пункту гледжання непрафесіяналы, што сапраўды ж тады CSS рабіць? 40 00:01:54,710 --> 00:01:57,810 Гэта ўсяго толькі прыклады іх. 41 00:01:57,810 --> 00:02:00,730 Што гэта дазволіць вам зрабіць гэта HTML здаецца, не ад таго, што 42 00:02:00,730 --> 00:02:02,606 мы бачылі да гэтага часу? 43 00:02:02,606 --> 00:02:04,850 >> АЎДЫТОРЫЯ: Вызначыць стылі самастойна. 44 00:02:04,850 --> 00:02:06,700 >> Дэвід Малан: Вызначыць стылі самастойна. 45 00:02:06,700 --> 00:02:10,280 Так вызначаюць рэчы, як класы, як вы напэўна сустракалі, або адназначна 46 00:02:10,280 --> 00:02:13,800 ідэнтыфікаваць вузлы ў дакуменце так што вы можаце стылізаваць іх. 47 00:02:13,800 --> 00:02:16,890 Але больш канкрэтна, я б сказаў, што CSS сапраўды дазваляе рабіць рэчы 48 00:02:16,890 --> 00:02:20,790 апошняй мілі і дазваляе задаць шмат дакладней эстэтыка, 49 00:02:20,790 --> 00:02:24,340 у той час як HTML па большай частцы дазваляе структураваць свае старонкі. 50 00:02:24,340 --> 00:02:27,310 >> І хоць ёсць некаторыя змаўчанні, як мы ўбачылі пазнаку для 51 00:02:27,310 --> 00:02:30,690 загаловак тэг, які, груба кажучы, зрабіў рэчы вялікі і тоўсты. 52 00:02:30,690 --> 00:02:34,250 Гэта даволі агульнае вызначэнне тэга - вялікі і тоўсты. 53 00:02:34,250 --> 00:02:35,260 Які памер шрыфта з'яўляецца тое, што? 54 00:02:35,260 --> 00:02:36,080 Што гэта колер? 55 00:02:36,080 --> 00:02:36,890 Як смелы гэта? 56 00:02:36,890 --> 00:02:39,830 І CSS дазваляе вам больш дакладна наладжваць такія рэчы. 57 00:02:39,830 --> 00:02:42,150 Гэтак жа як размяшчэнне, так як некаторыя з вас бачылі. 58 00:02:42,150 --> 00:02:45,180 >> І, шчыра кажучы, CSS трохі Бязладна мове. 59 00:02:45,180 --> 00:02:48,370 Гэта вельмі магутны ў тым, што вы можаце зрабіць літаральна любы вэб-сайт, што вы 60 00:02:48,370 --> 00:02:51,880 бачыў у Інтэрнэце сёння з ім, але гэта выгляд болю ў шыі. 61 00:02:51,880 --> 00:02:54,440 І некаторыя з вас ударыў галавой супраць сценаў ужо проста зрабіць 62 00:02:54,440 --> 00:02:58,560 глупства як цэнтра па меню Праблема ўсталяваць сем, калі вы дайшлі да 63 00:02:58,560 --> 00:02:59,470 што кропка ўжо. 64 00:02:59,470 --> 00:03:01,530 >> Але зразумейце, тыя рэчы, становіцца лягчэй з часам. 65 00:03:01,530 --> 00:03:02,820 Вы пачынаеце заўважаць заканамернасці. 66 00:03:02,820 --> 00:03:06,020 І зноў жа, Google будзе вашым сябрам для розных спосабаў, якімі вы можаце 67 00:03:06,020 --> 00:03:07,220 вырашыць падобныя праблемы. 68 00:03:07,220 --> 00:03:11,520 >> І я адважуся сказаць, з CSS, і HTML больш звычайна, вы можаце вырашыць праблемы ў 69 00:03:11,520 --> 00:03:15,910 шмат іншых спосабаў, кожны з якіх мог бы вельмі добра быць правільным, чым вы маглі б 70 00:03:15,910 --> 00:03:18,900 у чымсьці накшталт C, нават Цяпер PHP або JavaScript. 71 00:03:18,900 --> 00:03:21,080 Ёсць толькі шмат розных спосабы ляжалі рэчы. 72 00:03:21,080 --> 00:03:22,570 >> Але гэта пачаў атрымліваць брудны, мы сказалі. 73 00:03:22,570 --> 00:03:26,480 Проста выгляд змешванне ваш HTML і ваш CSS з атрыбутам стылю было 74 00:03:26,480 --> 00:03:27,590 трохі неахайны. 75 00:03:27,590 --> 00:03:31,460 І такім чынам мы замест сказаў, свайго роду абстрактна кажучы, што вы павінны 76 00:03:31,460 --> 00:03:34,050 па меншай меры, пачаць фактару з вашага CSS, верагодна. 77 00:03:34,050 --> 00:03:37,430 Атрыбуты не ваш стыль, але па меншай меры выкарыстоўваць тэг стыль ўнутры таго, што 78 00:03:37,430 --> 00:03:38,840 частка вэб-старонкі? 79 00:03:38,840 --> 00:03:39,560 >> АЎДЫТОРЫЯ: заг. 80 00:03:39,560 --> 00:03:40,120 >> Дэвід Малан: У галаве. 81 00:03:40,120 --> 00:03:43,270 Да гэтага часу ў нас быў толькі тытул да там, але вы таксама можаце дадаць стыль 82 00:03:43,270 --> 00:03:47,230 пазначыць, і вы можаце пакласці ваш CSS прыкладна кажучы да верхняй частцы старонкі. 83 00:03:47,230 --> 00:03:52,550 Але тады мы ўзялі рэчы на ​​адзін крок далей і мы ўлічылі, што больш 84 00:03:52,550 --> 00:03:54,130 ў асобны файл. 85 00:03:54,130 --> 00:03:57,240 >> І вось гэтыя два файла былі неяк цяпер звязаныя. 86 00:03:57,240 --> 00:03:59,550 І на самай справе гэта было тэг, які зрабіў гэта. 87 00:03:59,550 --> 00:04:02,920 І тое, што быў адным з ўсёабдымных Матывы факторынгу наш CSS 88 00:04:02,920 --> 00:04:04,057 тым больш? 89 00:04:04,057 --> 00:04:05,280 >> АЎДЫТОРЫЯ: Пры частым выкарыстанне. 90 00:04:05,280 --> 00:04:05,785 >> Дэвід Малан: Пры частым выкарыстанне. 91 00:04:05,785 --> 00:04:06,150 Ці не так? 92 00:04:06,150 --> 00:04:09,470 Магчыма, вы бачылі ў р-ўсталяваць сем ужо што шмат старонак, 93 00:04:09,470 --> 00:04:12,260 купля старонка, старонка продаж, Партфель старонкі, верагодна 94 00:04:12,260 --> 00:04:13,550 структураваная некалькі аналагічна. 95 00:04:13,550 --> 00:04:17,579 Там у CS50 фінансаў лагатып у верхняй калі вы не вырашылі змяніць гэта. 96 00:04:17,579 --> 00:04:19,839 Там у падвал на Дно старонак. 97 00:04:19,839 --> 00:04:24,315 І CSS дазваляе затым да фактару яго гэта ў асобны файл, так што калі 98 00:04:24,315 --> 00:04:27,780 Вы хочаце нешта змяніць у глабальным маштабе праз увесь сайт, вы можаце сапраўды 99 00:04:27,780 --> 00:04:29,390 проста змяніць яго ў адным месцы. 100 00:04:29,390 --> 00:04:32,750 >> Але ёсць цана, якую вы плаціце патэнцыйна Маючы факторизовали 101 00:04:32,750 --> 00:04:38,380 CSS ад майго HTML файла ў асобны падаць на яго спасылаюцца з 102 00:04:38,380 --> 00:04:40,650 тэг, які мы бачылі ў панядзелак. 103 00:04:40,650 --> 00:04:43,850 Што можа недахоп быць гэта? 104 00:04:43,850 --> 00:04:48,830 Успамінаючы тыдзень таму, калі мы казаць пра HTTP і TCP / IP і як 105 00:04:48,830 --> 00:04:52,070 Інтэрнэт працуе. 106 00:04:52,070 --> 00:04:53,530 Нешта тут? 107 00:04:53,530 --> 00:04:54,730 >> АЎДЫТОРЫЯ: Гэта займае больш часу. 108 00:04:54,730 --> 00:04:55,470 >> Дэвід Малан: Гэта займае больш часу. 109 00:04:55,470 --> 00:04:56,750 Чаму? 110 00:04:56,750 --> 00:04:59,450 >> АЎДЫТОРЫЯ: [неразборліва]. 111 00:04:59,450 --> 00:04:59,750 >> Дэвід Малан: Так. 112 00:04:59,750 --> 00:05:01,240 Так што, магчыма, зойме трохі больш часу. 113 00:05:01,240 --> 00:05:04,290 Таму што адзін, CSS, відавочна, не ў тым жа файле. 114 00:05:04,290 --> 00:05:06,920 Так што цяпер вы павінны зрабіць ня адзін, але два запыту. 115 00:05:06,920 --> 00:05:11,230 І кожны з гэтых запытаў, як мы бачылі ў Chrome ў так званай інспектара, 116 00:05:11,230 --> 00:05:15,740 і мы глядзелі на ўкладцы сеткі, кожны з гэтых файлаў патрабуецца адзін HTTP 117 00:05:15,740 --> 00:05:18,360 Запыт, які мы бачылі бярэ некаторы колькасць часу. 118 00:05:18,360 --> 00:05:19,290 Цяпер, можа быць, гэта не так шмат. 119 00:05:19,290 --> 00:05:20,670 Можа быць, гэта ўсяго ў 20 мілісекунд. 120 00:05:20,670 --> 00:05:22,260 Можа быць, гэта 200 мілісекунд. 121 00:05:22,260 --> 00:05:25,530 >> Але думаць пра старонку, як Facebook, або CNN, або Google, якія нашмат 122 00:05:25,530 --> 00:05:28,060 больш, чым прыкладах, якія мы паглядзеў на да гэтага часу. 123 00:05:28,060 --> 00:05:32,070 Гэтыя старонкі могуць мець дзясяткі файлаў, кожны з якіх можа запатрабаваць 124 00:05:32,070 --> 00:05:33,550 загрузка файла. 125 00:05:33,550 --> 00:05:35,800 Так рэчы могуць патэнцыйна пачынаюць запавольвацца. 126 00:05:35,800 --> 00:05:39,280 >> І асабліва ў гэтыя дні, калі ўсе мы ёсць мабільныя тэлефоны ў нашых кішэнях і 127 00:05:39,280 --> 00:05:43,010 нізкахуткаснаму падключэнні да Інтэрнэту, маючы неабходнасць пачакайце яшчэ некалькі мілісекунд, некалькі 128 00:05:43,010 --> 00:05:46,110 больш мілісекунд для дадатковага файлы могуць быць на самай справе павольна. 129 00:05:46,110 --> 00:05:50,430 Затрымка гэтае слова, якое апісвае выгляд чакае, што ў вас ёсць, што вам 130 00:05:50,430 --> 00:05:53,110 выпрабаваць пры чаканні некаторыя частка інфармацыі. 131 00:05:53,110 --> 00:05:54,430 >> Але ёсць і станоўчая бок. 132 00:05:54,430 --> 00:05:56,600 Так што гэта не ўсё накшталт - 133 00:05:56,600 --> 00:05:58,170 на самай справе гэта крыху арэлі тут. 134 00:05:58,170 --> 00:06:02,970 Ніжняя бок цяпер, але тое, што браўзэры могуць зрабіць калі яны разумныя, каб пазбегнуць 135 00:06:02,970 --> 00:06:08,870 таго, каб прасіць ж styles.css падаць зноў можа быць, каб рабіць тое, што? 136 00:06:08,870 --> 00:06:09,390 >> Кэш яго. 137 00:06:09,390 --> 00:06:10,370 Так кэшавання - 138 00:06:10,370 --> 00:06:11,690 C-A-C-H-E - 139 00:06:11,690 --> 00:06:15,810 як правіла, азначае тут толькі, каб захаваць файл, які вы прасілі ў першы раз, і 140 00:06:15,810 --> 00:06:17,440 затым праверыць кэш для яго. 141 00:06:17,440 --> 00:06:20,400 Праверце, што ты накшталт кантэйнера для захоўвання, і калі ў вас ужо ёсць 142 00:06:20,400 --> 00:06:24,520 копія styles.css, нават калі некаторыя іншыя старонкі ў р-набору, або любога вэб-сайта, 143 00:06:24,520 --> 00:06:28,560 просіць яго зноў, проста каб даць Карыстальнік ў тым жа захаваная копія. 144 00:06:28,560 --> 00:06:30,140 Не турбуйцеся патрабуючы яго. 145 00:06:30,140 --> 00:06:32,560 >> Ніжняя бок ёсць, хоць, як некаторыя з вас ўжо спатыкнуўся ў р-набору. 146 00:06:32,560 --> 00:06:35,870 Калі вы ўносіце змены на серверы і вы ідзяце назад у браўзэр, і вы 147 00:06:35,870 --> 00:06:39,250 перазагрузіць, часам браўзэр робіць Вы ласку і не турбуе 148 00:06:39,250 --> 00:06:43,660 паўторна загружаючы ваш styles.css файл таму што, давай, якія шанцы 149 00:06:43,660 --> 00:06:47,620 што гэтыя стылі, якія выкарыстоўвае Facebook збіраемся змяніць гадзіну, каб гадзіну ці 150 00:06:47,620 --> 00:06:48,140 з дня ў дзень? 151 00:06:48,140 --> 00:06:48,800 Гэта даволі нізкі. 152 00:06:48,800 --> 00:06:52,260 Яны могуць мяняцца з цягам часу, але не з кожнай хвілінай або па гадзінах. 153 00:06:52,260 --> 00:06:55,810 >> Так трук, проста FYI, робячы вэб- развіццё, часта утрымліваючы 154 00:06:55,810 --> 00:06:59,500 перакласці ключ, напрыклад, і затым націсніце кнопку перазагрузіць ў вашым браўзэры, і гэта будзе 155 00:06:59,500 --> 00:07:03,280 звычайна сказаць перазагрузкі браўзэра усё, нават калі ў вас ужо ёсць 156 00:07:03,280 --> 00:07:04,180 гэта ў кэшы. 157 00:07:04,180 --> 00:07:06,630 Такім чынам, яшчэ раз, плюсы і мінусы, але ўсе яны 158 00:07:06,630 --> 00:07:08,260 у канчатковым рахунку, праектных рашэннях. 159 00:07:08,260 --> 00:07:11,520 >> Так што цяпер, мы не зрабілі ўсяго скончыць гісторыю тут. 160 00:07:11,520 --> 00:07:15,790 Калі б я цяпер вярнуцца назад і назад і назад і таму, мы пачалі ўкараняць не толькі 161 00:07:15,790 --> 00:07:18,060 HTML, але PHP. 162 00:07:18,060 --> 00:07:20,786 Так з пункту гледжання непрафесіяналы, што робіць PHP давайце рабіць? 163 00:07:20,786 --> 00:07:22,770 >> АЎДЫТОРЫЯ: [неразборліва]. 164 00:07:22,770 --> 00:07:24,258 >> Дэвід Малан: Што гэта? 165 00:07:24,258 --> 00:07:25,250 >> АЎДЫТОРЫЯ: Представьтесь логіку у код. 166 00:07:25,250 --> 00:07:26,620 >> Дэвід Малан: Так, увесці Логіка ў код. 167 00:07:26,620 --> 00:07:29,570 Так што гэта праўда мова праграмавання з завес, і зменныя, а таксама 168 00:07:29,570 --> 00:07:32,620 функцыі і ўмовы, і ўсё рэчы мы выкарыстоўвалі шлях назад 169 00:07:32,620 --> 00:07:33,780 калі з нуля. 170 00:07:33,780 --> 00:07:36,780 І PHP, мы бачылі, могуць быць выкарыстаны альбо ў камандным радку - гэта 171 00:07:36,780 --> 00:07:39,190 не павінен мець нічога агульнага з Інтэрнэту, хоць гэта 172 00:07:39,190 --> 00:07:43,150 сапраўды яго паходжанне і тое, што яна мае тэндэнцыю быць добрым і спрыяе - 173 00:07:43,150 --> 00:07:47,130 але вы можаце выкарыстоўваць PHP проста па сваёй прыродзе аб тым, што ён мае пячатку () 174 00:07:47,130 --> 00:07:49,660 функцыя, а Е функцыя (), або рэха () функцыю. 175 00:07:49,660 --> 00:07:52,440 Там у пучкі спосабаў, якімі Вы можа друкаваць тэкст з PHP. 176 00:07:52,440 --> 00:07:56,540 >> Такім чынам, вы можаце выкарыстоўваць гэтую праграмаванне мова для вываду дакладна 177 00:07:56,540 --> 00:07:58,460 пра што мы гаварылі раней. 178 00:07:58,460 --> 00:08:01,360 Вы можаце дынамічна генераваць ваш HTML. 179 00:08:01,360 --> 00:08:02,300 Можа быць, не ўсё гэта. 180 00:08:02,300 --> 00:08:06,460 Можа быць, вы жорсткія код рэчы, як загаловак, а ў ніжнім, і лагатып, 181 00:08:06,460 --> 00:08:07,950 і вашы табліцы стыляў, і ўсё гэта. 182 00:08:07,950 --> 00:08:11,190 Але за тое, як у я-ўсталяваць сем, дзе вы манипулируете запасаў і 183 00:08:11,190 --> 00:08:14,690 паказваючы партфель карыстальніка, які з'яўляецца збіраецца дынамічна змяняць, можна 184 00:08:14,690 --> 00:08:18,960 , Вядома, выкарыстоўваць PHP і логіку, ён дае Вы ў якасці мовы праграмавання для 185 00:08:18,960 --> 00:08:22,320 Выхад дынамічна падмноства старонкі. 186 00:08:22,320 --> 00:08:25,900 >> Таму, калі вы кажаце пра дынамічных вэб-сайтаў, або вэб-праграмаванне, вось 187 00:08:25,900 --> 00:08:27,200 тое, што вы на самай справе гаворым пра. 188 00:08:27,200 --> 00:08:31,450 Выкарыстанне мовы як PHP, або рэчы называецца Python, або Рубі або Java, або 189 00:08:31,450 --> 00:08:35,900 пакуль іншыя мовы, запыт да базы дадзеных часта, або іншы сервер, і 190 00:08:35,900 --> 00:08:38,580 затым дынамічна выплюнуць HTML. 191 00:08:38,580 --> 00:08:42,470 >> Цяпер канчатковы вынік, як у баку, з'яўляецца што HTML большасці вэб-сайтаў, 192 00:08:42,470 --> 00:08:45,970 у тым ліку ваш п-ўсталяваць сем, гэта, верагодна, будзе велізарны беспарадак, калі 193 00:08:45,970 --> 00:08:48,060 вы паглядзіце на крыніцу код у браўзэры. 194 00:08:48,060 --> 00:08:49,010 Гэта не мае вялікага значэння. 195 00:08:49,010 --> 00:08:51,550 На дадзены момант, калі мы клапоцімся пра стыль, мы клапоцімся аб 196 00:08:51,550 --> 00:08:52,740 рэчы, якія вы пішаце. 197 00:08:52,740 --> 00:08:56,240 Мы не будзем клапаціцца пра рэчы што тое, што вашы выхады код. 198 00:08:56,240 --> 00:08:59,520 Так што не турбуйцеся аб водступу тут, калі гэта PHP гэта 199 00:08:59,520 --> 00:09:01,190 на самай справе вываду рэчы. 200 00:09:01,190 --> 00:09:04,430 У рэшце рэшт, браўзэр не будзе клапаціцца, і чалавек не будзе глядзець 201 00:09:04,430 --> 00:09:05,400 каля крыніцы ў любым выпадку. 202 00:09:05,400 --> 00:09:09,000 Мы супрацоўнікі, напрыклад, былі б быць гледзячы на ​​ваш PHP. 203 00:09:09,000 --> 00:09:13,440 >> Такім чынам, дазвольце мне даць хуткі прыклад зараз яшчэ аб тым, чаму гэта можа быць карысна. 204 00:09:13,440 --> 00:09:18,620 Так што, шчыра кажучы, я не магу ўспомніць, калі апошні раз я выкарыстаў C, каб вырашыць праблему ў 205 00:09:18,620 --> 00:09:19,620 рэальны свет. 206 00:09:19,620 --> 00:09:22,330 Гэта было, верагодна, у аспірантуры, калі Я павінен быў выкарыстоўваць мову, які 207 00:09:22,330 --> 00:09:26,710 быў даволі нізкім узроўні, і даў мне магчымасць зрабіць што-то вельмі высокае 208 00:09:26,710 --> 00:09:30,720 выканання, каб сапраўды захаваць як шмат CPU цыклы, як мог, у значнай ступені 209 00:09:30,720 --> 00:09:33,990 таму што я выкарыстаў велізарныя наборы дадзеных, і кожны CPU цыклу ўлічваецца. 210 00:09:33,990 --> 00:09:37,750 І, шчыра кажучы, нават у тым, як тэлефоны гэтыя дні і іншыя прылады 211 00:09:37,750 --> 00:09:39,910 дзе вы не дастаткова мець столькі памяці, і вы не дастаткова мець у якасці 212 00:09:39,910 --> 00:09:44,160 шмат рэсурсаў працэсара, выкарыстоўваючы больш хуткія мовах па-ранейшаму прывабным. 213 00:09:44,160 --> 00:09:47,290 >> Аднак у рэальным свеце, калі вы проста хачу кінуць нейкую праграму разам, каб 214 00:09:47,290 --> 00:09:50,340 прааналізаваць некаторыя дадзеныя, ці вы сабралі цэлая куча рэгістрацый 215 00:09:50,340 --> 00:09:53,330 некаторыя групы студэнтаў, і вы хочаце вельмі хутка аўтаматызаваць адпраўкі электроннай пошты 216 00:09:53,330 --> 00:09:56,240 па адным для кожнай з гэтых рэгістрацыю, вы збіраецеся дасягнуць за 217 00:09:56,240 --> 00:09:59,240 на мове высокага ўзроўню З чым, так бы мовіць. 218 00:09:59,240 --> 00:10:04,060 Нешта накшталт PHP або Python, ці Сячы, або паўтузіна іншых, якія існуюць 219 00:10:04,060 --> 00:10:04,550 у гэтыя дні. 220 00:10:04,550 --> 00:10:07,200 Але тыя тры, верагодна, самы модны цяпер. 221 00:10:07,200 --> 00:10:10,840 >> А што гэта азначае, што вы можаце адкрыць да тэкставым рэдактарам, напрыклад Gedit або 222 00:10:10,840 --> 00:10:14,030 ў нешта яшчэ, а затым проста пачаць напісанне кода, не турбуючыся 223 00:10:14,030 --> 00:10:17,800 аб кампіляцыі, без неабходнасці сапраўды турбавацца аб кіраванні памяццю, 224 00:10:17,800 --> 00:10:20,820 маючы на ​​ўвазе, што хоць трохі разгільдзяйства, у канчатковым рахунку вярнуцца 225 00:10:20,820 --> 00:10:24,790 , Каб ўкусіць вас, калі набор дадзеных атрымлівае больш або праблема становіцца вялікі. 226 00:10:24,790 --> 00:10:27,230 Але што гэта азначае для нас заключаецца ў наступным. 227 00:10:27,230 --> 00:10:29,860 >> Дазвольце мне ісці наперад і працаваць спеллер з няшчасных ўсталяваць шэсць. 228 00:10:29,860 --> 00:10:33,480 Так што гэта мой сінтаксічнага дрэва на аснове рэалізацыі , Які я выкарыстаў на вялікім 229 00:10:33,480 --> 00:10:35,500 дошка, на якой я выступаў не вельмі добра. 230 00:10:35,500 --> 00:10:38,720 Мы вернемся праз тыдзень і вярнуцца тых, хто ў канчатковым выніку на вяршыні 231 00:10:38,720 --> 00:10:40,430 вялікая дошка на нашай апошняй лекцыі. 232 00:10:40,430 --> 00:10:44,520 Але цяпер, дазвольце мне ісці наперад і проста маё рашэнне працаваць у тэкставым, і мы зробім 233 00:10:44,520 --> 00:10:48,460 Бібліі караля Джэймса, і тут мы ідзем. 234 00:10:48,460 --> 00:10:51,080 >> Такім чынам, гэта ўсё, маўляў, словы з памылкамі з 235 00:10:51,080 --> 00:10:52,240 Бібліі караля Джэймса. 236 00:10:52,240 --> 00:10:55,560 І ўзяў маю рэалізацыю паўсекунды ў агульнай складанасці. 237 00:10:55,560 --> 00:10:58,270 Так што не так ужо дрэнна на гэтым канкрэтнага кампутара. 238 00:10:58,270 --> 00:11:01,540 Але падумайце пра тое, колькі код, які я павінен быў напісаць. 239 00:11:01,540 --> 00:11:02,880 Падумайце, колькі кода трэба было пісаць. 240 00:11:02,880 --> 00:11:06,170 Падумайце, колькі гадзін вы правялі ў D-зале або ў інтэрнат ці там, дзе 241 00:11:06,170 --> 00:11:07,890 на самай справе кадавання да гэтага рашэння. 242 00:11:07,890 --> 00:11:11,850 >> Ну, калі я на самой справе маюць больш высокі ўзровень мова, як PHP, прыняць да ведама 243 00:11:11,850 --> 00:11:13,350 што я магу зрабіць тут. 244 00:11:13,350 --> 00:11:16,410 Выкажам здагадку спачатку, што гэта замест вашага дыстрыбутыва кода. 245 00:11:16,410 --> 00:11:17,790 Гэты файл называецца правапісу. 246 00:11:17,790 --> 00:11:20,220 Яна даступная як частка сённяшняй Размеркаванне кода. 247 00:11:20,220 --> 00:11:22,670 І я збіраюся махнуць рукой не больш пра дэталі, але гэта на самай справе 248 00:11:22,670 --> 00:11:25,500 цікавы прыклад таго, як Вы маглі б партаваць мовы 249 00:11:25,500 --> 00:11:28,870 як C да PHP. 250 00:11:28,870 --> 00:11:33,420 Я літаральна адкрыў два тэкставых вокнаў, адзін з маёй версіяй C speller.c, 251 00:11:33,420 --> 00:11:36,960 і я проста пачаў перакладаць яго ў маёй накіравацца ў PHP і набраўшы яго з дапамогай 252 00:11:36,960 --> 00:11:38,840 Бліжэйшым эквівалентам функцыі. 253 00:11:38,840 --> 00:11:40,100 >> Такім чынам, некаторыя з іх усё па-іншаму. 254 00:11:40,100 --> 00:11:43,730 Мы бачылі ў апошні раз, што PHP не выкарыстоўвае ўключыць у цалкам гэтак жа. 255 00:11:43,730 --> 00:11:47,050 Ён выкарыстоўвае звычайна патрабуюць, хоць ўключаюць існуе. 256 00:11:47,050 --> 00:11:50,330 Вызначыць гэта мала чым адрозніваецца ад # Вызначыць ў C, але гэта 257 00:11:50,330 --> 00:11:51,890 як мы робім пастаянна. 258 00:11:51,890 --> 00:11:55,860 $ ARGC аказваецца, існуе ў PHP, Такім чынам, мы разгледзелі, што раней. 259 00:11:55,860 --> 00:11:58,650 Гэта толькі зменныя, усё якія пачынаюцца са знака даляра. 260 00:11:58,650 --> 00:12:00,590 Нагадаем, гэта проста куча лікаў з якая плавае кропкай. 261 00:12:00,590 --> 00:12:03,970 >> Так карацей кажучы, вы заўсёды можаце прагортваць гэта, калі цікава, гэта 262 00:12:03,970 --> 00:12:10,010 Амаль лініі для лініі пераўтварэнні C версіі speller.c ў PHP. 263 00:12:10,010 --> 00:12:12,630 І вы можаце зрабіць гэта зноў паўтузіна іншых мовах. 264 00:12:12,630 --> 00:12:14,910 >> Але што цікава, гэтая. 265 00:12:14,910 --> 00:12:16,910 Ці тое, што адкрыта роспач гэта. 266 00:12:16,910 --> 00:12:20,790 Дазвольце мне ісці наперад і аб тыпе dictionary.php, і сцвярджаюць, што я 267 00:12:20,790 --> 00:12:23,670 збіраюся ісці наперад і паўторна рэалізаваць Праблема тут ўсталяваць шэсць. 268 00:12:23,670 --> 00:12:27,530 >> Такім чынам, давайце спачатку, што прапанаваць у гэтым файл, які будзе ажыццяўляцца ў 269 00:12:27,530 --> 00:12:30,550 PHP, таму дазвольце мне адкрыць мой тэгі, як, што. 270 00:12:30,550 --> 00:12:34,780 Дазвольце мне прывесці сябе глабальную зменную $ памерам атрымлівае нуля. 271 00:12:34,780 --> 00:12:36,710 І я збіраюся даць сябе хэш-табліцы. 272 00:12:36,710 --> 00:12:38,110 Я буду выкарыстоўваць хэш-табліцу для гэтай рэчы. 273 00:12:38,110 --> 00:12:42,070 Як заяўляюць хэш-табліцы на PHP? 274 00:12:42,070 --> 00:12:42,990 Гатова. 275 00:12:42,990 --> 00:12:43,980 ОК. 276 00:12:43,980 --> 00:12:48,870 >> Так адкрытыя кранштэйны кранштэйны ўяўляе блізка Тое, што ў PHP, як мы ўжо бачылі? 277 00:12:48,870 --> 00:12:51,850 Масіва, але масіў, які мог быць асацыятыўным масівам. 278 00:12:51,850 --> 00:12:54,320 Асацыятыўны масіў структура дадзеных, якая 279 00:12:54,320 --> 00:12:55,860 асацыіраваных са значэннямі ключоў. 280 00:12:55,860 --> 00:12:59,430 >> Зараз у найпростых лікавымі індэксамі Масіў гэтыя клавішы, і што? 281 00:12:59,430 --> 00:13:02,250 282 00:13:02,250 --> 00:13:03,960 Нуль, адзін, два, тры, ці не так? 283 00:13:03,960 --> 00:13:08,780 Старыя рэчы назад са школы С. Але яна можа таксама радкі тыпу Foo, і бар, 284 00:13:08,780 --> 00:13:12,210 або Максвелла, або чаго-небудзь падобнага радка. 285 00:13:12,210 --> 00:13:14,240 Так што я магу выкарыстоўваць гэта праз хвіліну. 286 00:13:14,240 --> 00:13:17,550 >> Дазвольце мне пайсці далей і аб'явіць функцыі, як - 287 00:13:17,550 --> 00:13:19,020 давайце зробім нагрузкі () першым. 288 00:13:19,020 --> 00:13:20,690 Так функцыі Load (). 289 00:13:20,690 --> 00:13:23,440 І PHP трохі адрозніваюцца тым, што вы літаральна ўвесці функцыю, але вы 290 00:13:23,440 --> 00:13:24,930 ня ўводзьце тып якое вяртаецца значэння. 291 00:13:24,930 --> 00:13:28,760 Я збіраюся пайсці далей і сказаць, што нагрузка () павінна ўзяць у 292 00:13:28,760 --> 00:13:31,000 Аргумент $ слоўніку, проста як C версіі зрабіў. 293 00:13:31,000 --> 00:13:32,510 Я раблю гэта з памяці. 294 00:13:32,510 --> 00:13:34,910 >> І я прапаную, што я збіраюся зрабіць гэта. 295 00:13:34,910 --> 00:13:37,080 Я проста збіраюся зрабіць па кожнаму элементу. 296 00:13:37,080 --> 00:13:40,710 Я збіраюся выклікаць функцыю названую File (), перадаўшы яму імя гэтага 297 00:13:40,710 --> 00:13:44,990 файле, які з'яўляецца зменнай $ $ Слоўнік як словы. 298 00:13:44,990 --> 00:13:49,410 А потым ўнутры майго цыклу тут, я збіраюся ісці наперад і захоўваць у маім 299 00:13:49,410 --> 00:13:57,440 $ $ Табліцы, слова атрымлівае сапраўднае. 300 00:13:57,440 --> 00:13:57,918 Гатова. 301 00:13:57,918 --> 00:14:01,264 Ой, пачакайце. 302 00:14:01,264 --> 00:14:02,422 Гатова. 303 00:14:02,422 --> 00:14:02,760 ОК. 304 00:14:02,760 --> 00:14:04,970 >> Гэта значыць нагрузка () функцыя кажуць у PHP. 305 00:14:04,970 --> 00:14:05,865 Цяпер, чаму гэта працуе? 306 00:14:05,865 --> 00:14:07,010 І я накшталт падману тут. 307 00:14:07,010 --> 00:14:09,980 >> Так, адзін, мы бачылі Еогеасп коратка апошні раз. 308 00:14:09,980 --> 00:14:13,680 Гэта проста азначае, што вы можаце перабору Масіў не турбуючыся я 309 00:14:13,680 --> 00:14:16,150 і п і плюс плюс, і ўсё такое. 310 00:14:16,150 --> 00:14:21,350 Слоўнік, вядома, імя файла, нешта накшталт вялікага ці малога, два 311 00:14:21,350 --> 00:14:22,830 Слоўнікі мы выкарыстоўвалі ў апошні раз. 312 00:14:22,830 --> 00:14:26,715 Выява з'яўляецца функцыяй, якая адкрывае тэкст файл, счытвае яго ў радок за радком, і 313 00:14:26,715 --> 00:14:29,840 рукі рэзервовае велізарны масіў, кожны з элементаў якога 314 00:14:29,840 --> 00:14:31,340 радок з гэтага файла. 315 00:14:31,340 --> 00:14:36,040 Дык вось спалучэнне FOPEN і FREAD, і ў той час цыкла і FCLOSE, 316 00:14:36,040 --> 00:14:37,080 і ўсё гэта. 317 00:14:37,080 --> 00:14:40,150 Нарэшце, як слова проста азначае, што гэта пераменная Я збіраюся мець доступ да 318 00:14:40,150 --> 00:14:41,890 на кожнай ітэрацыі ў гэтым цыкле. 319 00:14:41,890 --> 00:14:46,910 >> Карацей кажучы, гэта адзін лайнер тут азначае адкрыць файл, імя якога знаходзіцца ў 320 00:14:46,910 --> 00:14:50,750 слоўнік, зменная, перабор яго радок за радком, і кожны раз вы атрымаеце 321 00:14:50,750 --> 00:14:54,290 лініі, захоўваць ў зменнай словам, а затым зрабіць што-то са словам. 322 00:14:54,290 --> 00:14:55,280 Што я хачу зрабіць? 323 00:14:55,280 --> 00:14:58,110 Я хачу паставіць слова ў мой хэш-табліцу. 324 00:14:58,110 --> 00:15:00,860 >> Ну, я магу пакласці што-то ў маёй хэш-табліцы як і ў C 325 00:15:00,860 --> 00:15:02,140 выкарыстоўваючы квадратныя дужкі. 326 00:15:02,140 --> 00:15:03,660 Гэта імя для майго хэш-табліцу. 327 00:15:03,660 --> 00:15:07,180 Я збіраюся індэкс ў хэш стол у гэтым месцы. 328 00:15:07,180 --> 00:15:08,920 Так што не кранштэйнам нуль, а не аднаго кранштэйна. 329 00:15:08,920 --> 00:15:11,990 Кранштэйн двукоссях нешта, што б гэтае слова. 330 00:15:11,990 --> 00:15:15,200 І гэтак жа, як вы маглі б мець у сваім Хэш сінтаксічнага дрэва працоўны стол, вы проста захоўваць 331 00:15:15,200 --> 00:15:17,650 эфектыўна лагічны, няяўна ці відавочна. 332 00:15:17,650 --> 00:15:18,260 Гатова. 333 00:15:18,260 --> 00:15:20,000 Я захоўваю праўдзівае значэнне. 334 00:15:20,000 --> 00:15:23,150 >> Зараз ёсць некалькі рэчаў, Я зразання кутоў на тут. 335 00:15:23,150 --> 00:15:27,720 Тэхнічна, гэта будзе раздражняе новы радок, / п, у канцы 336 00:15:27,720 --> 00:15:28,820 кожнае з гэтых словаў. 337 00:15:28,820 --> 00:15:31,770 Так што я, верагодна, варта выклікаць функцыю PHP называецца Чоп (), які будзе 338 00:15:31,770 --> 00:15:33,460 літаральна секчы, што па-за. 339 00:15:33,460 --> 00:15:35,020 І я на самой справе трэба зрабіць яшчэ адну рэч. 340 00:15:35,020 --> 00:15:38,380 Я, верагодна, варта павялічыць памер на кожнай ітэрацыі, так што я адсочванне 341 00:15:38,380 --> 00:15:39,560 глабальна, што гэта такое. 342 00:15:39,560 --> 00:15:43,180 І, шчыра кажучы, і гэта з'яўляецца адной з дурней аспектаў PHP, калі вы 343 00:15:43,180 --> 00:15:46,950 з дапамогай глабальнай зменнай, неабходна відавочна сказаць, што вы. 344 00:15:46,950 --> 00:15:51,670 Так што я збіраюся надрукаваць адвольны глабальнай $ Памерам, глабальныя табліцы $, а цяпер 345 00:15:51,670 --> 00:15:52,690 мой функцыі завершана. 346 00:15:52,690 --> 00:15:57,475 >> Так што не так проста, як раней, але , Верагодна, заняў менш часу, чым C 347 00:15:57,475 --> 00:15:58,220 версіі, можа быць? 348 00:15:58,220 --> 00:15:58,730 ОК. 349 00:15:58,730 --> 00:16:00,390 >> Такім чынам, зараз давайце зробім Check () функцыю. 350 00:16:00,390 --> 00:16:04,300 Давайце паглядзім, калі гэта па меншай меры ўзяў гадзін запар, што ён узяў нас у С. Так 351 00:16:04,300 --> 00:16:06,500 Дазвольце мне пайсці далей і аб'явіць праверыць як функцыя. 352 00:16:06,500 --> 00:16:09,070 Прымае аргумент ў слова, будзе зыходзіць ад правапісу. 353 00:16:09,070 --> 00:16:13,410 І я проста хачу, каб праверыць, калі Наступны пераменная Исеть, настольны 354 00:16:13,410 --> 00:16:18,400 Кранштэйн strtolower слова - 355 00:16:18,400 --> 00:16:20,590 давайце збалансаваць усе мае дужках - 356 00:16:20,590 --> 00:16:24,275 затым вярнуцца праўда. 357 00:16:24,275 --> 00:16:27,020 358 00:16:27,020 --> 00:16:28,460 Астатняе - 359 00:16:28,460 --> 00:16:30,330 , Які быў сапраўды жорсткі частка гэтай праграмы. 360 00:16:30,330 --> 00:16:31,940 У адваротным выпадку, вяртанне ілжывым. 361 00:16:31,940 --> 00:16:32,630 Гатова. 362 00:16:32,630 --> 00:16:33,460 Гэта праверка (). 363 00:16:33,460 --> 00:16:34,520 >> Цяпер, чаму гэта працуе? 364 00:16:34,520 --> 00:16:37,040 Ну, той, які я прайшоў у слове, які з'яўляецца радком. 365 00:16:37,040 --> 00:16:41,400 Два, я правяраю ўнутры хэш табліцу, якая называецца табліцай $. 366 00:16:41,400 --> 00:16:45,470 Я прымушаючы яго ў ніжні рэгістр па тэлефоне Функцыя вельмі падобная ToLower () у 367 00:16:45,470 --> 00:16:48,580 C, але гэта ўсё словы, Не адзін знак. 368 00:16:48,580 --> 00:16:52,680 І калі ўстаноўлена, іншымі словамі, ўяўляе сабой зададзенае значэнне, іншымі словамі, 369 00:16:52,680 --> 00:16:54,880 калі гэта праўда, то так, гэтае слова. 370 00:16:54,880 --> 00:16:56,530 Таму што я паклаў яго туды з грузам (). 371 00:16:56,530 --> 00:16:59,100 А калі не, я збіраюся вярнуцца ілжывым. 372 00:16:59,100 --> 00:17:00,090 >> Цяпер іншыя лёгка. 373 00:17:00,090 --> 00:17:03,570 Функцыя памер (), як я магу гэта зрабіць? 374 00:17:03,570 --> 00:17:05,230 Я па сутнасці сапраўды вяртаюцца $ памеры. 375 00:17:05,230 --> 00:17:07,770 Але я тэхнічна трэба зрабіць гэта раздражняльная рэч. 376 00:17:07,770 --> 00:17:10,640 А на самай справе да пачуць, я рэзаў адзін кут занадта шмат. 377 00:17:10,640 --> 00:17:12,920 Я сапраўды трэба зрабіць глабальную $ табліцы. 378 00:17:12,920 --> 00:17:16,260 >> Але гэта, як той казаў, выгрузка). 379 00:17:16,260 --> 00:17:17,380 Выгрузіць () з'яўляецца дзіўным. 380 00:17:17,380 --> 00:17:20,500 Функцыя выгрузкі (). 381 00:17:20,500 --> 00:17:23,990 Як жа я хачу ажыццявіць разгрузку ()? 382 00:17:23,990 --> 00:17:25,079 Гатова. 383 00:17:25,079 --> 00:17:25,450 ОК. 384 00:17:25,450 --> 00:17:28,900 >> Так выгрузіць (), кіраванне памяццю цалкам клапаціцца для вас у 385 00:17:28,900 --> 00:17:31,800 нешта накшталт PHP і многае з моў высокага ўзроўню. 386 00:17:31,800 --> 00:17:32,600 Так што гэта дзіўна. 387 00:17:32,600 --> 00:17:36,080 Напрыклад, чаму, чорт вазьмі, мы правялі мінулае плюс восем тыдняў пісаць C 388 00:17:36,080 --> 00:17:41,030 мабыць вельмі павольна, вельмі шмат часу шмат праблем з дзясяткаў гадзін 389 00:17:41,030 --> 00:17:42,530 працы пад нашымі паясамі? 390 00:17:42,530 --> 00:17:46,110 >> Ну, з аднаго боку, гэта можа працаваць штраф за невялікія праграмы. 391 00:17:46,110 --> 00:17:47,840 Гэта, вядома, паскорыла маё час распрацоўкі. 392 00:17:47,840 --> 00:17:49,790 Але давайце паглядзім, што адбудзецца у рэальным свеце. 393 00:17:49,790 --> 00:17:52,370 >> Адпусціце мяне ў гэты каталог у акне тэрмінала. 394 00:17:52,370 --> 00:17:53,370 Там у арфаграфіі. 395 00:17:53,370 --> 00:17:56,570 І звярніце ўвагу, як у баку, і вы можаце сутыкнуліся з гэтай праблемай у камплекце 396 00:17:56,570 --> 00:17:58,190 шасці або праблема ўсталяваць сем. 397 00:17:58,190 --> 00:18:01,610 Вы не павінны строга канец PHP файлаў з пашырэннем. PHP. 398 00:18:01,610 --> 00:18:05,250 Калі вы змесціце радок, што першая на самага верху, гэта адмысловая лінія 399 00:18:05,250 --> 00:18:10,980 сінтаксісу, якія па сутнасці азначае знайсці праграма пад назвай PHP і выкарыстоўваць яго для 400 00:18:10,980 --> 00:18:12,270 інтэрпрэтаваць гэты файл. 401 00:18:12,270 --> 00:18:15,410 Так што цяпер ніхто не ведае, што Я бягу PHP праграмы. 402 00:18:15,410 --> 00:18:19,860 Я магу запусціць яго проста, як быццам гэта былі чымсьці складзена ў C. 403 00:18:19,860 --> 00:18:20,650 >> Але вось у чым справа. 404 00:18:20,650 --> 00:18:21,600 На самай справе, давайце зробім гэта зноў. 405 00:18:21,600 --> 00:18:23,530 Dropbox/pset6 /. 406 00:18:23,530 --> 00:18:25,390 Там у арфаграфіі. 407 00:18:25,390 --> 00:18:26,720 ОК, 0,44 секунд. 408 00:18:26,720 --> 00:18:28,080 Ён атрымаў на гэты раз хутчэй. 409 00:18:28,080 --> 00:18:29,745 >> Зараз давайце ўвойдзем у версіі PHP. 410 00:18:29,745 --> 00:18:43,070 411 00:18:43,070 --> 00:18:44,320 Прыемная рыса. 412 00:18:44,320 --> 00:18:50,830 413 00:18:50,830 --> 00:18:53,285 Але падумайце, колькі часу Я захаваў у офісе гадзін. 414 00:18:53,285 --> 00:18:56,990 415 00:18:56,990 --> 00:18:57,790 ОК. 416 00:18:57,790 --> 00:19:01,020 >> Так 3,59 секунд, што на самой справе Гучыць не дакладныя небудзь. 417 00:19:01,020 --> 00:19:03,710 Але гэта таму, карацей кажучы, калі вы друкуеце з велізарнай колькасці 418 00:19:03,710 --> 00:19:06,840 матэрыялу на экран, што Сам запавольвае працу. 419 00:19:06,840 --> 00:19:11,260 Што гэта сапраўды ўзяў працэсар у Прыбор быў 3,59 секунды, у 420 00:19:11,260 --> 00:19:15,260 У адрозненне ад C, які адбыўся 0,44 секунд у апошні час. 421 00:19:15,260 --> 00:19:17,620 Гэта сапраўды на парадак Велічыня розныя. 422 00:19:17,620 --> 00:19:20,280 >> Дык дзе ж, што кошт прыходзяць? 423 00:19:20,280 --> 00:19:21,790 Чаму гэта так значна больш павольна? 424 00:19:21,790 --> 00:19:24,220 Чаму PHP выконваць так дрэнна? 425 00:19:24,220 --> 00:19:25,242 Даніэль? 426 00:19:25,242 --> 00:19:26,550 >> АЎДЫТОРЫЯ: Вы сапраўды не выкарыстоўваць хэш-табліцу. 427 00:19:26,550 --> 00:19:27,710 >> Дэвід Малан: я сапраўды не выкарыстоўваць хэш-табліцу. 428 00:19:27,710 --> 00:19:28,760 Так я накшталт зрабіў. 429 00:19:28,760 --> 00:19:29,870 Так што гэта асацыятыўны масіў. 430 00:19:29,870 --> 00:19:33,650 Хутчэй за ўсё, калі людзі на PHP з'яўляюцца вельмі разумныя, яны выкарыстоўвалі пад 431 00:19:33,650 --> 00:19:39,520 капот фактычны хэш-табліца рэалізаваны у чымсьці накшталт C ці C + +. 432 00:19:39,520 --> 00:19:41,290 Але. 433 00:19:41,290 --> 00:19:42,760 Так. 434 00:19:42,760 --> 00:19:44,010 >> АЎДЫТОРЫЯ: [неразборліва]. 435 00:19:44,010 --> 00:19:46,690 436 00:19:46,690 --> 00:19:47,080 >> Дэвід Малан: Так. 437 00:19:47,080 --> 00:19:50,780 Такім чынам, кожны з функцый я напісаў цяпер - на самай справе, вы можаце сказаць, што яшчэ раз 438 00:19:50,780 --> 00:19:51,480 трохі гучней? 439 00:19:51,480 --> 00:19:54,509 >> АЎДЫТОРЫЯ: Кожная з функцый, якія Вы ўключылі мае нашмат больш поўны 440 00:19:54,509 --> 00:19:56,610 Ёмістасць, чым - 441 00:19:56,610 --> 00:19:57,550 >> Дэвід Малан: Дык вось вельмі дакладна. 442 00:19:57,550 --> 00:20:01,490 Там вельмі шмат больш накладныя выдаткі, што мы на самай справе не бачачы, засяродзіўшы ўвагу толькі на 443 00:20:01,490 --> 00:20:03,730 dictionary.php, якія я толькі што напісаў. 444 00:20:03,730 --> 00:20:08,020 З іншага боку, ёсць цэлы перакладчык збіраецца ў фонавым рэжыме. 445 00:20:08,020 --> 00:20:12,040 На самай справе, калі я запусціў гэтую праграму, яна ня быў запушчаны, складзеныя з нулёў і адзінак 446 00:20:12,040 --> 00:20:14,290 прызначаны для майго Intel CPU. 447 00:20:14,290 --> 00:20:19,270 Хутчэй, гэта быў бягучы радок за радком PHP код, які выглядае гэтак жа, 448 00:20:19,270 --> 00:20:20,350 як мы ўвялі яго. 449 00:20:20,350 --> 00:20:22,475 І таму, калі вы карыстаецеся інтэрпрэтаваная мова, вы 450 00:20:22,475 --> 00:20:23,850 на самай справе заплаціць гэтую цану. 451 00:20:23,850 --> 00:20:27,010 Гэта зойме некаторы час, каб прачытаць Ваш файл зверху ўніз, злева 452 00:20:27,010 --> 00:20:30,740 Добра, а затым выканаць кожны лінія зноў і зноў. 453 00:20:30,740 --> 00:20:34,250 >> Зараз на самай справе, асабліва ў Інтэрнэце, Вы можаце фактычна паскорыць гэты працэс 454 00:20:34,250 --> 00:20:38,660 за кошт кэшавання вынікаў PHP код інтэрпрэтуецца. 455 00:20:38,660 --> 00:20:41,640 І гэта мае сэнс у Інтэрнэце, таму што калі ў вас ёсць не адзін карыстальнік, як 456 00:20:41,640 --> 00:20:46,300 мяне тут, але 1000 або 10000 карыстальнікаў, то можа быць, у першы раз файл 457 00:20:46,300 --> 00:20:49,050 Доступ гэта павольна, але пасля гэтага гэта нашмат хутчэй. 458 00:20:49,050 --> 00:20:51,000 >> Але гэта таксама, зноў жа, кампраміс. 459 00:20:51,000 --> 00:20:53,870 І за тое, як навуковых дадзеных ўсталяваць, ці нават нешта вялікае, як 460 00:20:53,870 --> 00:20:58,330 гэта, вашы карыстальнікі ў канчатковым выніку пачынаеце адчуваць, што запаволенне. 461 00:20:58,330 --> 00:21:02,670 >> Карацей кажучы, інтэрпрэтаваць мовы вельмі ў модзе, вельмі папулярныя, і 462 00:21:02,670 --> 00:21:06,710 адкрыта, верагодна, мовы, якія павінен дасягнуць для пры вырашэнні задач 463 00:21:06,710 --> 00:21:08,200 пасля CS50. 464 00:21:08,200 --> 00:21:12,720 Але разумееце, колькі вы на самой справе прымаючы як належнае пад капотам 465 00:21:12,720 --> 00:21:15,910 сапраўды гэтыя апошнія некалькі тыдняў у хэш сталы, і дрэвы, і спрабуе, 466 00:21:15,910 --> 00:21:20,770 якія выкарыстоўваюцца ў канчатковым рахунку, на самай справе рэалізаваць такія рэчы, як якая адкрывае дужкі, 467 00:21:20,770 --> 00:21:24,200 квадратныя дужкі, якую мы можам зараз з удзячнасцю ўспрымаем як належнае. 468 00:21:24,200 --> 00:21:26,360 >> Такім чынам, давайце паглядзім цяпер на гэтым вэб-кантэксце. 469 00:21:26,360 --> 00:21:29,890 І я ўжо казаў у мінулы раз, што ёсць куча суперглобальных ў PHP, што 470 00:21:29,890 --> 00:21:32,490 на самай справе не актуальныя у камандным радку. 471 00:21:32,490 --> 00:21:36,210 Яны больш актуальным у кантэксце выкарыстання PHP ў вэб-кантэксце. 472 00:21:36,210 --> 00:21:41,220 Так працуе PHP на вэб-серверы для таго, для стварэння рэчы, як HTML. 473 00:21:41,220 --> 00:21:44,540 >> І мы зірнуў на $ _GET і $ _POST, вось дзе аўтаматычна карыстальнікі ' 474 00:21:44,540 --> 00:21:49,100 ўваход заканчваецца проста, калі вы прадставіць сфармаваць ў файл з пашырэннем. PHP на вэб 475 00:21:49,100 --> 00:21:50,460 Сервер, як машыны. 476 00:21:50,460 --> 00:21:53,310 Але давайце коратка разгледзім $ _COOKIE І $ _SESSION. 477 00:21:53,310 --> 00:21:56,670 >> З пункту гледжання непрафесіяналы, што такое печыва, як Вы разумееце гэта ў кантэксце 478 00:21:56,670 --> 00:21:58,220 з дапамогай вэб? 479 00:21:58,220 --> 00:21:59,450 >> АЎДЫТОРЫЯ: Выява на кампутары. 480 00:21:59,450 --> 00:21:59,920 >> Дэвід Малан: Так. 481 00:21:59,920 --> 00:22:03,500 Гэта файл на кампутары карыстальніка пасаджаныя ўсё вэб-сайт 482 00:22:03,500 --> 00:22:04,410 вам пашчасціла наведаць. 483 00:22:04,410 --> 00:22:07,334 Так што, калі вы ідзяце ў Facebook, калі вы ідзяце каб bankofamerica.com, калі вы ідзяце 484 00:22:07,334 --> 00:22:10,330 на google.com, калі вы ідзяце ў амаль любы сайт у свеце ў гэтыя дні, 485 00:22:10,330 --> 00:22:14,850 у тым ліку cs50.net, печыва пасадзіў на вашым кампутары, які з'яўляецца 486 00:22:14,850 --> 00:22:19,800 альбо значэнне, якое захоўваецца ў аператыўнай памяці ў вашым Кампутар у памяці браўзэра, або 487 00:22:19,800 --> 00:22:22,800 часам сапраўды файл, які захоўваецца на цвёрдым дыску. 488 00:22:22,800 --> 00:22:26,960 >> І што, як правіла, захоўваецца ў гэтым файле не імя карыстальніка, не ваш 489 00:22:26,960 --> 00:22:31,060 пароль, як правіла, ня тое, адчувальныя, калі сайт не не так 490 00:22:31,060 --> 00:22:35,040 добра з іх бяспекі, а хутчэй гэта вялікі унікальны ідэнтыфікатар сярод 491 00:22:35,040 --> 00:22:35,680 іншае. 492 00:22:35,680 --> 00:22:38,920 Гэта вялікая выпадковы лік пасадзілі на вашым кампутар, але вы можаце думаць аб якасці 493 00:22:38,920 --> 00:22:42,740 роду віртуальны ручной штамп, як ад клуб ці некаторыя парк атракцыёнаў, што 494 00:22:42,740 --> 00:22:47,160 дазваляе персаналу, уладальнікі, што абслугоўванне, каб памятаць, хто ты. 495 00:22:47,160 --> 00:22:51,030 Такім чынам, калі вялікая выпадковае лік, як 12345678, хоць гэта, відавочна, 496 00:22:51,030 --> 00:22:54,180 не надта выпадковым, думаюць пра тое, што, як ручной штамп, што пры наведванні 497 00:22:54,180 --> 00:22:57,930 facebook.com ўпершыню, яны друк гэты нумар на вашай руцэ. 498 00:22:57,930 --> 00:23:01,510 А потым, таму што вы кажаце HTTP, вы быўшы браўзэру, і таму Facebook 499 00:23:01,510 --> 00:23:06,440 відавочна, кажа тое ж самае, вэб сервер, пратакол HTTP кажа, што 500 00:23:06,440 --> 00:23:09,930 у любы час вы пасля наведаць facebook.com, няхай гэта будзе другая 501 00:23:09,930 --> 00:23:13,560 пазней, праз гадзіну, нават на наступны дзень, да таго часу, пакуль у вас ёсць відавочна не 502 00:23:13,560 --> 00:23:17,050 выйшлі з, якія эфектыўна , Як мыццё рук. 503 00:23:17,050 --> 00:23:20,280 HTTP кажа, што вы павінны прадставіць свой ручной штамп кожны раз, калі вы 504 00:23:20,280 --> 00:23:22,020 вярнуцца на гэты сайт. 505 00:23:22,020 --> 00:23:24,390 >> Што Facebook ж тады, яны паглядзіце на гэтую ручной пячаткай і 506 00:23:24,390 --> 00:23:26,850 яны кажуць, о, 123456789. 507 00:23:26,850 --> 00:23:30,260 Я не ведаю, на першы погляд, што гэта Дэвід Малан ў Кембрыджы, 508 00:23:30,260 --> 00:23:34,690 Масачусэтс, але яны могуць праверыць іх базы дадзеных і кажуць, о, чалавек 509 00:23:34,690 --> 00:23:39,930 на чыёй кампутарнай мы пасадзілі 123456789 Дэвід Малан з Кембрыджа, 510 00:23:39,930 --> 00:23:40,440 Масачусэтс. 511 00:23:40,440 --> 00:23:46,000 Давайце пакажам, што карыстальнік затым яго профіль старонкі або яго Экспарт навін. 512 00:23:46,000 --> 00:23:49,660 >> Але ёсць праблема тут, калі гэта то, як вэб-сапраўды працуе. 513 00:23:49,660 --> 00:23:51,390 Давайце зірнем на просты прыклад. 514 00:23:51,390 --> 00:23:55,190 Давайце на самай справе пайсці сказаць facebook.com. 515 00:23:55,190 --> 00:23:58,130 Але перш чым мы маглі пайсці туды, хай мяне ісці наперад і адкрыць у Chrome 516 00:23:58,130 --> 00:23:59,790 Інспектар сюды. 517 00:23:59,790 --> 00:24:01,140 Дай мне паглядзець на ўкладцы Сетка. 518 00:24:01,140 --> 00:24:06,020 А цяпер давайце ісці наперад і ўвесці у https://facebook.com. 519 00:24:06,020 --> 00:24:09,410 І я раблю гэта так, што мы не бачым ўсе гэтыя рэдырэкты і адходаў 520 00:24:09,410 --> 00:24:10,660 раз, гледзячы праз тых. 521 00:24:10,660 --> 00:24:12,690 Дазвольце мне націсніце ўвод. 522 00:24:12,690 --> 00:24:13,130 >> Добра. 523 00:24:13,130 --> 00:24:14,580 Мы бачым цэлую кучу запытаў. 524 00:24:14,580 --> 00:24:15,640 Там прыходзіць Facebook. 525 00:24:15,640 --> 00:24:16,930 Там цэлая куча файлаў. 526 00:24:16,930 --> 00:24:19,290 І тут, на мой згадванні Затрымка ў апошні раз, гэта 527 00:24:19,290 --> 00:24:21,240 шмат HTTP-запытаў. 528 00:24:21,240 --> 00:24:23,700 Але першы з іх, верагодна, самае цікавае. 529 00:24:23,700 --> 00:24:26,420 >> Так што давайце пракруціць ўніз тут, і Я павелічэння ў секунду. 530 00:24:26,420 --> 00:24:29,090 Гэта будзе свайго роду беспарадак, але давайце паглядзім. 531 00:24:29,090 --> 00:24:31,660 Facebook пасылае нам цэлая куча рэчаў. 532 00:24:31,660 --> 00:24:33,490 >> Але эй, цікава. 533 00:24:33,490 --> 00:24:37,880 Яны пасадкі не адзін, а чатыры ручныя штампы на маю руку тут. 534 00:24:37,880 --> 00:24:40,400 Set-Cookie, Set-Cookie, Set-Cookie, Set-Cookie. 535 00:24:40,400 --> 00:24:44,030 І ёсць некалькі асаблівасцяў тут. 536 00:24:44,030 --> 00:24:46,170 Усе яны згадаць некаторыя выгляд заканчэння. 537 00:24:46,170 --> 00:24:50,090 І, падобна, Facebook спадзяецца не помніць мяне да 2015 года. 538 00:24:50,090 --> 00:24:53,670 Дык вось, як мяркуецца, час, па якім Я павінен выйсці ці яны проста 539 00:24:53,670 --> 00:24:55,710 аўтаматычна меркаваць, што я не вернецца. 540 00:24:55,710 --> 00:24:57,840 Так што на самай справе нядрэнны колькасць часу. 541 00:24:57,840 --> 00:24:59,170 >> І ёсць некаторыя іншыя рэчы тут адбываецца. 542 00:24:59,170 --> 00:25:03,036 Гэта печыва, здаецца, гвалтоўна выдалены кажучы ён скончыўся ў 1970 годзе 543 00:25:03,036 --> 00:25:04,460 да з'яўлення печыва. 544 00:25:04,460 --> 00:25:06,510 Такім чынам, браўзэр проста збіраюся выказаць здагадку Добра, гэта як 545 00:25:06,510 --> 00:25:07,910 прамывання друк рукі. 546 00:25:07,910 --> 00:25:11,240 >> Але цяпер, калі мой браўзэр робіць наступны запыт - 547 00:25:11,240 --> 00:25:14,340 дазвольце мне ісці наперад і рабіць гэта зноў і перазагрузкі. 548 00:25:14,340 --> 00:25:18,170 Цяпер дазвольце мне вярніцеся да лепшых запыт і спусціцца 549 00:25:18,170 --> 00:25:20,760 тут, прасіць загалоўкі. 550 00:25:20,760 --> 00:25:21,390 Заўважым, што гэта. 551 00:25:21,390 --> 00:25:25,280 Так што цяпер я ў ня загалоўкаў адказу, але звернеце ўвагу, гэта кажа загалоўкі запытаў. 552 00:25:25,280 --> 00:25:29,220 І заўважце, што мой браўзэр у рамках сваю просьбу пасля ўдару перазагрузкі мае 553 00:25:29,220 --> 00:25:32,780 адпраўлена па меншай меры наступныя інфармацыя. 554 00:25:32,780 --> 00:25:34,670 Ці не Set-Cookie, але печыва. 555 00:25:34,670 --> 00:25:38,750 Так што гэта лінія, загаловак HTTP так сказаць, дзе мой браўзэр з'яўляецца свайго роду 556 00:25:38,750 --> 00:25:43,340 з без майго ведама ён прадстаўляючы мая рука для агляду Facebook. 557 00:25:43,340 --> 00:25:46,020 >> Такім чынам, гэтыя печыва можа быць выкарыстоўваецца, то для чаго? 558 00:25:46,020 --> 00:25:49,420 Каб памятаць, хто ты ёсць, ці ўспомніць, як шмат разоў вы былі там, або 559 00:25:49,420 --> 00:25:50,280 сапраўды што-небудзь. 560 00:25:50,280 --> 00:25:52,742 >> Дык вось counter.php. 561 00:25:52,742 --> 00:25:53,780 І дазвольце мне павялічыць на шрыфце. 562 00:25:53,780 --> 00:25:58,380 І кожны раз, калі я перазагрузіць гэтую старонку, апавяшчэнне гэта успамінаючы, колькі разоў 563 00:25:58,380 --> 00:25:59,250 Я быў там. 564 00:25:59,250 --> 00:26:00,570 Ну, гэта яшчэ не ўсё, што ўражвае. 565 00:26:00,570 --> 00:26:03,140 Давайце проста зачыніць гэтую ўкладку, а цяпер давайце вернемся да 566 00:26:03,140 --> 00:26:07,860 http://localhost/counter.php. 567 00:26:07,860 --> 00:26:08,970 >> О, гэта цікава. 568 00:26:08,970 --> 00:26:10,960 Гэта да гэтага часу памятаюць, нават хоць я зачыніў ўкладку. 569 00:26:10,960 --> 00:26:14,010 І, шчыра кажучы, калі б я закрыць браўзэр, у выпадку iх ажыццяўлення ў правільным кірунку, я 570 00:26:14,010 --> 00:26:18,950 яшчэ можа памятаць, што гэты карыстальнік якія ён або яна быў першы раз, і 571 00:26:18,950 --> 00:26:22,840 толькі адзін раз я іду ў меню Chrome, які тут тут, і перайсці да 572 00:26:22,840 --> 00:26:25,990 Гісторыя, і націсніце Ачысціць дадзеныя праглядаў, як некаторыя з вас, магчыма, у 573 00:26:25,990 --> 00:26:33,050 апошнія, толькі тады вашы печыва на самай справе быць выдаленыя падчас вэб- 574 00:26:33,050 --> 00:26:33,970 развіццё. 575 00:26:33,970 --> 00:26:35,340 >> Так што, калі мы ідзем - 576 00:26:35,340 --> 00:26:37,080 давайце зачыніць Gedit тут. 577 00:26:37,080 --> 00:26:38,910 І калі мы ідзем цяпер да гэтага файла. 578 00:26:38,910 --> 00:26:44,210 Дазвольце мне ісці ў наш віртуальных даменаў / лакальны / грамадскасці, і зробім 579 00:26:44,210 --> 00:26:46,340 counter.php. 580 00:26:46,340 --> 00:26:48,350 Звярніце ўвагу, што гэта даволі простая праграма. 581 00:26:48,350 --> 00:26:50,250 Гэта даволі просты вэб-сайт. 582 00:26:50,250 --> 00:26:51,770 >> Такім чынам, верхняя частка файла знаходзіцца ўсяго ў каментары. 583 00:26:51,770 --> 00:26:54,930 Але вось новая лінія, што вы можаце ўжо бачылі ў р-ўсталяваць сем, 584 00:26:54,930 --> 00:26:56,000 session_start (). 585 00:26:56,000 --> 00:27:00,380 Гэта лінія PHP кода, які істотна паведамляе вэб-серверу, робяць 586 00:27:00,380 --> 00:27:03,400 Абавязкова друк рукі і зрабіць пачытаць ручныя штампы. 587 00:27:03,400 --> 00:27:06,810 Вось і ўсё, што лінія робіць, і гэта робіць усё гэтага працэсу для нас. 588 00:27:06,810 --> 00:27:09,510 Тады звернеце ўвагу, я толькі што атрымаў дзве галіны тут. 589 00:27:09,510 --> 00:27:14,150 Калі ключ Лічыльнік ўнутры гэтага спецыяльная глабальная пераменная называецца 590 00:27:14,150 --> 00:27:18,010 $ _SESSION Усталяваны, - іншымі словамі, калі ёсць нейкая каштоўнасць там - 591 00:27:18,010 --> 00:27:22,440 давайце яго і захоўваць яго ў мясцовы зменная з імем $ лічыльніка. 592 00:27:22,440 --> 00:27:27,000 У адваротным выпадку, давайце прызначым $ лічыльнік значэнне па змаўчанні 0. 593 00:27:27,000 --> 00:27:30,320 >> Зараз вось адзін з аспектаў PHP гэта і дабраславеньне і праклён. 594 00:27:30,320 --> 00:27:32,080 PHP трохі неахайна. 595 00:27:32,080 --> 00:27:35,160 Так у той час як у З, што б Аб'ём лічыльніка былі 596 00:27:35,160 --> 00:27:36,725 альбо тут, альбо тут? 597 00:27:36,725 --> 00:27:39,270 598 00:27:39,270 --> 00:27:41,690 >> Было б былі абмежаваныя тым фігурныя дужкі. 599 00:27:41,690 --> 00:27:42,090 Ведаеце, што? 600 00:27:42,090 --> 00:27:46,920 У PHP, ён існуе нават за межамі тых, фігурныя дужкі, тут, і тут, 601 00:27:46,920 --> 00:27:49,120 і тут, і тут, і нават ўнізе. 602 00:27:49,120 --> 00:27:52,400 Таму я кажу, што гэта дабраславеньне ў тым сэнсе, што вы не павінны думаць, як 603 00:27:52,400 --> 00:27:54,070 складана, як мы зрабілі некалькі тыдняў таму. 604 00:27:54,070 --> 00:27:56,880 Але гэта таксама трохі пра праклён у тым, што незалежна ад таго, дзе вы выкарыстоўваеце зменную ў 605 00:27:56,880 --> 00:28:00,020 PHP, па меншай меры, у праграме, як гэта, гэта глабальна даступнай для 606 00:28:00,020 --> 00:28:01,170 Добра гэта ці дрэнна. 607 00:28:01,170 --> 00:28:06,130 Такім чынам, вы павінны мець на ўвазе, цяпер, вашыя зменныя не могуць быць нявызначанымі. 608 00:28:06,130 --> 00:28:07,640 Вы, магчыма, вызначаецца іх у іншым месцы. 609 00:28:07,640 --> 00:28:09,460 >> Але тое, што я буду рабіць у канчатковым рахунку? 610 00:28:09,460 --> 00:28:13,160 Я збіраюся захоўваць ўнутры, што глабальнае зменная ў якасці значэння 611 00:28:13,160 --> 00:28:17,060 Лічыльнік ўвесці вынік робіць лічыльнік плюс 1. 612 00:28:17,060 --> 00:28:18,910 Так што гэта проста арыфметыка што робіць 613 00:28:18,910 --> 00:28:20,590 прырашчэнне гэтага лічыльніка. 614 00:28:20,590 --> 00:28:24,850 І тое, што я захоўваю, што значэнне яшчэ ў тут гэта значыць 615 00:28:24,850 --> 00:28:29,970 істотна абнавіць базу дадзеных, каб памятаць, што карыстальнік 123456789 быў 616 00:28:29,970 --> 00:28:31,010 тут у два разы. 617 00:28:31,010 --> 00:28:33,780 І калі я зрабіць гэта зноў у наступны раз я перазагрузіце старонку, ён збіраецца праверыць 618 00:28:33,780 --> 00:28:36,710 мой штамп руку і сказаць, о, Карыстальнік 123456789 мае цяпер 619 00:28:36,710 --> 00:28:38,410 быў тут тры разы. 620 00:28:38,410 --> 00:28:43,390 >> І так, што PHP і падобныя мовы робяць для нас яны высвятляючы 621 00:28:43,390 --> 00:28:47,720 , Як і дзе і як доўга для захоўвання значэнняў у гэты асаблівы 622 00:28:47,720 --> 00:28:48,830 суперглобальная. 623 00:28:48,830 --> 00:28:52,750 І гэта суперглобальные ў наступны раз я наведайце старонку з'яўляецца свайго роду магічным 624 00:28:52,750 --> 00:28:57,440 папярэдне пэўны, запоўненыя значэннямі, што былі там у апошні раз вы наведвалі, 625 00:28:57,440 --> 00:29:02,310 ці было гэта секунду назад, на тыдзень таму, ці ў 2013 годзе, і мы зараз гаворым 626 00:29:02,310 --> 00:29:03,790 пра 2015. 627 00:29:03,790 --> 00:29:07,600 PHP і вэб-сервер сыход ўзяцце ўсяго гэтага для вас. 628 00:29:07,600 --> 00:29:08,850 >> АЎДЫТОРЫЯ: [неразборліва]. 629 00:29:08,850 --> 00:29:11,900 630 00:29:11,900 --> 00:29:15,760 >> Дэвід Малан: Зменныя у PHP з'яўляюцца практычна заўсёды глабальная калі вы 631 00:29:15,760 --> 00:29:18,400 аб'яўляць іх унутры функцыі, і тады яны з'яўляюцца лакальнымі для 632 00:29:18,400 --> 00:29:19,420 толькі функцыя. 633 00:29:19,420 --> 00:29:22,300 Але таму, што я не напісаў любой функцыі, то зараз яны эфектыўна 634 00:29:22,300 --> 00:29:25,090 глабальная працягу ўсёй маёй файла тут. 635 00:29:25,090 --> 00:29:26,040 >> АЎДЫТОРЫЯ: Ці ёсць спосаб каб зрабіць іх мясцовы? 636 00:29:26,040 --> 00:29:28,470 >> Дэвід Малан: Ці ёсць спосаб зрабіць іх мясцовы? 637 00:29:28,470 --> 00:29:30,680 Толькі, абгарнуўшы іх у функцыі. 638 00:29:30,680 --> 00:29:32,790 Што ў апошняй версіі PHP, вы можаце зрабіць гэта з 639 00:29:32,790 --> 00:29:34,130 ананімная функцыя. 640 00:29:34,130 --> 00:29:35,930 Але пра гэта ў кантэкст JavaScript. 641 00:29:35,930 --> 00:29:37,260 Але Кароткі адказ: не. 642 00:29:37,260 --> 00:29:40,888 Больш так. 643 00:29:40,888 --> 00:29:42,380 Добры. 644 00:29:42,380 --> 00:29:43,380 Добра пытанне віктарыны. 645 00:29:43,380 --> 00:29:43,930 Добра. 646 00:29:43,930 --> 00:29:47,760 >> Такім чынам, нарэшце, сама старонка на самай справе даволі проста. 647 00:29:47,760 --> 00:29:51,470 Звярніце ўвагу, што, як толькі я выхаду з рэжыму PHP, водгук што ўсе гэтыя рэчы ўніз 648 00:29:51,470 --> 00:29:53,700 ніжэй толькі збіраецца атрымаць пляваць з сыравіны ў браўзэр. 649 00:29:53,700 --> 00:29:57,050 Які прыгожы, таму што я хачу, каб адправіць карыстальнік некаторыя HTML, але я хачу 650 00:29:57,050 --> 00:29:59,140 для дынамічнага абнаўлення, што HTML. 651 00:29:59,140 --> 00:30:03,930 І адзін з спосабаў я магу зрабіць гэта, каб разабрацца вельмі хутка ўпасці назад у PHP 652 00:30:03,930 --> 00:30:07,730 Рэжым, выкарыстанне якая адкрывае дужка знак пытання Знак роўнасці, а затым вывесці значэнне 653 00:30:07,730 --> 00:30:08,650 лічыльніка. 654 00:30:08,650 --> 00:30:12,360 >> Ці, калі гэта выглядае трохі загадкава, гэта Знак роўнасці на самай справе толькі некаторыя 655 00:30:12,360 --> 00:30:16,190 сінтаксічны цукар для гэтага Е ($ лічыльнік). 656 00:30:16,190 --> 00:30:19,160 Але, шчыра кажучы, гэта крыху непрыгожа і трохі раздражняе, каб надрукаваць. 657 00:30:19,160 --> 00:30:23,660 Такім чынам, PHP вельмі прыгожа прапануе гэтую функцыю дзе можна проста сказаць, што гэта больш 658 00:30:23,660 --> 00:30:25,450 коратка такім жа чынам. 659 00:30:25,450 --> 00:30:26,940 >> Так што ж адбываецца пад капот? 660 00:30:26,940 --> 00:30:31,210 Давайце хутка паглядзім на сеткі Ўкладка тут counter.php. 661 00:30:31,210 --> 00:30:35,090 І дазвольце мне ісці наперад і першым давайце ачысціць печыва. 662 00:30:35,090 --> 00:30:38,670 Давайце Ачысціць дадзеныя праглядаў пачынаючы з пачатак часу. 663 00:30:38,670 --> 00:30:39,680 Зараз давайце вернемся сюды. 664 00:30:39,680 --> 00:30:41,340 Зараз давайце перазагрузіце старонку. 665 00:30:41,340 --> 00:30:42,170 І я вярнуўся ў нулі. 666 00:30:42,170 --> 00:30:44,810 Таму што мая рука штамп быў помытые, Зараз я атрымаць новы печыва. 667 00:30:44,810 --> 00:30:48,780 >> Сапраўды, калі б я паглядзець на ўкладцы сеткі і паглядзець на загалоўкі адказу, паведамлення 668 00:30:48,780 --> 00:30:51,960 што прыбор пасылае мяне печыва, чыё імя некалькі 669 00:30:51,960 --> 00:30:55,820 адвольна, але выгляд разумна, PHPSESSID. 670 00:30:55,820 --> 00:30:58,440 І гэта мне гэта адпраўка сапраўды вялікі выпадковы лік. 671 00:30:58,440 --> 00:30:59,440 Гэта не зусім шэраг. 672 00:30:59,440 --> 00:31:00,390 Гэта не зусім шаснаццатковае. 673 00:31:00,390 --> 00:31:03,600 Гэта свайго роду алфавітна-лічбавая радок але па-відаць гэта выпадковым чынам. 674 00:31:03,600 --> 00:31:06,830 І гэта ручной штамп так казаць, што я маю на ўвазе. 675 00:31:06,830 --> 00:31:11,960 >> Між тым, калі я націсну перазагрузку, а затым паглядзець на гэтай другой лініі для майго другога 676 00:31:11,960 --> 00:31:17,600 просьба, апавяшчэнне зараз, што мой запыт загалоўкі ўключаюць PHPSESSID роўна гэта, 677 00:31:17,600 --> 00:31:19,390 ня Set-Cookie, а проста печыва. 678 00:31:19,390 --> 00:31:22,950 І вось прэзентацыя майго браўзэра маёй ручной штамп. 679 00:31:22,950 --> 00:31:28,820 >> Так што зараз у якасці тізера, і мы пагаворым больш пра гэта на працягу тыдня або каля таго, але 680 00:31:28,820 --> 00:31:31,590 якім чынам гэта робіць вам ўразлівыя, ваш рахунак Facebook 681 00:31:31,590 --> 00:31:34,137 уразлівымі, і іншай такой даводзіцца ўразлівыя? 682 00:31:34,137 --> 00:31:35,510 >> АЎДЫТОРЫЯ: Калі хтосьці мае свой печыва. 683 00:31:35,510 --> 00:31:36,750 >> Дэвід Малан: Так, калі хтосьці мае свой печыва. 684 00:31:36,750 --> 00:31:39,920 Я маю на ўвазе сапраўды, гэтак жа, як некаторыя з вас магчыма, паспрабавалі ў падобным клубе ці 685 00:31:39,920 --> 00:31:44,030 парк забаў, калі вы паспрабуеце нешта як гэта скапіяваць штамп, хоць 686 00:31:44,030 --> 00:31:47,560 таму на руку іншага чалавека, і тады ён ці яна прадстаўляе яго як 687 00:31:47,560 --> 00:31:53,250 самастойна, калі ён на самай справе выглядае ідэнтычныя, 123456789, то вэб 688 00:31:53,250 --> 00:31:57,980 сервер, па-відаць проста збіраюся спадзяюся, што гэты карыстальнік вы. 689 00:31:57,980 --> 00:32:01,450 >> І гэта сапраўды фундаментальная пагроза ў любы час выкарыстоўваць печыва 690 00:32:01,450 --> 00:32:05,420 бо, калі хто-то проста падроблівае так, каб гаворым на Вашым печыва, высвятляе, што гэта 691 00:32:05,420 --> 00:32:08,660 ёсць, альбо сапраўды капіюючы яго гледзячы на ​​кампутары 692 00:32:08,660 --> 00:32:09,890 і быць як, ў парадку. 693 00:32:09,890 --> 00:32:14,520 Печыва Дэвіда JJ3JIK і гэтак далей, а затым яны досыць разумныя, каб ведаць 694 00:32:14,520 --> 00:32:18,080 як свайго роду ўручную адправіць, што печыва з браўзэра або з 695 00:32:18,080 --> 00:32:22,350 Праграма яны пішуць, яны маглі цалкам увайсці ў вэб-сайт, як вы. 696 00:32:22,350 --> 00:32:28,560 Гэта не так складана прыкідвацца хто-то яшчэ, калі мы не перагледзець р-набор 697 00:32:28,560 --> 00:32:30,790 два, які ўвёў што? 698 00:32:30,790 --> 00:32:32,065 >> АЎДЫТОРЫЯ: крыптаграфія. 699 00:32:32,065 --> 00:32:33,860 >> Дэвід Малан: Трохі Трохі крыптаграфіі. 700 00:32:33,860 --> 00:32:36,550 Просты крыптаграфія, па меншай меры стандартная версія, але крыпта 701 00:32:36,550 --> 00:32:36,870 тым не менш. 702 00:32:36,870 --> 00:32:37,410 менш. 703 00:32:37,410 --> 00:32:41,440 Вось і атрымліваецца, калі вы зашыфраваць усе гэтыя загалоўкі, выкарыстоўваючы тое, што вы 704 00:32:41,440 --> 00:32:48,770 можа зараз ведаюць больш знаёма як SSL, абароненых сокетаў, або https:// URL-адрасы, 705 00:32:48,770 --> 00:32:51,890 то ўсе гэтыя рэчы мы былі зірнуўшы на самай справе ў зашыфраваным выглядзе, 706 00:32:51,890 --> 00:32:54,800 Гэта азначае, што гэта, як вы не можа прачытаць ручную марку. 707 00:32:54,800 --> 00:32:59,350 Толькі facebook.com можа ці google.com, ці ў дадзеным выпадку, прыбор можа 708 00:32:59,350 --> 00:33:00,550 чытаў, што ручную марку. 709 00:33:00,550 --> 00:33:04,020 >> Трагічна, хоць, і зноў жа, гэта занадта дарэчы з матэрыялам NSA 710 00:33:04,020 --> 00:33:06,410 у апошні час, нават SSL з'яўляецца далікатным. 711 00:33:06,410 --> 00:33:09,850 І гэта на самай справе не так складана нават ўзламаць гэты шыфраванне. 712 00:33:09,850 --> 00:33:12,040 Не гэтулькі ўзлому шыфравання, але, падманваючы 713 00:33:12,040 --> 00:33:15,720 браўзэру ў расшыфроўцы дадзеныя заўчасна. 714 00:33:15,720 --> 00:33:17,880 Але зноў жа, мы будзем дражніць вас с, што ў хуткім часе. 715 00:33:17,880 --> 00:33:21,242 А цяпер проста баяцца. 716 00:33:21,242 --> 00:33:23,070 Гэта трагічна роду праўда. 717 00:33:23,070 --> 00:33:23,760 >> Добра. 718 00:33:23,760 --> 00:33:27,910 Такім чынам, дзе ж гэта цяпер нам дае? 719 00:33:27,910 --> 00:33:29,010 Ну, давайце зробім гэта. 720 00:33:29,010 --> 00:33:31,790 Давайце ісці наперад і прымаць хуткі тізер, перш чым мы зрабіць перапынак. 721 00:33:31,790 --> 00:33:33,790 І я думаю, што мы затрымлівацца трохі даўжэй сёння, але мы збіраемся, каб паглыбіцца ў 722 00:33:33,790 --> 00:33:37,850 нешта новенькае і сэксуальная, які будзе падцяпліць апетыт для яшчэ больш. 723 00:33:37,850 --> 00:33:38,950 Дык вось тізер. 724 00:33:38,950 --> 00:33:41,520 >> Так SQL, мы пачалі казаць пра вельмі коратка апошні раз. 725 00:33:41,520 --> 00:33:44,670 Вы сапраўды пэцкаць рукі з некаторымі з яго ў п-усталяваны сем. 726 00:33:44,670 --> 00:33:46,480 І з пункту гледжання непрафесіяналы, што робіць SQL - 727 00:33:46,480 --> 00:33:47,110 S-Q-L - 728 00:33:47,110 --> 00:33:49,850 для вас зрабіць? 729 00:33:49,850 --> 00:33:50,310 Што гэта такое? 730 00:33:50,310 --> 00:33:51,546 Так. 731 00:33:51,546 --> 00:33:53,240 >> АЎДЫТОРЫЯ: давайце вы дадзеныя доступу. 732 00:33:53,240 --> 00:33:53,360 >> Дэвід Малан: Так. 733 00:33:53,360 --> 00:33:55,120 Гэта дазволіць Вам атрымаць доступ да дадзеных ў базе дадзеных. 734 00:33:55,120 --> 00:33:56,710 Мова структураваных запытаў. 735 00:33:56,710 --> 00:33:59,890 І гэта, па сутнасці мова праграмавання. 736 00:33:59,890 --> 00:34:03,400 Ёсць асаблівасці тым, каб мы нават не будзем выкарыстоўваць у класе. 737 00:34:03,400 --> 00:34:04,710 Але вы можа эфектыўна вызначыць функцыі. 738 00:34:04,710 --> 00:34:06,870 Яны называюцца захоўваецца працэдуры ў SQL. 739 00:34:06,870 --> 00:34:09,860 Але мы будзем трымаць яго даволі простая і проста выкарыстоўваць яго для некаторых асноўных аперацый 740 00:34:09,860 --> 00:34:14,320 напрыклад, выбраць дадзеныя, ўстаўкі дадзеных, абнаўлення дадзеных і выдаленні дадзеных. 741 00:34:14,320 --> 00:34:17,400 >> І вы можаце сапраўды думаеце, базы дадзеных, як базы дадзеных SQL, як толькі 742 00:34:17,400 --> 00:34:18,800 быўшы Microsoft Excel. 743 00:34:18,800 --> 00:34:21,989 Паколькі SQL ставіцца да рэляцыйнай У базе, дзе 744 00:34:21,989 --> 00:34:23,480 стаўленне проста азначае табліцы. 745 00:34:23,480 --> 00:34:24,739 Радкі і слупкі. 746 00:34:24,739 --> 00:34:27,929 Так што вы можаце пакласці ў табліцы як гэта ці Google Docs, 747 00:34:27,929 --> 00:34:32,460 вы маглі б паставіць у базу дадзеных SQL , Абвясціўшы табліцу. 748 00:34:32,460 --> 00:34:34,800 >> Цяпер, як вы насамрэч доступ што інфармацыя? 749 00:34:34,800 --> 00:34:38,239 Ну, з камандамі або запыты, як гэта. 750 00:34:38,239 --> 00:34:40,199 SELECT, INSERT, UPDATE і DELETE. 751 00:34:40,199 --> 00:34:44,489 І па большай частцы, тыя чатыры толькі інгрэдыенты, якія вы павінны будзеце 752 00:34:44,489 --> 00:34:47,370 зрабіць што-то даволі магутна ў задачы ўсталяваць сем. 753 00:34:47,370 --> 00:34:49,940 >> Цяпер вернемся ў той жа дзень, вы на самой справе ўзаемадзейнічаць з базай дадзеных у 754 00:34:49,940 --> 00:34:52,730 чорна-белае акно тэрмінала ў міргаць хуткае, як гэта. 755 00:34:52,730 --> 00:34:56,370 І база даных мы бяжым на Прылада называецца MySQL, які 756 00:34:56,370 --> 00:34:58,560 свабодны і адкрыты рухавічок базы дадзеных крыніцы. 757 00:34:58,560 --> 00:35:02,240 Калі вы Google і чытаць Вікіпедыю артыкул, вы будзеце ведаць, што імя 758 00:35:02,240 --> 00:35:05,060 трохі пераходу для некаторых версіі Linux. 759 00:35:05,060 --> 00:35:10,460 У базе Марыя на самай справе раскашэліцца таму казаць аб MySQL. 760 00:35:10,460 --> 00:35:12,740 >> Карацей кажучы, Oracle купіў MySQL. 761 00:35:12,740 --> 00:35:13,870 Oracle вялікая кампанія. 762 00:35:13,870 --> 00:35:17,010 Людзі былі занепакоеныя тым, што гэта было б ўжо не застанецца зусім як з адкрытым зыходным кодам, 763 00:35:17,010 --> 00:35:20,930 так што гэта проста копія MySQL гэта яшчэ на волі, усё яшчэ адкрытым зыходным кодам, і 764 00:35:20,930 --> 00:35:23,550 усталяваны ў Fedora Linux па змаўчанні. 765 00:35:23,550 --> 00:35:26,130 >> Але гэта выгляд болі ў шыя пазнаёміцца ​​з 766 00:35:26,130 --> 00:35:27,310 У базе такім чынам. 767 00:35:27,310 --> 00:35:30,560 Такім чынам, мы ўключыць у CS50 прыбора бясплатны інструмент з адкрытым зыходным кодам пад назовам 768 00:35:30,560 --> 00:35:31,700 PhpMyAdmin. 769 00:35:31,700 --> 00:35:33,940 Проста супадзенне, што гэта напісана ў PHP. 770 00:35:33,940 --> 00:35:36,450 Там няма фундаментальных трэба для PHP тут. 771 00:35:36,450 --> 00:35:40,090 Але гэта ўсяго толькі вэб-інструмент, які мы загрузілі бясплатна, усталёўваецца ў 772 00:35:40,090 --> 00:35:43,850 прыбор, што дазваляе нам мець Графічны інтэрфейс карыстальніка, з якім 773 00:35:43,850 --> 00:35:48,610 даследаваць р-ўсталяваць сем базу дадзеных з для стварэння новых баз дадзеных, 774 00:35:48,610 --> 00:35:51,980 кажуць для вашага ўласнага канчатковага праекта Калі вы хочаце як, і ў канчатковым выніку стварыць 775 00:35:51,980 --> 00:35:55,900 дынамічных вэб-сайтаў, як CS50 фінансаў якія дазваляюць запытваць дадзеныя і 776 00:35:55,900 --> 00:35:58,140 дынамічна абнаўляць звесткі. 777 00:35:58,140 --> 00:36:01,420 >> Вы не будзеце мець, каб выкарыстоўваць толькі просты тэкставы файл або CSV. 778 00:36:01,420 --> 00:36:05,950 Вы можаце выкарыстоўваць смарт-базу дадзеных Праграма так што вы можаце выконваць больш 779 00:36:05,950 --> 00:36:10,240 складаныя запыты, чым проста чытанне праз усе лінейна. 780 00:36:10,240 --> 00:36:14,150 >> Так, напрыклад, гэта тое, што мы даем Вы з скрынкі для р-ўсталяваць сямі. 781 00:36:14,150 --> 00:36:18,280 Гэта табліца з па-відаць, па меншай меры тры калоны, адна з якіх 782 00:36:18,280 --> 00:36:21,450 імя карыстальніка, адным з якіх з'яўляецца хэш, і іншы з якіх з'яўляецца ID. 783 00:36:21,450 --> 00:36:26,200 >> Але самае цікавае, і проста дражніць адна думка тут, імя карыстальніка 784 00:36:26,200 --> 00:36:29,270 Як плануецца, ужо унікальны, ці не так? 785 00:36:29,270 --> 00:36:31,190 Я маю на ўвазе, большасць любы сайт, калі ў вас ёсць імя карыстальніка, ёсць 786 00:36:31,190 --> 00:36:32,370 Не можа быць двух Caesars. 787 00:36:32,370 --> 00:36:33,440 Там не можа быць двух Malans. 788 00:36:33,440 --> 00:36:34,950 Там не можа быць двух jharvards. 789 00:36:34,950 --> 00:36:35,600 Яго ўнікальная. 790 00:36:35,600 --> 00:36:38,610 У адваротным выпадку, яны не ведаюць, якія jharvard ёсць на самой справе. 791 00:36:38,610 --> 00:36:42,710 Так што можа быць матывацыяй для таксама якія маюць трэцюю калонку злева 792 00:36:42,710 --> 00:36:46,970 там называецца ID, які выглядае як лік, гэта ж унікальным? 793 00:36:46,970 --> 00:36:51,300 Ён адчувае сябе крыху залішнім мне на першы погляд. 794 00:36:51,300 --> 00:36:54,910 Чаму гэта можа быць пераканаўчым, каб мець не толькі унікальныя імёны карыстальнікаў, 795 00:36:54,910 --> 00:36:56,837 але і унікальныя нумары? 796 00:36:56,837 --> 00:36:59,460 >> АЎДЫТОРЫЯ: Яны маглі б і той жа пароль. 797 00:36:59,460 --> 00:37:01,720 >> Дэвід Малан: Людзі могуць мець той жа пароль, вядома. 798 00:37:01,720 --> 00:37:03,900 Гэта можа абсалютна здарыцца. 799 00:37:03,900 --> 00:37:08,270 Але калі ў іх ёсць гэты унікальны лагін, я сцвярджаюць, што гэта сапраўды не 800 00:37:08,270 --> 00:37:11,630 Незалежна ад таго, таму што калі яны ўвядуць у імя карыстальніка, мне трэба толькі праверыць іх 801 00:37:11,630 --> 00:37:15,060 пароль, іх хэш іх. 802 00:37:15,060 --> 00:37:15,970 Чаму яшчэ? 803 00:37:15,970 --> 00:37:17,950 >> АЎДЫТОРЫЯ: Больш за хуткі пошук. 804 00:37:17,950 --> 00:37:18,680 >> Дэвід Малан: Больш за хуткі пошук. 805 00:37:18,680 --> 00:37:19,548 Чаму? 806 00:37:19,548 --> 00:37:21,460 >> АЎДЫТОРЫЯ: ID з'яўляецца толькі адным. 807 00:37:21,460 --> 00:37:24,040 >> Дэвід Малан: ID проста адзін сімвал, або калі быць больш дакладным, гэты лік, 808 00:37:24,040 --> 00:37:26,910 так што, верагодна 32 біта ці нешта ў гэтым родзе. 809 00:37:26,910 --> 00:37:30,270 У той час як імя карыстальніка, па-відаць Джэйсан Да Hirschhorn ў там накшталт 810 00:37:30,270 --> 00:37:33,900 смяхотна доўга, і ён збіраецца ўзяць мяне нашмат больш часу ў радок 811 00:37:33,900 --> 00:37:40,910 параўнаць H-I-R-S-C-H-H-O-R-N, і, магчыма, / 0 або нешта накшталт гэтага, для таго, 812 00:37:40,910 --> 00:37:45,100 для пошуку Джэйсана, а не проста кажучы, дайце мне карыстальніка нумар два. 813 00:37:45,100 --> 00:37:46,510 Гэта 32 біт. 814 00:37:46,510 --> 00:37:48,550 Гэта адзін INT, што вы павінны параўнаць. 815 00:37:48,550 --> 00:37:52,150 І сапраўды, менавіта таму базы дадзеных , Як правіла, прызначыць унікальныя ідэнтыфікатары, каб 816 00:37:52,150 --> 00:37:53,710 радкоў у іх. 817 00:37:53,710 --> 00:37:56,280 >> Цяпер тое, што іншыя тыпы дадзеных ёсць акрамя INT і відавочна 818 00:37:56,280 --> 00:37:57,160 Радкі, як гэта? 819 00:37:57,160 --> 00:37:59,700 Ну, калі быць больш правільным, Базы дадзеных SQL, як 820 00:37:59,700 --> 00:38:02,060 MySQL, ёсць тэкставыя палі. 821 00:38:02,060 --> 00:38:05,320 І CHAR трохі зманліва Не адзін знак. 822 00:38:05,320 --> 00:38:10,290 CHAR поля ў базе дадзеных MySQL з'яўляецца адзін або некалькі знакаў, але гэта 823 00:38:10,290 --> 00:38:11,780 фіксаваны лік знакаў. 824 00:38:11,780 --> 00:38:15,710 >> Так, напрыклад, калі я іду да PhpMyAdmin, як вы, магчыма, ужо, або 825 00:38:15,710 --> 00:38:21,340 хутка будзе праблемай ўсталяваць сем, і я іду у сваю базу дадзеных, а проста для задавальнення, 826 00:38:21,340 --> 00:38:25,700 давайце створым новую табліцу з імем праверыць з дапамогай ўсяго двух калонак. 827 00:38:25,700 --> 00:38:27,160 Я націсніце кнопку Перайсці. 828 00:38:27,160 --> 00:38:30,070 І гэта стане даволі знаёма, асабліва, як вы Тинкер 829 00:38:30,070 --> 00:38:31,130 вакол па сваім меркаванні. 830 00:38:31,130 --> 00:38:34,140 Тут я мог бы ўвесці ID для стварэння Новая табліца тыпу INT. 831 00:38:34,140 --> 00:38:37,770 Але тут я можа ўвесці імя карыстальніка для ўзнавіць, што раней табліцы. 832 00:38:37,770 --> 00:38:40,700 І заўважце, у мяне ёсць цэлая куча тыпаў на выбар. 833 00:38:40,700 --> 00:38:43,610 >> І гэта таксама чаму PHPMYADMIN збольшага добра. 834 00:38:43,610 --> 00:38:46,770 Гэта свайго роду саманавучання, у якім Вы можа проста нейкая кропка і націсніце, і 835 00:38:46,770 --> 00:38:50,730 паглядзець на выпадальнае меню, і вывесці з што тое, што паўнамоцтвы SQL, дае табе. 836 00:38:50,730 --> 00:38:54,090 >> І сапраўды, калі я выбіраю CHAR, я тады павінны паказаць даўжыню, ці як 837 00:38:54,090 --> 00:38:55,940 шмат значэнняў, колькі знакаў. 838 00:38:55,940 --> 00:39:00,090 Такім чынам, вельмі агульныя каштоўнасці такія рэчы, як 255, але гэта крыху часу. 839 00:39:00,090 --> 00:39:02,250 Звычайна ў восем ўвесці імя карыстальніка. 840 00:39:02,250 --> 00:39:03,590 Але гэта крыху маленькія ў гэтыя дні. 841 00:39:03,590 --> 00:39:05,430 Так што гэта дызайнерскае рашэнне. 842 00:39:05,430 --> 00:39:08,630 Гэта макс. 8 знакаў, 32, 255, 1000? 843 00:39:08,630 --> 00:39:09,830 Гэта сапраўды залежыць ад вас. 844 00:39:09,830 --> 00:39:12,350 Але CHAR поля з'яўляецца фіксаваны лік. 845 00:39:12,350 --> 00:39:16,420 Так што выбірайце занадта мала і ты накшталт разьбовае, калі вы хочаце больш імя карыстальніка. 846 00:39:16,420 --> 00:39:19,132 Выберыце занадта шмат, а што Недахопы? 847 00:39:19,132 --> 00:39:20,820 >> АЎДЫТОРЫЯ: [неразборліва]. 848 00:39:20,820 --> 00:39:21,620 >> DAVID малая: Гэта марнатраўна. 849 00:39:21,620 --> 00:39:24,835 Як і ў C, калі ў вас ёсць большы кавалак памяці, чым трэба, ты 850 00:39:24,835 --> 00:39:27,190 проста марнаваць час і займаюць прастору. 851 00:39:27,190 --> 00:39:31,430 Такім чынам, у якасці альтэрнатывы, існуе УАКСНАК, які вырашае гэтую праблему шляхам 852 00:39:31,430 --> 00:39:36,390 лячэнне даўжыня не ў выглядзе фіксаванай даўжыні а ў якасці максімальнай даўжыні, і з дапамогай 853 00:39:36,390 --> 00:39:40,990 зменную колькасць знакаў, якія затым імкнецца выкарыстоўваць толькі як многія, як вы СІМВАЛЫ 854 00:39:40,990 --> 00:39:42,710 на самай справе трэба. 855 00:39:42,710 --> 00:39:43,670 Гэта гучыць выдатна. 856 00:39:43,670 --> 00:39:45,640 >> Чаму б нам не пазбавіцца ад Тып дадзеных CHAR тады? 857 00:39:45,640 --> 00:39:48,500 Якая можа быць недахоп выкарыстаннем тыпу VARCHAR, які гучыць 858 00:39:48,500 --> 00:39:51,644 як гэта добрая перамога? 859 00:39:51,644 --> 00:39:52,596 Да? 860 00:39:52,596 --> 00:39:53,846 >> АЎДЫТОРЫЯ: [неразборліва]. 861 00:39:53,846 --> 00:39:57,360 862 00:39:57,360 --> 00:39:57,790 >> DAVID малая: Добра, добра. 863 00:39:57,790 --> 00:40:01,101 Так што, калі ўсе вашы дадзеныя аднолькавыя Даўжыня, у чым праблема? 864 00:40:01,101 --> 00:40:05,250 >> АЎДЫТОРЫЯ: Таму што вы марнуеце Дадзеныя, кажучы ім усё. 865 00:40:05,250 --> 00:40:09,060 >> DAVID малая: Так што, калі ўсе вашы дадзеныя аднолькавай даўжыні, хоць, я б сказаў, 866 00:40:09,060 --> 00:40:12,300 што ўказанне максімальнай даўжыні на VARCHAR нічым не адрозніваецца ад 867 00:40:12,300 --> 00:40:16,070 указаннем фіксаванай даўжыні на Чары, калі Вы ведаеце, што лік загадзя. 868 00:40:16,070 --> 00:40:19,500 Але ёсць, зрэшты, і я накшталт атрымаць з адказу, што рэальнасць 869 00:40:19,500 --> 00:40:22,610 што ёсць яшчэ Max, якая магла б быць раздражняльным, асабліва калі вы 870 00:40:22,610 --> 00:40:25,920 Назва сустрэчы чалавека гэта незвычайна доўга, што вы не 871 00:40:25,920 --> 00:40:26,860 прадбачыць. 872 00:40:26,860 --> 00:40:31,420 І гэта таксама трохі менш эфектыўна на самай справе пошук па тыпу VARCHAR як 873 00:40:31,420 --> 00:40:35,620 адрозненне ад пошуку СІМВАЛЫ, асабліва за доўгімі сталамі, якія маюць шмат і 874 00:40:35,620 --> 00:40:36,510 вялікай колькасці дадзеных. 875 00:40:36,510 --> 00:40:40,060 Так і тут, тэматычныя зноў Няма відавочны выбар. 876 00:40:40,060 --> 00:40:42,870 >> Так толькі, каб даць вам адчуванне іншыя тыпы дадзеных, якія могуць прадстаўляць цікавасць 877 00:40:42,870 --> 00:40:45,400 альбо для р-набор сямі або ў будучыню, ёсць INT. 878 00:40:45,400 --> 00:40:47,270 Там у BIGINT, якая як доўга доўга. 879 00:40:47,270 --> 00:40:48,880 Гэта, як правіла, 64 біт. 880 00:40:48,880 --> 00:40:51,640 Там у дзесятковую, якія вы ўбачыце ў Праблема набор, які з'яўляецца нашмат 881 00:40:51,640 --> 00:40:55,300 Ачышчальнік адказ на праблемы, якія мы сутыкнуўся з паплаўком і плаваюць 882 00:40:55,300 --> 00:40:55,980 пункту недакладнасць. 883 00:40:55,980 --> 00:40:57,390 А тут яшчэ DATETIME. 884 00:40:57,390 --> 00:41:01,530 Там літаральна тып дадзеных, які мае каб быць падобным на год, месяц, дзень, 885 00:41:01,530 --> 00:41:03,730 і гадзіны, хвіліны і секунды. 886 00:41:03,730 --> 00:41:07,470 >> Але SQL базы дадзеных таксама маюць рэчы, якія мы будзем называць індэксамі. 887 00:41:07,470 --> 00:41:11,630 І індэкса з'яўляецца тое, што вы ўвесці пры стварэнні табліцы 888 00:41:11,630 --> 00:41:15,720 выконваць пошук і іншыя аперацыі больш эфектыўным. 889 00:41:15,720 --> 00:41:18,550 У прыватнасці, ёсць тое, што называецца Першасны паказчык, што вы маглі 890 00:41:18,550 --> 00:41:19,440 заяўляю наступнае. 891 00:41:19,440 --> 00:41:22,330 >> Мы зрабілі гэта для вас Табліца карыстальнікаў мы даем вам. 892 00:41:22,330 --> 00:41:26,160 Але звярніце ўвагу, калі б я ўручную аднаўлення Табліца карыстальнікаў даючы тут 893 00:41:26,160 --> 00:41:27,110 гэта імя карыстальніка. 894 00:41:27,110 --> 00:41:28,125 Я ўжо паказаны ID. 895 00:41:28,125 --> 00:41:29,330 Я паказаў INT. 896 00:41:29,330 --> 00:41:32,000 Я паказаў імя карыстальніка з максімальна 32 сімвалаў. 897 00:41:32,000 --> 00:41:36,140 Але калі мы захаваем пракруткі ў гэтай даволі шырокія вокны, заўважыце, што 898 00:41:36,140 --> 00:41:38,260 куча іншых рэчаў, я магу назваць. 899 00:41:38,260 --> 00:41:40,950 >> Адзін з іх, я магу паказаць атрыбуты падабаецца, вы ведаеце, што гэта 900 00:41:40,950 --> 00:41:42,190 INT павінен быць падпісаны. 901 00:41:42,190 --> 00:41:45,510 Я не хачу, адмоўныя лікі, так давайце зробім гэта без подпісу. 902 00:41:45,510 --> 00:41:48,660 Null не мае значэння, таму што тут Я хачу, каб кожны карыстальнік 903 00:41:48,660 --> 00:41:49,640 мець унікальны нумар. 904 00:41:49,640 --> 00:41:50,830 Я не хачу, каб гэта было нулявым. 905 00:41:50,830 --> 00:41:52,330 >> Але гэта цікава. 906 00:41:52,330 --> 00:41:57,780 Я магу паказаць, што ID з'яўляецца альбо першаснага ключа гэтай базе дадзеных, або гэта 907 00:41:57,780 --> 00:42:00,620 унікальным, ці гэта індэксуюцца, або поўны тэкст. 908 00:42:00,620 --> 00:42:05,630 Такім чынам, для мэт сённяшняй, доўгая гісторыя Карацей кажучы, асноўным сродкам, што гэта павінна 909 00:42:05,630 --> 00:42:10,570 быць як канцэптуальна, так і тэхнічна поле, якое мы выкарыстоўваем, каб адназначна 910 00:42:10,570 --> 00:42:12,140 ідэнтыфікацыі карыстальнікаў. 911 00:42:12,140 --> 00:42:16,140 >> Таму, калі мы глядзім карыстальнікаў, гэта з'яўляецца свайго роду з абяцанне шукаць іх асноўным 912 00:42:16,140 --> 00:42:17,370 што унікальны ідэнтыфікатар. 913 00:42:17,370 --> 00:42:21,930 І база дадзеных будзе гарантаваць, што калі вы ёсць карыстальнік, нумар 3, вы не можаце 914 00:42:21,930 --> 00:42:25,400 фізічна ўсталёўваеце іншага карыстальніка з той жа 3 чысла. 915 00:42:25,400 --> 00:42:28,380 База дадзеных будзе проста адмаўляюцца , Каб захаваць змены. 916 00:42:28,380 --> 00:42:32,310 Якая добрая рэч, таму што вы можаце абараніць сябе ад сябе. сябе 917 00:42:32,310 --> 00:42:34,270 >> Акрамя таго, для імя карыстальніка. 918 00:42:34,270 --> 00:42:37,670 Такім чынам, другі шэраг, нагадаем, гэта поле Імя карыстальніка. 919 00:42:37,670 --> 00:42:41,860 Такім чынам, другі шэраг тут імя карыстальніка, як мы гэта рабілі ў далёкім левым куце там. 920 00:42:41,860 --> 00:42:43,940 >> Так, што яшчэ можа я хачу паказаць? 921 00:42:43,940 --> 00:42:47,840 Мне не дазваляюць, у адпаведнасці з SQL, пазначыць два першасных ключоў. 922 00:42:47,840 --> 00:42:50,750 Вы можаце задаць сумеснае ключ, дзе вы паглядзець на абодвух палях, але яны не могуць 923 00:42:50,750 --> 00:42:52,260 індывідуальна быць першасныя ключы. 924 00:42:52,260 --> 00:42:54,750 Дык вось можа быць і гаворкі. 925 00:42:54,750 --> 00:42:56,040 Так што можа я хачу выбраць? 926 00:42:56,040 --> 00:42:59,710 >> Ну, УНІКАЛЬНЫ падобны па духу першасны ключ, дзе вы пазначыць гэта 927 00:42:59,710 --> 00:43:03,570 поле павінна быць унікальным, але гэта не збіраецца быць тым, 928 00:43:03,570 --> 00:43:04,410 Я выкарыстоўваю ўвесь час. 929 00:43:04,410 --> 00:43:08,450 І мы не збіраемся выкарыстаць гэты ўсё час па якой прычыне зноў? 930 00:43:08,450 --> 00:43:10,490 Гэта павольней патэнцыйна, калі гэта доўгая імя карыстальніка. 931 00:43:10,490 --> 00:43:11,740 Гэта проста пустая трата часу. 932 00:43:11,740 --> 00:43:16,140 >> Індэкс, тым часам, паказвае, што гэта не збіраецца быць унікальным, але я хацеў бы 933 00:43:16,140 --> 00:43:19,470 працаваць сваю магію пад капот, каб зрабіць гэта хутчэй для мяне 934 00:43:19,470 --> 00:43:21,420 пошук па гэтай галіне. 935 00:43:21,420 --> 00:43:23,320 Так што гэта, верагодна, не мае дачынення тут. 936 00:43:23,320 --> 00:43:26,500 Для імя карыстальніка, я б сцвярджаць, што Унікальную добры адказ. 937 00:43:26,500 --> 00:43:31,200 Але выкажам здагадку, што мы зрабілі карыстальнікам больш Цікава, чым проста імёны карыстальнікаў, 938 00:43:31,200 --> 00:43:32,430 хэшы, і ідэнтыфікацыйныя нумары. 939 00:43:32,430 --> 00:43:33,860 Што рабіць, калі мы далі людзям поўныя імёны? 940 00:43:33,860 --> 00:43:37,700 Што рабіць, калі мы далі ім адрасы і іншыя дадзеныя пра іх? 941 00:43:37,700 --> 00:43:43,360 >> Ну, калі вы паказаць, што слупок ў база дадзеных індэксуецца, гэта азначае, што 942 00:43:43,360 --> 00:43:47,730 MySQL або Oracle, ці як база дадзеных вы выкарыстоўваеце, павінны працаваць сваё чараўніцтва 943 00:43:47,730 --> 00:43:51,300 і выкарыстоўваць нейкі мудрагелістай дадзеных Структура як дрэва, або выглядзе дрэва або 944 00:43:51,300 --> 00:43:55,940 хэш-табліцы, або што-то, каб гарантаваць што пры пошуку дадзеных з выкарыстаннем 945 00:43:55,940 --> 00:43:58,150 выбраць на гэтай канкрэтнай вобласці - 946 00:43:58,150 --> 00:44:01,310 як паказаць мне ўсё, што жыве на Оксфард-стрыт. 947 00:44:01,310 --> 00:44:02,540 Запыт у гэтым родзе. 948 00:44:02,540 --> 00:44:06,250 Калі вы паказалі загадзя, што Вы хочаце індэкс для гэтай галіне, 949 00:44:06,250 --> 00:44:09,050 вынікі будуць значна, значна хутчэй. 950 00:44:09,050 --> 00:44:12,090 >> Калі вы не пакажаце індэкс, лепшы Вы можаце зрабіць гэта лінейны пошук, калі 951 00:44:12,090 --> 00:44:13,030 гэта не сартуюцца. 952 00:44:13,030 --> 00:44:16,220 Але калі вы пакажа INDEX, смарт- людзі, што зрабілі базу дадзеных - 953 00:44:16,220 --> 00:44:19,340 людзі, як вы, якія зараз ведаюць, дрэвы і спрабуе і хэш-табліцы - 954 00:44:19,340 --> 00:44:23,220 аўтаматычна пабудаваць такую ​​дадзеных структура ў памяці, каб пераканацца, што 955 00:44:23,220 --> 00:44:26,050 гэтыя вынікі нашмат хутчэй. 956 00:44:26,050 --> 00:44:29,660 >> FULLTEXT пакуль што блізкія па духу, але дазваляе зрабіць шаблон 957 00:44:29,660 --> 00:44:35,480 вынікі, як паказаць мне ўсё, што жыве ў вуліцах, якія пачынаюцца з 958 00:44:35,480 --> 00:44:36,960 літара Аб па любой прычыне. 959 00:44:36,960 --> 00:44:38,850 Вы можаце зрабіць пошук падстаноўныя так. 960 00:44:38,850 --> 00:44:45,880 Або, што больш пераканаўчыя рэчы, як шоў мяне ўсё, хто мае слова - 961 00:44:45,880 --> 00:44:49,400 пакажыце мне усіх, чыё імя пачынаецца з пэўнай літары. 962 00:44:49,400 --> 00:44:51,880 Вы можаце шукаць па ключавых словах такім чынам. 963 00:44:51,880 --> 00:44:52,630 Добра. 964 00:44:52,630 --> 00:44:55,760 >> Такім чынам, магчымасці дызайну ёсць патэнцыйна. 965 00:44:55,760 --> 00:44:57,740 Ёсць іншыя, якія я буду махаць рукамі ў. 966 00:44:57,740 --> 00:45:00,530 Атрымліваецца, што вы можаце мець розныя механізмы захоўвання. 967 00:45:00,530 --> 00:45:04,390 І гэта яшчэ таямніцай, чым нам трэба вядома для задачы ўсталяваць сем. 968 00:45:04,390 --> 00:45:06,920 Па змаўчанні, вы, хлопцы, з дапамогай тое, што называецца InnoDB. 969 00:45:06,920 --> 00:45:10,910 Вы ўбачыце згадкі пра гэта недзе ў Інтэрфейс PhpMyAdmin найбольш верагодна. 970 00:45:10,910 --> 00:45:14,130 Але ведаю, што ёсць іншы дызайн рашэнні, якія маюць патэнцыял 971 00:45:14,130 --> 00:45:18,030 Цікавасць прыходзяць канчатковыя праекты, калі вы робіце нешта вэб-. 972 00:45:18,030 --> 00:45:19,330 >> Але давайце зробім гэта. 973 00:45:19,330 --> 00:45:23,130 Давайце пойдзем далей і паставіць гэта на экран як тізер гісторыі 974 00:45:23,130 --> 00:45:26,330 з удзелам вас, сусед па пакоі, і шклянку малака. 975 00:45:26,330 --> 00:45:28,240 Давайце дзве хвіліны або так зламаць тут. 976 00:45:28,240 --> 00:45:31,060 І калі вы можаце застацца, давайце прыходзяць назад, выглядаюць трохі больш на SQL, і 977 00:45:31,060 --> 00:45:35,160 затым трохі JavaScript з р-ўсталяваць восем на ўвазе. 978 00:45:35,160 --> 00:45:36,120 >> Добра. 979 00:45:36,120 --> 00:45:40,420 Такім чынам, давайце прымусіць вас задумацца аб кут так, што можна вельмі лёгка ўзнікаюць 980 00:45:40,420 --> 00:45:44,240 у кантэксце з выкарыстаннем базы дадзеных, або шчыра кажучы, нават пры выкарыстанні рэальнага свету рэчаў 981 00:45:44,240 --> 00:45:46,280 як банкаматы, каб атрымаць грошы. 982 00:45:46,280 --> 00:45:47,640 Такім чынам, вось халадзільнік. 983 00:45:47,640 --> 00:45:50,040 Выкажам здагадку, у вас ёсць адзін таксама ў Ваш інтэрната або ваш дом. 984 00:45:50,040 --> 00:45:54,990 І ў вас ёсць адзін сусед па пакоі, і абодва вы сапраўды любіце малако, напрыклад. 985 00:45:54,990 --> 00:45:57,210 >> Такім чынам, вы прыходзіце дадому з класам у адзін выдатны дзень. 986 00:45:57,210 --> 00:45:58,490 Ён ці яна не вярнуцца. 987 00:45:58,490 --> 00:45:59,180 Вы адкрываеце халадзільнік. 988 00:45:59,180 --> 00:46:00,870 Вы сапраўды хочаце вялікі шклянку малака. 989 00:46:00,870 --> 00:46:01,820 Там няма малака. 990 00:46:01,820 --> 00:46:02,920 Так што ж рабіць? 991 00:46:02,920 --> 00:46:03,840 Вы закрыць халадзільнік. 992 00:46:03,840 --> 00:46:04,670 Вы хапаеце ключы. 993 00:46:04,670 --> 00:46:05,930 Вы выходзіце на плошчу. 994 00:46:05,930 --> 00:46:09,240 І вы атрымаеце ў чарзе ў CVS на тых, самастойна касавыя рэчы, якія заўсёды 995 00:46:09,240 --> 00:46:11,180 заняць больш часу, чым на самай справе маючы касіраў. 996 00:46:11,180 --> 00:46:11,820 Ва ўсякім выпадку. 997 00:46:11,820 --> 00:46:15,490 >> Такім чынам, паміж тым, кропка кропка кропка, ваш сусед прыходзіць дадому і ён або яна 998 00:46:15,490 --> 00:46:17,440 Аналагічна ёсць гарачае жаданне за малаком. 999 00:46:17,440 --> 00:46:20,380 Такім чынам, ён ці яна адкрывае халадзільнік, выглядае ўсярэдзіне, і чорт пабяры. 1000 00:46:20,380 --> 00:46:21,160 Ніякае малако. 1001 00:46:21,160 --> 00:46:24,750 Такім чынам, ён ці яна галавы,, адбываецца пайсці на іншую CVS, які быў толькі 1002 00:46:24,750 --> 00:46:27,900 квартал па некаторых прычынах, і ён або яна атрымлівае ў чарзе, каб купіць малака. 1003 00:46:27,900 --> 00:46:30,480 >> Між тым, вы прыходзіце дамоў, ён ці яна прыходзіць дадому, і што рабіць 1004 00:46:30,480 --> 00:46:31,980 Вы ў канчатковым рахунку ёсць? 1005 00:46:31,980 --> 00:46:33,080 Удвая больш малака. 1006 00:46:33,080 --> 00:46:34,620 Але вы сапраўды не падабаецца малако, што шмат. 1007 00:46:34,620 --> 00:46:37,300 Так што зараз у вас ёсць столькі малака, што зараз адзін з іх проста будзе ісці кіслы 1008 00:46:37,300 --> 00:46:37,820 у рэшце рэшт. 1009 00:46:37,820 --> 00:46:39,370 Так што гэта сапраўды дрэнная праблема. 1010 00:46:39,370 --> 00:46:39,900 Дакладна? 1011 00:46:39,900 --> 00:46:41,990 >> Так што ж адбылося? 1012 00:46:41,990 --> 00:46:44,810 Так прынцыпова, гэта свайго роду з смешны прыклад. 1013 00:46:44,810 --> 00:46:48,580 Але пад капотам, што мы мелі адбудзецца тут вы абодва праверылі 1014 00:46:48,580 --> 00:46:52,390 стан некаторай часткі памяці, халадзільнік. 1015 00:46:52,390 --> 00:46:54,420 Вы абодва праверылі стан некаторай зменнай. 1016 00:46:54,420 --> 00:46:57,360 Вы абодва зрабілі выснову што вы тады дзейнічалі на. 1017 00:46:57,360 --> 00:47:01,420 Але, на жаль, у той час як ваш сусед па пакоі быў у краме, стан, што 1018 00:47:01,420 --> 00:47:05,670 пераменная змянілася, ён ці яна вярнулася і зараз хоча, каб змяніць стан, але 1019 00:47:05,670 --> 00:47:07,480 гэта ўжо было зменена на яго або яе. 1020 00:47:07,480 --> 00:47:11,120 І, вядома, ён або яна не будзе мець пайшоў у краму, калі яны ведалі, 1021 00:47:11,120 --> 00:47:13,010 што вы ўжо былі ў дарозе. 1022 00:47:13,010 --> 00:47:16,430 >> Такім чынам, у рэальным свеце, як ты мог пазбегнуць гэтай праблемы, калі ў вас ёсць 1023 00:47:16,430 --> 00:47:18,940 халадзільнік, у вас ёсць сусед па пакоі, і вы на самой справе любіце малако? 1024 00:47:18,940 --> 00:47:19,760 >> АЎДЫТОРЫЯ: Зносіны. 1025 00:47:19,760 --> 00:47:20,580 >> Дэвід Малан: Зносіны. 1026 00:47:20,580 --> 00:47:21,160 ОК. 1027 00:47:21,160 --> 00:47:22,500 Але як вы маглі б мець зносіны? 1028 00:47:22,500 --> 00:47:23,990 >> АЎДЫТОРЫЯ: Пакіньце запіску. 1029 00:47:23,990 --> 00:47:25,480 >> Дэвід Малан: Пакіньце запіску, ці не так? 1030 00:47:25,480 --> 00:47:28,025 Заўсёды пакіньце запіску, для прыхільнікі шоў. 1031 00:47:28,025 --> 00:47:31,580 Добра, заўсёды пакідаюць запіску, або пакласці сапраўды, як на вісячы замак ці нешта 1032 00:47:31,580 --> 00:47:35,440 на халадзільнік, які трымае вашы сусед па пакоі ад агляду на стан 1033 00:47:35,440 --> 00:47:36,540 гэтая пераменная. 1034 00:47:36,540 --> 00:47:40,800 >> Цяпер, чаму гэта магло б быць дарэчныя ў Праблема ўсталяваць сем, або банкаматаў. 1035 00:47:40,800 --> 00:47:46,780 Ну, уявіце сабе свет, у банкамаце, дзе Вы маглі б быць у стане падняцца ў банкамат 1036 00:47:46,780 --> 00:47:48,920 Машына тут, а другі банкамат тут. 1037 00:47:48,920 --> 00:47:50,680 І гэта адбываецца даволі часта. 1038 00:47:50,680 --> 00:47:54,150 І выкажам здагадку, што ў вас ёсць два банкаўскіх картак, які можна атрымаць. 1039 00:47:54,150 --> 00:47:57,420 І вы ўваходзіце ў абедзвюх машынах эфектыўна адначасова, мы спадзяемся, 1040 00:47:57,420 --> 00:47:58,660 у той час як ніхто не глядзіць. 1041 00:47:58,660 --> 00:48:01,260 І тады вы ўводзіце ў PIN амаль адначасова. 1042 00:48:01,260 --> 00:48:06,280 І тады вы зрабіць баланс запыт каб убачыць, колькі грошай у вас ёсць. 1043 00:48:06,280 --> 00:48:08,920 І скажам, у вас ёсць $ 100 пакінулі ў вашай ўліковага запісу. 1044 00:48:08,920 --> 00:48:13,310 Так па сутнасці адначасова, вы кажуць адно, нуль, нуль, увядзіце. 1045 00:48:13,310 --> 00:48:16,000 І вы, спадзяемся вярнуцца трохі грошай. 1046 00:48:16,000 --> 00:48:18,440 >> Але колькі грошай вы можаце атрымаць назад? 1047 00:48:18,440 --> 00:48:21,710 Цяпер кампутары ў канцы працоўнага дня, асабліва калі яны кажуць з 1048 00:48:21,710 --> 00:48:27,360 серверы, не абавязкова рабіць тое, у тым парадку, гэта чакаецца. 1049 00:48:27,360 --> 00:48:30,860 >> Такім чынам, няхай тое, што адбываецца, таму што з якія б ні былі праблемы з хуткасцю сеткі там 1050 00:48:30,860 --> 00:48:34,530 з'яўляюцца, або пытанні CPU ёсць, або нічога падобнага, выкажам здагадку, што 1051 00:48:34,530 --> 00:48:38,530 першы банкамат правярае свой баланс і бачыць, о, у гэтага чалавека ёсць $ 100. 1052 00:48:38,530 --> 00:48:41,840 Але тады адцягваецца, таму што, можа быць, рэзервовае капіяванне адбываецца, і таму 1053 00:48:41,840 --> 00:48:42,500 запавольваецца. 1054 00:48:42,500 --> 00:48:45,080 Ці, можа быць, правяраючы, сетка падключэнне стала крыху больш павольна, таму што 1055 00:48:45,080 --> 00:48:45,910 гэта проста адбываецца. 1056 00:48:45,910 --> 00:48:47,100 Яны фізічных прылад. 1057 00:48:47,100 --> 00:48:49,330 Такім чынам, у той час, другі банкамат задаваць тое ж пытанне. 1058 00:48:49,330 --> 00:48:53,030 Колькі грошай Дэвід мець? $ 100 з'яўляецца адказам. 1059 00:48:53,030 --> 00:48:58,930 Але паколькі першы банкамат яшчэ не пасылаецца паведамленне адняць $ 100, як 1060 00:48:58,930 --> 00:49:03,000 Банкаматы агледзелі сховішча банка, бачачы там $ 100 ёсць, а цяпер 1061 00:49:03,000 --> 00:49:07,160 абедзве машыны патэнцыйна з'яўляюцца збіраецца выплюнуць адказ. 1062 00:49:07,160 --> 00:49:12,240 >> Цяпер, гэта выдатна для вас у пэўным сэнсе калі тое, што банк робіць у канчатковым рахунку, 1063 00:49:12,240 --> 00:49:17,200 гэта змяніць колькасць да мінус 100 па усталяваўшы зменную роўную вашай 1064 00:49:17,200 --> 00:49:21,570 банкаўскі рахунак роўны 0, у адрозненне рабіць мінус 100. 1065 00:49:21,570 --> 00:49:24,410 Цяпер у горшым выпадку для банка - 1066 00:49:24,410 --> 00:49:27,470 ці ў лепшым для банка, тым часам, яны даюць вам $ 200, і 1067 00:49:27,470 --> 00:49:31,690 ваш банкаўскі рахунак зараз паказвае адмоўны $ 100, што на самой справе не 1068 00:49:31,690 --> 00:49:32,950 на карысць вам наогул. 1069 00:49:32,950 --> 00:49:36,500 Але справа ў тым, што гэтая гонка стан на працягу двух суседзяў па пакоі, якія атрымліваюць 1070 00:49:36,500 --> 00:49:40,660 малако, або на працягу двух банкаматаў, якія спрабуюць атрымаць наяўныя грошы і змяніць стан сховішча 1071 00:49:40,660 --> 00:49:44,510 у той жа час існуе якой-небудзь раз у вас ёсць база дадзеных. 1072 00:49:44,510 --> 00:49:48,290 >> Зараз у праблеме ўсталяваць сем, гэтае пытанне ўзнікае ў тым сэнсе, што калі вы купляеце 1073 00:49:48,290 --> 00:49:52,110 Доля Facebook складзе, а затым на працягу Напрыклад, вы купляеце другі долю 1074 00:49:52,110 --> 00:49:55,160 Facebook акцыі, вы павінны пераканацца, Рашэнне аб тым, праграміста. 1075 00:49:55,160 --> 00:49:58,710 Для таго, каб вырашыць, як абнавіць У базе, шанцы вы збіраецеся 1076 00:49:58,710 --> 00:50:02,250 ёсць па адным радку для гэтай акцыі, і гэта з'яўляецца адным з спосабаў яе рэалізацыі. 1077 00:50:02,250 --> 00:50:06,640 І вы будзеце мець адну акцыю FB, які з'яўляецца іх сімвалам Біржавы сімвал 1078 00:50:06,640 --> 00:50:10,120 для гэтага імя карыстальніка, або гэтага карыстальніка ID, унікальны ідэнтыфікатар. 1079 00:50:10,120 --> 00:50:12,340 >> Але тая ж гісторыя можа адбыцца тут. 1080 00:50:12,340 --> 00:50:15,800 Калі вы збіраецеся рабіць ВЫБАР ў SQL, як вы ўбачыце ў задачы ўсталяваць сем, калі вы бачыце, 1081 00:50:15,800 --> 00:50:18,460 ой, Дэвід мае адну акцыю з Facebook складзе. 1082 00:50:18,460 --> 00:50:23,240 А цяпер дазвольце мне змяніць, каб гэта было дзве акцыі, таму што ён хоча купіць 1083 00:50:23,240 --> 00:50:24,120 Другая акцыя. 1084 00:50:24,120 --> 00:50:27,860 Але выкажам здагадку, што Дэвід на самай справе было два вокны браўзэра адкрыць, або выказаць здагадку, што 1085 00:50:27,860 --> 00:50:32,150 гэта агульны рахунак з двума мужам і жонкай, і абодва яны спрабуюць выканаць 1086 00:50:32,150 --> 00:50:36,770 тая ж аперацыя, там таксама існуе патэнцыял для прыняцця рашэння, каб быць 1087 00:50:36,770 --> 00:50:39,670 зроблены на аснове папярэдняга стан свету - 1088 00:50:39,670 --> 00:50:41,290 уліковы запіс мае адну акцыю - 1089 00:50:41,290 --> 00:50:45,630 і абодва чалавек, або абодва сервера, цяпер паспрабуйце сказаць павялічваць яго да двух акцый. 1090 00:50:45,630 --> 00:50:49,020 Але ў гэтым выпадку, вы, магчыма, спаганяецца мне грошы для абедзвюх акцый, але 1091 00:50:49,020 --> 00:50:50,830 павялічваецца толькі, што адзін раз. 1092 00:50:50,830 --> 00:50:54,730 >> Карацей кажучы, асноўная праблема тут, як і з жартам аб сыходзе 1093 00:50:54,730 --> 00:50:58,750 Адзначым, або пакласці замак на ім, з'яўляецца калі два чалавекі, або два патокі - 1094 00:50:58,750 --> 00:50:59,930 ўспомніце нуля - 1095 00:50:59,930 --> 00:51:03,220 можа праверыць стан некаторай зменнай , А затым паспрабаваць змяніць гэтую зменную, 1096 00:51:03,220 --> 00:51:07,950 але гэтыя дзве рэчы не адбываюцца ў У той жа час, але можа атрымаць перапынены 1097 00:51:07,950 --> 00:51:11,500 іншымі, што адбываецца, дадзеныя могуць патрапіць у вельмі дзіўным стане. 1098 00:51:11,500 --> 00:51:15,450 І вы можаце скарыстацца ці вы можаце пакутаваць у сэнсе на прыкладзе грошай. 1099 00:51:15,450 --> 00:51:18,110 >> Такім чынам, у праблеме ўсталяваць сем, мы даем вам гэта адна радок кода, якая доўгі 1100 00:51:18,110 --> 00:51:21,000 Карацей кажучы, вырашае гэтую праблему праблема ў MySQL. 1101 00:51:21,000 --> 00:51:24,950 Гэта вельмі доўга інструкцыя, якая ня нават размяшчэння на адной лініі на 1102 00:51:24,950 --> 00:51:30,370 Экран тут гарантуе, што ваш аперацыя тое, што называецца атамарным. 1103 00:51:30,370 --> 00:51:33,720 Усё гэта адбываецца адразу, або так не бывае наогул. 1104 00:51:33,720 --> 00:51:37,530 Гэта вельмі доўга фраза не можа атрымаць перапынены часткова. 1105 00:51:37,530 --> 00:51:39,840 >> І тое, што яна робіць, гэта ў літаральным сэнсе што ён кажа. 1106 00:51:39,840 --> 00:51:44,200 Устаўце ў некаторай табліцы наступнае тры палі гэтыя канкрэтныя значэнні, 1107 00:51:44,200 --> 00:51:47,280 але на дублікат ключа, не рабіць ўстаўкі. 1108 00:51:47,280 --> 00:51:48,280 У абнаўлення. 1109 00:51:48,280 --> 00:51:52,450 Так што гэта, як рабіць ВЫБАР і INSERT так сказаць у той жа час. 1110 00:51:52,450 --> 00:51:55,150 І тое, што гэта ключ, які, верагодна, называюцца сюды? 1111 00:51:55,150 --> 00:51:58,300 1112 00:51:58,300 --> 00:52:01,380 >> Аказваецца, і вы ўбачыце гэта ў Праблема ўсталяваць сем у спецыфікацыі, так як 1113 00:52:01,380 --> 00:52:06,040 мы абвясцілі там быць унікальны ключ На гэтай канкрэтнай табліцы такім чынам, каб 1114 00:52:06,040 --> 00:52:08,480 вы не можаце мець некалькі радкоў для аднаго карыстальніка з 1115 00:52:08,480 --> 00:52:10,150 ж дробныя акцыі сімвал - 1116 00:52:10,150 --> 00:52:13,780 у гэтым прыкладзе тут, DVN.V з'яўляецца дурная дробныя акцыі, што мы 1117 00:52:13,780 --> 00:52:14,980 гл ў спецыфікацыі. 1118 00:52:14,980 --> 00:52:17,860 Таму што мы абвясцілі, што гэта будзе унікальны, што гэта значыць, што калі вы 1119 00:52:17,860 --> 00:52:23,580 паспрабаваць ўставіць дублікат радкі, вы замест збіраецца абнаўляць яго без 1120 00:52:23,580 --> 00:52:27,020 хто-небудзь яшчэ, які мае шанец змяніць стан свету небудзь. 1121 00:52:27,020 --> 00:52:29,400 Карацей кажучы, гэта гарантуе, рэчы атамная. 1122 00:52:29,400 --> 00:52:32,530 >> У больш агульным, хоць, базы дадзеных як MySQL - 1123 00:52:32,530 --> 00:52:35,460 і вам не трэба гэтую функцыю для р-задаць сем, але мець на ўвазе, для 1124 00:52:35,460 --> 00:52:36,200 будучыня - 1125 00:52:36,200 --> 00:52:38,870 падтрымлівае тое, што называюць здзелкі, дзе вы можаце сказаць, 1126 00:52:38,870 --> 00:52:40,990 Пачаць транзакцыю ў літаральным сэнсе. 1127 00:52:40,990 --> 00:52:43,270 Пасля гэтага можна выканаць дзве заявы SQL. 1128 00:52:43,270 --> 00:52:45,710 І SQL заяву, як вы ўбачыце у р-ўсталяваць сем, выглядае трохі 1129 00:52:45,710 --> 00:52:46,750 нешта накшталт гэтага. 1130 00:52:46,750 --> 00:52:48,820 Абнавіць табліцу з імем ўліковага запісу. 1131 00:52:48,820 --> 00:52:52,550 Усталюйце калонку балансу, роўны ўсё слупок баланс у цяперашні час 1132 00:52:52,550 --> 00:52:57,280 мінус 1000, дзе колькасць, нумар рахунку, як ідэнтыфікатар карыстальніка, 1133 00:52:57,280 --> 00:53:00,830 роўная 2, а затым абнавіць кошт кропка кропка кропка. 1134 00:53:00,830 --> 00:53:04,350 >> Так з пункту гледжання непрафесіяналы, тое, што робяць гэтыя два запыты, здаецца, робяць у 1135 00:53:04,350 --> 00:53:05,840 рэальны свет пачуццё банкінгу? 1136 00:53:05,840 --> 00:53:07,440 >> АЎДЫТОРЫЯ: Перанос да эканоміі. 1137 00:53:07,440 --> 00:53:08,020 >> Дэвід Малан: Цалкам дакладна. 1138 00:53:08,020 --> 00:53:10,470 Пераклад сродкаў ад аднаго рахункі на іншы. 1139 00:53:10,470 --> 00:53:14,400 І гэта яшчэ адзін прыклад, дзе вы сапраўды хочаце, каб гэтыя дзве рэчы здарыцца 1140 00:53:14,400 --> 00:53:15,570 або ня адбыцца. 1141 00:53:15,570 --> 00:53:18,880 Вы не хочаце, каб нешта атрымаць у сярэдні з іх і патэнцыйна сапсаваць 1142 00:53:18,880 --> 00:53:22,220 матэматыка або сапсаваць, колькі ў вас грошай, ці колькі 1143 00:53:22,220 --> 00:53:23,170 грошы ў банка. 1144 00:53:23,170 --> 00:53:26,890 Так у чым жа сапраўды добра аб здзелках у MySQL з'яўляецца тое, што і 1145 00:53:26,890 --> 00:53:30,160 баз дадзеных больш агульным сэнсе, што яны і разумныя людзі, якія рэалізаваны 1146 00:53:30,160 --> 00:53:33,670 гэтыя асаблівасці высветліць, як зрабіць Пераканайцеся, што абедзве гэтыя рэчы здараюцца 1147 00:53:33,670 --> 00:53:35,120 ці няма наогул. 1148 00:53:35,120 --> 00:53:38,580 >> І калі вы сапраўды якія імкнуцца зрабіць сайт, які выкарыстоўваецца людзьмі на 1149 00:53:38,580 --> 00:53:41,490 кампус, людзі ў рэальным свеце, робячы нешта ў тым сэнсе, запуску, 1150 00:53:41,490 --> 00:53:43,300 гэтыя віды праектныя рашэнні, якія 1151 00:53:43,300 --> 00:53:45,020 становяцца ўсё так важна. 1152 00:53:45,020 --> 00:53:48,240 У адваротным выпадку, вы пачынаеце губляць дадзеныя, губляюць карыстальнікі, або ў горшым выпадку, як 1153 00:53:48,240 --> 00:53:51,800 мы бачылі тут, патэнцыйна губляюць грошы. 1154 00:53:51,800 --> 00:53:56,180 Такім чынам, яшчэ раз, больш падрабязна пра гэта ў задачы ўсталяваць сем, а таксама, магчыма, для некаторых 1155 00:53:56,180 --> 00:53:57,530 Вы ў фінальных праектаў. 1156 00:53:57,530 --> 00:54:01,870 >> Так давайце зменім гэтую карціну, мы павінны былі некалькі раней, проста ў яшчэ адзін спосаб. 1157 00:54:01,870 --> 00:54:04,070 Такім чынам, дазвольце мне на самай справе ўбачыць, калі я магу - 1158 00:54:04,070 --> 00:54:06,030 Не, гэта не было. 1159 00:54:06,030 --> 00:54:06,690 Там гэта. 1160 00:54:06,690 --> 00:54:09,020 >> Так што гэта, дзе мы пакінулі ў мінулы раз. 1161 00:54:09,020 --> 00:54:12,390 І атрымліваецца, што мы збіраемся, каб кінуць яшчэ адна рэч ў мікс тут - 1162 00:54:12,390 --> 00:54:14,510 мова называецца JavaScript. 1163 00:54:14,510 --> 00:54:18,060 Так JavaScript на самай справе падыходзіць у гэтай частцы - 1164 00:54:18,060 --> 00:54:22,086 і я не зусім пакінуць досыць месцы, так што гэта не цяпер у маштабе. 1165 00:54:22,086 --> 00:54:23,900 ОК, гэта сапраўды шкада. 1166 00:54:23,900 --> 00:54:27,075 ОК, так што гэта JavaScript. 1167 00:54:27,075 --> 00:54:27,340 Добра. 1168 00:54:27,340 --> 00:54:28,760 Я сапраўды робіць яму мядзведжую паслугу. 1169 00:54:28,760 --> 00:54:29,390 Добра. 1170 00:54:29,390 --> 00:54:34,790 >> Так JavaScript з'яўляецца яшчэ адным праграмавання мова, і наша апошняя, калі гэта дапамагае 1171 00:54:34,790 --> 00:54:37,770 супакоіць, што не нашмат больш, з пажарных гідрантаў тут. 1172 00:54:37,770 --> 00:54:41,100 Так JavaScript таксама інтэрпрэтуецца мова, а значыць, вы не 1173 00:54:41,100 --> 00:54:42,670 скампіляваць яго ў нулёў і адзінак. 1174 00:54:42,670 --> 00:54:43,690 Вы проста запусціце яго. 1175 00:54:43,690 --> 00:54:47,680 Але тое, што прынцыпова адрозніваецца з JavaScript звычайна з'яўляецца тое, што вы 1176 00:54:47,680 --> 00:54:49,815 ня запусціць яго на вашым вэб-серверы. 1177 00:54:49,815 --> 00:54:52,570 Гэта не становіцца працаваць у Прыбор па сабе. 1178 00:54:52,570 --> 00:54:57,490 Хутчэй, ён атрымлівае загружаны карыстальнікам праз HTTP ў свой браўзэр - 1179 00:54:57,490 --> 00:55:00,260 Chrome, Safari, Internet Explorer, Firefox, што заўгодна, - 1180 00:55:00,260 --> 00:55:03,860 і гэта браўзэр, які выконвае гэты канкрэтны мова праграмавання. 1181 00:55:03,860 --> 00:55:08,000 >> Такім чынам, каб было ясна, PHP да гэтага часу было выконваецца або ў камандным радку ў 1182 00:55:08,000 --> 00:55:11,290 наш чорна-белае акно, на сэрвэры як прыбор, кампутар 1183 00:55:11,290 --> 00:55:14,490 як прылады, ці гэта было выкананы на вэб-сэрвэры 1184 00:55:14,490 --> 00:55:15,860 працуе на кампутары. 1185 00:55:15,860 --> 00:55:20,490 Але тэма тут з'яўляецца тое, што PHP да гэтага часу быў выкананы на боку сервера, так 1186 00:55:20,490 --> 00:55:24,820 карыстальнік і браўзэр карыстальніка ніколі не бачыць лінію PHP кода. 1187 00:55:24,820 --> 00:55:28,530 >> На самай справе, калі вы калі-небудзь адкрыць браўзэр для ваш сайт або іншы, і вы 1188 00:55:28,530 --> 00:55:32,400 фактычна бачыць PHP код у акне, хтосьці аблажаўся. 1189 00:55:32,400 --> 00:55:34,950 Таму што гэта не павінна быць адпраўлены ў браўзэр непасрэдна. 1190 00:55:34,950 --> 00:55:38,150 Гэта, як мяркуецца, якая будзе выканана і павярнуўся ў нешта накшталт HTML. 1191 00:55:38,150 --> 00:55:40,120 >> Але ў JavaScript па сутнасці наадварот. 1192 00:55:40,120 --> 00:55:44,350 Гэта прызначаецца, каб быць запушчаны як правіла, усярэдзіне з акна браўзэра карыстальніка. 1193 00:55:44,350 --> 00:55:46,840 І якія віды сайтаў выкарыстоўваюць JavaScript, то ў гэтыя дні? 1194 00:55:46,840 --> 00:55:49,640 1195 00:55:49,640 --> 00:55:52,180 >> Як літаральна кожнага папулярнага вэб-сайта. 1196 00:55:52,180 --> 00:55:55,430 Кожны вэб-сайт, што вы, хлопцы, верагодна, выкарыстоўваць штодня выкарыстоўваць наяўнасць для 1197 00:55:55,430 --> 00:55:57,330 просты і нават самыя сэксуальныя асаблівасці. 1198 00:55:57,330 --> 00:55:59,800 >> Так нешта накшталт Facebook Чат, калі вы выкарыстоўваеце гэта. 1199 00:55:59,800 --> 00:56:01,040 Як гэта на самай справе працуе? 1200 00:56:01,040 --> 00:56:05,090 Ну да гэтага часу, усе рэчы мы зроблена з HTML і PHP мяркуе, што 1201 00:56:05,090 --> 00:56:08,750 Вы падцягнуць URL, і вы патрапілі Enter, і вы бачыце HTML кантэнт. 1202 00:56:08,750 --> 00:56:11,970 І вы націснеце на спасылку, якая змяняе URL, змяняе старонку, і перазагружаецца 1203 00:56:11,970 --> 00:56:12,740 некаторыя новы змест. 1204 00:56:12,740 --> 00:56:16,340 Націсніце іншы URL або адправіць форму, вы атрымаць ўзбітым на іншую старонку і 1205 00:56:16,340 --> 00:56:17,420 вы бачыце новага змесціва. 1206 00:56:17,420 --> 00:56:22,710 >> Але, выкарыстоўваючы нешта накшталт Facebook Chat, або Gchat або Google Maps, рэдка 1207 00:56:22,710 --> 00:56:27,350 робіць ўся старонка абнавіць такім чынам, што вы бачыце белы экран на імгненне і 1208 00:56:27,350 --> 00:56:28,470 то новы змест. 1209 00:56:28,470 --> 00:56:32,610 Хутчэй, вэб-старонкі сёння дынамічна атрыманне абнаўляюцца зноў і 1210 00:56:32,610 --> 00:56:35,570 зноў і зноў усё накшталт з за кулісамі. 1211 00:56:35,570 --> 00:56:38,560 І атрымліваецца, што, калі вы сапраўды ідзяце ў нешта накшталт Facebook або Gchat, 1212 00:56:38,560 --> 00:56:43,050 або Gmail, а абнаўлення старонкі аўтаматычна без перазагрузкі 1213 00:56:43,050 --> 00:56:47,630 ўвесь экран, што адбылося ў тым, што Ваш браўзэр зрабіў выгляд таемна 1214 00:56:47,630 --> 00:56:49,410 дадатковыя HTTP запыты - 1215 00:56:49,410 --> 00:56:52,740 ня для цэлых вэб-старонак, але толькі для маленькія порцыі дадзеных, як 1216 00:56:52,740 --> 00:56:55,740 імгненнае паведамленне, што ваш сябар толькі паслаў цябе, або абнаўленне статусу, што 1217 00:56:55,740 --> 00:56:58,210 хтосьці проста паслаў цябе, альбо твіт што хтосьці толькі што адправіў. 1218 00:56:58,210 --> 00:57:02,120 Гэта проста зрабіць невялікія запыты на Дадзеныя, а затым з дапамогай Javascript, Гэты 1219 00:57:02,120 --> 00:57:06,370 мова праграмавання, каб змяніць тое, што вэб-старонка выглядае без 1220 00:57:06,370 --> 00:57:09,860 сервер дапамагае без сервера генерацыі, што HTML. 1221 00:57:09,860 --> 00:57:13,820 >> Карацей кажучы, JavaScript можа быць выкарыстаны тады каб не толькі прынесці новыя дадзеныя ад 1222 00:57:13,820 --> 00:57:16,750 сервер без перазагрузкі цэлае старонкі ці адпраўка формы. 1223 00:57:16,750 --> 00:57:20,060 Ён таксама можа быць выкарыстаны для змены так званы DOM - 1224 00:57:20,060 --> 00:57:21,520 Аб'ектная мадэль дакумента - 1225 00:57:21,520 --> 00:57:24,620 , Які з'яўляецца проста мудрагелісты спосаб для кажучы дрэва HTML 1226 00:57:24,620 --> 00:57:26,220 што мы бачылі ў апошні раз. 1227 00:57:26,220 --> 00:57:31,640 >> Такім чынам, каб супакоіць, JavaScript з'яўляецца сінтаксічна так падобны на C, а таксама. 1228 00:57:31,640 --> 00:57:32,820 Там ня мае асноўнага функцыяй. 1229 00:57:32,820 --> 00:57:35,430 Вы проста пачаць пісаць код і ён будзе атрымаць выкананы, або 1230 00:57:35,430 --> 00:57:36,900 інтэрпрэтаваць больш правільна. 1231 00:57:36,900 --> 00:57:38,660 Умовы будзе выглядаць наступным чынам. 1232 00:57:38,660 --> 00:57:41,230 Нічым не адрозніваецца ад C або PHP па гэтым пытанні. 1233 00:57:41,230 --> 00:57:43,890 Лагічныя выразы альбо-е выд разам будзе выглядаць наступным чынам. 1234 00:57:43,890 --> 00:57:45,590 ANDed разам выглядаць наступным чынам. 1235 00:57:45,590 --> 00:57:47,750 >> Перамыкачы будзе выглядаць наступным чынам. 1236 00:57:47,750 --> 00:57:49,440 Для завесы будзе выглядаць наступным чынам. 1237 00:57:49,440 --> 00:57:51,060 У той час як завесы будуць выглядаць наступным чынам. 1238 00:57:51,060 --> 00:57:53,316 У а завесы будзе выглядаць наступным чынам. 1239 00:57:53,316 --> 00:57:54,780 >> Гэта новая. 1240 00:57:54,780 --> 00:57:58,753 Так JavaScript не мае Еогеасп пабудаваць як такой, але гэтая канструкцыя 1241 00:57:58,753 --> 00:58:03,870 для зменнай я ў масіве, і я ў гэтым справа становіцца значэнне індэкса. 1242 00:58:03,870 --> 00:58:06,880 Так што гэта трохі адрозніваецца ад той, Еогеасп, хоць новыя версіі 1243 00:58:06,880 --> 00:58:10,280 JavaScript выходзяць ўвесь час, так што нават гэтыя магчымасці мовы 1244 00:58:10,280 --> 00:58:10,880 развіваюцца. 1245 00:58:10,880 --> 00:58:16,920 >> І як у бок, JavaScript днях таксама могуць быць выкарыстаны на сэрвэры гэтак жа, як 1246 00:58:16,920 --> 00:58:19,920 PHP з выкарыстаннем базы пад назвай Node.js. 1247 00:58:19,920 --> 00:58:24,670 Адзін з CS50 ў ТФ, Кевін, прывяло семінар па Node.js, што даступна ў 1248 00:58:24,670 --> 00:58:26,440 cs50.net/seminars. 1249 00:58:26,440 --> 00:58:28,830 Так што калі вам цікава, ведаюць, што вам можаце выкарыстоўваць гэта на боку сервера, як 1250 00:58:28,830 --> 00:58:33,870 добра, але гэта даволі нядаўняя тэндэнцыя, але магутны ў гэтым. 1251 00:58:33,870 --> 00:58:35,270 >> Гэта крыху адрозніваецца. 1252 00:58:35,270 --> 00:58:37,910 Гэта масіў у JavaScript. 1253 00:58:37,910 --> 00:58:40,115 І тое, што здаецца вам розныя у параўнанні з C або PHP? 1254 00:58:40,115 --> 00:58:43,890 1255 00:58:43,890 --> 00:58:47,420 Ёсць некалькі простых гісторый мы можам сказаць тут. 1256 00:58:47,420 --> 00:58:49,367 Чаго не хапае ў параўнанні з PHP? 1257 00:58:49,367 --> 00:58:51,652 >> АЎДЫТОРЫЯ: [неразборліва]. 1258 00:58:51,652 --> 00:58:52,110 >> Дэвід Малан: Так? 1259 00:58:52,110 --> 00:58:53,322 На жаль, яшчэ раз сказаць? 1260 00:58:53,322 --> 00:58:54,740 >> АЎДЫТОРЫЯ: Ці не абвяшчаючы тып зменнай. 1261 00:58:54,740 --> 00:58:56,390 >> Дэвід Малан: Мы не абвясціўшы тып зменнай. 1262 00:58:56,390 --> 00:58:59,630 Таму на самай справе зусім як PHP, мы не Паказваючы тып гэтай зменнай. 1263 00:58:59,630 --> 00:59:02,670 Хутчэй, мы ў больш агульным кажучы вар для зменнай. 1264 00:59:02,670 --> 00:59:06,690 У нас няма непрыемнасць у PHP з знак даляра, які ў той час стомна 1265 00:59:06,690 --> 00:59:09,160 Тып, робіць больш ясным, што нешта пераменная. 1266 00:59:09,160 --> 00:59:11,830 У той час як тут, мы свайго роду назад Падыход C шляхам проста тэлефаную 1267 00:59:11,830 --> 00:59:14,500 пераменная па імі мы хочам , Каб даць яго, як нумары. 1268 00:59:14,500 --> 00:59:17,170 А таксама, як PHP, мы маем квадратныя дужкі для 1269 00:59:17,170 --> 00:59:19,170 значэнні ўнутры гэтага масіва. 1270 00:59:19,170 --> 00:59:22,490 >> Так зменныя ў JavaScript таксама можа выглядаць наступным чынам. 1271 00:59:22,490 --> 00:59:26,900 Звярніце ўвагу, тут гэта радок называецца з, але так жа ў нас не пазначаны 1272 00:59:26,900 --> 00:59:28,750 што гэта радок. 1273 00:59:28,750 --> 00:59:33,160 Тут, хоць гэта функцыя, якая ня існуюць у дакладнасці так жа, у PHP, 1274 00:59:33,160 --> 00:59:34,460 але трохі аналагічна. 1275 00:59:34,460 --> 00:59:36,530 Гэта аб'ект у JavaScript. 1276 00:59:36,530 --> 00:59:42,110 І аб'екты з'яўляюцца свайго роду швейцарскі армейскі Нож структуры дадзеных у гэтым вам 1277 00:59:42,110 --> 00:59:43,900 іх можна выкарыстоўваць для любога колькасці рэчаў. 1278 00:59:43,900 --> 00:59:46,860 >> Вось, напрыклад, мы абвясціўшы зменная з імем цытата. 1279 00:59:46,860 --> 00:59:49,110 Тып гэтай зменнай з'яўляецца аб'ектам. 1280 00:59:49,110 --> 00:59:53,550 Вы можаце думаць пра гэта як пра C структуры што мае ключы і значэння. 1281 00:59:53,550 --> 00:59:55,250 Сімвал з'яўляецца адным з ключавых. 1282 00:59:55,250 --> 00:59:57,350 FB гэта значэнне, па-відаць, Сімвал акцыі. 1283 00:59:57,350 --> 00:59:57,930 Коска. 1284 00:59:57,930 --> 01:00:02,180 Цана з'яўляецца яшчэ адным ключавым, і яго значэнне па-відаць, з якая плавае кропкай, або 1285 01:00:02,180 --> 01:00:06,510 лік у цэлым у JavaScript, з $ 49.26. 1286 01:00:06,510 --> 01:00:09,030 >> Такім чынам, PHP не мае - 1287 01:00:09,030 --> 01:00:12,980 мы не бачылі ў аб'ектах PHP даволі як гэта, але мы сапраўды бачылі, аналаг, 1288 01:00:12,980 --> 01:00:14,093 які быў і што? 1289 01:00:14,093 --> 01:00:14,980 >> АЎДЫТОРЫЯ: [неразборліва]. 1290 01:00:14,980 --> 01:00:16,110 >> Дэвід Малан: масівы Асацыятыўныя. 1291 01:00:16,110 --> 01:00:19,990 Так у той час як PHP мае асацыятыўныя масівы чые сінтаксіс калі-небудзь злёгку так 1292 01:00:19,990 --> 01:00:20,370 розныя - 1293 01:00:20,370 --> 01:00:21,780 мы бачылі квадратныя дужкі. 1294 01:00:21,780 --> 01:00:23,860 Мы бачылі дзіўныя стрэлкі знакаў. 1295 01:00:23,860 --> 01:00:27,330 JavaScript мае аб'екты, але гэта у асноўным семантычнае адрозненне і 1296 01:00:27,330 --> 01:00:29,260 адрозніваецца сінонімам цяпер. 1297 01:00:29,260 --> 01:00:35,060 Тым не менш, як у бок, PHP таксама мае аб'екты такім чынам, што Java і іншыя 1298 01:00:35,060 --> 01:00:37,810 мовы маюць аб'екты ў аб'ектна-арыентаванае праграмаванне. 1299 01:00:37,810 --> 01:00:40,440 Але мы будзем выкарыстоўваць іх толькі для тыпаў дадзеных для цяпер. 1300 01:00:40,440 --> 01:00:42,170 Аб'екты і асацыятыўныя масівы. 1301 01:00:42,170 --> 01:00:44,140 >> Гэта можна было б зрабіць яго трохі больш ясным. 1302 01:00:44,140 --> 01:00:45,890 Вось чаму аб'ект карысна. 1303 01:00:45,890 --> 01:00:48,760 Калі вы хочаце аб'явіць студэнта, як Zamyla, мы можам на самай справе 1304 01:00:48,760 --> 01:00:52,630 інкапсуляцыі так бы мовіць ўнутры, што аб'ект з дапамогай фігурных дужак, як 1305 01:00:52,630 --> 01:00:55,060 да цэлай кучай ключоў і значэння ў тут. 1306 01:00:55,060 --> 01:00:59,150 У нас ёсць ID, дом, і імя Zamyla, варта кропка з коскі ў якасці 1307 01:00:59,150 --> 01:01:00,690 звычайна ў канцы. 1308 01:01:00,690 --> 01:01:04,840 >> Тут, унізе таксама гэта крыху розныя, але і вельмі магутны 1309 01:01:04,840 --> 01:01:05,690 у гэтыя дні. 1310 01:01:05,690 --> 01:01:08,780 Вось масіў, і я ведаю, што, паколькі ёсць квадратная дужка да 1311 01:01:08,780 --> 01:01:11,090 верх і квадратная дужка у ніжняй часткі. 1312 01:01:11,090 --> 01:01:16,050 І гэта масіў, якія дадзеныя з увядзіце мабыць, у JavaScript? 1313 01:01:16,050 --> 01:01:21,260 Гэта масіў гэта выглядае як тры аб'екты. 1314 01:01:21,260 --> 01:01:24,580 І я ведаю, што гэта толькі аб'ектам з-за фігурныя дужкі. 1315 01:01:24,580 --> 01:01:28,760 І звярніце ўвагу, ёсць адкрытая фігурная дужка, некаторыя рэчы, недалёка фігурная дужка, коска, 1316 01:01:28,760 --> 01:01:31,180 затым яшчэ трохі, коска, а затым яшчэ трохі. 1317 01:01:31,180 --> 01:01:33,800 Дык вось тры аргумэнты падзеленыя двума коскамі. 1318 01:01:33,800 --> 01:01:36,810 >> Так што гэта масіў з трох аб'ектаў. 1319 01:01:36,810 --> 01:01:39,940 І кожны з гэтых аб'ектаў па-відаць, студэнт або супрацоўнік некаторых 1320 01:01:39,940 --> 01:01:42,370 роду, кожны з ID, дом, і імя. 1321 01:01:42,370 --> 01:01:45,060 Але я назваў гэта нешта называецца JSON - 1322 01:01:45,060 --> 01:01:47,450 JavaScript Object Notation. 1323 01:01:47,450 --> 01:01:52,060 І гэта фармат дадзеных, які на самай справе настолькі вельмі папулярныя і ў 1324 01:01:52,060 --> 01:01:55,100 модзе ў гэтыя дні, што, калі вы пішаце дадатак, якое выкарыстоўвае Facebook 1325 01:01:55,100 --> 01:01:59,150 API, API Twitter, сапраўды амаль любы API там у гэтыя дні, 1326 01:01:59,150 --> 01:02:02,820 у тым ліку некаторыя з CS50 ўласную, Дадзеныя вы вернецеся не ў 1327 01:02:02,820 --> 01:02:04,720 старая школа фармат CSV. 1328 01:02:04,720 --> 01:02:06,780 >> Таму нагадаем, што CSV супер проста. 1329 01:02:06,780 --> 01:02:10,230 Ён знаходзіцца ўсяго ў калоны, падзеленыя коскамі. 1330 01:02:10,230 --> 01:02:13,190 Дадзеныя JSON дае вам больш метададзеных. 1331 01:02:13,190 --> 01:02:17,800 Ён звязвае ключ з кожнага значэння так яны не павінны проста выказаць здагадку, што 1332 01:02:17,800 --> 01:02:22,460 слупок нулявая адно значэнне, калонка адзін іншы, калонка два гэта іншае. 1333 01:02:22,460 --> 01:02:26,790 Усе у аб'екце JSON тут з'яўляецца свайго роду з самоописываемыми, таму што кожны 1334 01:02:26,790 --> 01:02:30,940 адно з імёнаў у гэтым файле ёсць літаральна назваць перад ім, як 1335 01:02:30,940 --> 01:02:32,510 двукоссях. 1336 01:02:32,510 --> 01:02:34,950 >> Такім чынам, давайце зірнем на Некалькі прыкладаў тут. 1337 01:02:34,950 --> 01:02:36,800 Адпусьці мяне ў прыбор. 1338 01:02:36,800 --> 01:02:41,000 І дазвольце мне перайсці ў наш віртуальны хост Каталог, у грамадскасці. 1339 01:02:41,000 --> 01:02:45,590 І дазвольце мне перайсці ў JavaScript каталог. 1340 01:02:45,590 --> 01:02:49,610 І давайце ісці наперад і адкрыць дом-0.html, дзе DOM проста азначае, 1341 01:02:49,610 --> 01:02:51,010 аб'ектная мадэль дакумента. 1342 01:02:51,010 --> 01:02:53,490 Гэта дрэва матэрыял, да якога Я казаў раней. 1343 01:02:53,490 --> 01:02:54,950 >> І дазвольце мне прапанаваць наступнае. 1344 01:02:54,950 --> 01:02:57,720 Вось вэб-старонка якога Цела даволі просты. 1345 01:02:57,720 --> 01:03:00,170 Так тут унізе, заўважыць мяне ёсць форма. 1346 01:03:00,170 --> 01:03:01,500 Мы бачылі тых, перад. 1347 01:03:01,500 --> 01:03:07,600 Ён мае два ўваходу, адзін з якіх мае Ідэнтыфікатар імя, адзін з якіх мае тып 1348 01:03:07,600 --> 01:03:09,830 прадставіць, і першы сваё тып тэксту. 1349 01:03:09,830 --> 01:03:11,900 Так што гэта на самай справе гучыць даволі проста. 1350 01:03:11,900 --> 01:03:13,090 >> Пойдзем адсюль. 1351 01:03:13,090 --> 01:03:15,390 Давайце вернемся на гэтую старонку тут. 1352 01:03:15,390 --> 01:03:21,030 Пойдзем у лакальны, і ідзі ў наш каталог JavaScript, і перайсці да 1353 01:03:21,030 --> 01:03:24,640 дом-0, і тут мы маем гэтую форму. 1354 01:03:24,640 --> 01:03:26,550 Дык вось, па-відаць усё гэта старонка не змяшчае. 1355 01:03:26,550 --> 01:03:28,740 Ён мае поле імя з кнопку Адправіць. 1356 01:03:28,740 --> 01:03:30,340 Але я не збіраюся выкарыстоўваць PHP тут. 1357 01:03:30,340 --> 01:03:34,310 Я збіраюся зрабіць усё, на баку кліента так сказаць у JavaScript наступным чынам. 1358 01:03:34,310 --> 01:03:39,100 >> Звярніце ўвагу, што я сапраўды атрымаў імя Поле гэтага ўваходу унікальны 1359 01:03:39,100 --> 01:03:42,350 Ідэнтыфікатар, які будзе на самой справе выратаваць мяне нейкі час у адзін момант. 1360 01:03:42,350 --> 01:03:45,480 І заўважце, я прадставіў іншы тэг ў галаве маёй вэб-старонцы, 1361 01:03:45,480 --> 01:03:46,565  тэг. 1362 01:03:46,565 --> 01:03:50,120 >> Так што гэта ў гэтым сэнсе, што JavaScript з'яўляецца мова праграмавання на баку кліента. 1363 01:03:50,120 --> 01:03:55,020 У гэтым выпадку, гэтак жа, як CSS, я паклаў гэта прама ўнутры майго HTML. 1364 01:03:55,020 --> 01:03:58,810 Але звярніце ўвагу, я абвясціў функцыю што выглядае трохі як PHP 1365 01:03:58,810 --> 01:04:01,530 сінтаксічна, але гэта на самай справе JavaScript, таму што зноў жа, гэта 1366 01:04:01,530 --> 01:04:03,920 на баку кліента ў браўзэры. 1367 01:04:03,920 --> 01:04:07,590 І зрабіць здагадку, што гэта будзе зрабіць, хоць некаторыя з сінтаксісу 1368 01:04:07,590 --> 01:04:09,338 тут з'яўляецца новым. 1369 01:04:09,338 --> 01:04:11,760 >> АЎДЫТОРЫЯ: прывітанне, хто б ні. 1370 01:04:11,760 --> 01:04:14,020 >> Дэвід Малан: Гэта будзе павітацца таго, хто наведвае гэтую старонку. 1371 01:04:14,020 --> 01:04:15,120 Дык як? 1372 01:04:15,120 --> 01:04:18,070 >> Так заўважыць, атрымліваецца, у JavaScript ёсць функцыя абвесткі (). 1373 01:04:18,070 --> 01:04:22,840 Гэта вельмі роду сумна функцыя, на самай справе проста, як правіла, раздражняць карыстальнікаў. 1374 01:04:22,840 --> 01:04:25,440 Гэта не той, які вы павінны сапраўды выкарыстоўваць звычайна, але гэта хуткі і брудны 1375 01:04:25,440 --> 01:04:27,710 спосаб роду друк нешта да графічным інтэрфейсам 1376 01:04:27,710 --> 01:04:29,180 інтэрфейс, як браўзэры. 1377 01:04:29,180 --> 01:04:31,400 Заўважце, што тут у мяне ёсць Радок у адзінарныя двукоссі. 1378 01:04:31,400 --> 01:04:36,010 Аказваецца, што ў адрозненне ад C, JavaScript можа на самай справе маюць выкарыстанні аднаго 1379 01:04:36,010 --> 01:04:38,730 цытуе, і, шчыра кажучы, гэта проста выгляд стылістычнага канвенцыі паміж 1380 01:04:38,730 --> 01:04:41,180 JavaScript праграмісты выкарыстоўваць адзінкавыя двукоссі. 1381 01:04:41,180 --> 01:04:43,750 PHP, яны на самой справе маюць некалькі іншы сэнс. 1382 01:04:43,750 --> 01:04:45,810 Але цяпер, проста ведаю, што што гэта адзіная прычына. 1383 01:04:45,810 --> 01:04:49,270 Канвенцыя ў JavaScript, што часта выкарыстоўваць адзінарныя двукоссі, але мы маглі б выкарыстоўваць 1384 01:04:49,270 --> 01:04:50,950 падвойныя двукоссі ў абодвух месцах, а таксама. 1385 01:04:50,950 --> 01:04:52,610 >> Так што гэта цікава. 1386 01:04:52,610 --> 01:04:56,430 Нагадаем, у апошні раз, што мы мелі, што малюнак на экране, які прыцягнуў дрэва 1387 01:04:56,430 --> 01:04:59,720 дзе вы мелі HTML вузел, і Галаўнога вузел, а вузел цела, 1388 01:04:59,720 --> 01:05:00,800 а затым некаторы тэкст. 1389 01:05:00,800 --> 01:05:04,700 Але быў адзін спецыяльны вузел у самы верх, што я назваў гэты дакумент. 1390 01:05:04,700 --> 01:05:08,260 Ну, аказваецца, у JavaScript, любы раз, калі вы напісаць праграму ў JavaScript 1391 01:05:08,260 --> 01:05:11,040 ў браўзэры, у вас ёсць доступ да спецыяльная глабальная пераменная. 1392 01:05:11,040 --> 01:05:14,130 Падобныя па духу суперглобальных РНР, гэты завецца ў 1393 01:05:14,130 --> 01:05:16,050 у ніжнім рэгістры дакумент. 1394 01:05:16,050 --> 01:05:21,480 >> Гэта як структуры, але гэтая структура таксама мае функцыі ўнутры яго. 1395 01:05:21,480 --> 01:05:23,790 Так C структура проста ёсць дадзеныя звычайна. 1396 01:05:23,790 --> 01:05:29,060 Але аб'ект JavaScript, так як гэта тэхнічна таксама мае функцыі, 1397 01:05:29,060 --> 01:05:31,830 інакш вядомы як метады, ўнутры яго. 1398 01:05:31,830 --> 01:05:35,750 І вы можаце выклікаць функцыю ўнутры гэты аб'ект у літаральным сэнсе робіць сваю 1399 01:05:35,750 --> 01:05:39,610 Імя, кропка, а затым назва функцыя, або зноў метад. 1400 01:05:39,610 --> 01:05:41,160 Гэта проста сінонімам, сапраўды. 1401 01:05:41,160 --> 01:05:42,450 >> І што гэтая функцыя рабіць? 1402 01:05:42,450 --> 01:05:43,840 Вы можаце роду здагадацца з назвы. 1403 01:05:43,840 --> 01:05:45,590 Атрымаць элемент па ID. 1404 01:05:45,590 --> 01:05:50,040 Дык гэта будзе пошук па вэб-старонку, пошук гэтае дрэва, шукаю 1405 01:05:50,040 --> 01:05:55,210 што вузел, AKA элемент, мае Унікальны ідэнтыфікатар цытатай канец цытаты імем. 1406 01:05:55,210 --> 01:05:56,560 І што тады я буду рабіць? 1407 01:05:56,560 --> 01:06:00,350 Я збіраюся атрымаць значэнне ўнутры што вузел у дрэве, і я збіраюся 1408 01:06:00,350 --> 01:06:02,580 неяк павітацца з такім імем. 1409 01:06:02,580 --> 01:06:05,360 >> Так зрабіць здагадку, нават калі мы не маю бачыў гэта ўсё ж, тое, што робяць плюс 1410 01:06:05,360 --> 01:06:07,396 сімвалы азначаюць тут і тут, верагодна,? 1411 01:06:07,396 --> 01:06:08,230 >> АЎДЫТОРЫЯ: Аб'яднанне. 1412 01:06:08,230 --> 01:06:09,220 >> Дэвід Малан: Аб'яднанне. 1413 01:06:09,220 --> 01:06:11,290 Так, і гэта толькі роду праектных рашэнняў 1414 01:06:11,290 --> 01:06:12,280 людзі зрабілі гадоў таму. 1415 01:06:12,280 --> 01:06:15,190 У PHP, вы аб'яднаць рэчы з кропкамі. 1416 01:06:15,190 --> 01:06:18,800 У C, вы скачаце праз некалькі абручоў і выклік такой функцыі як StrCopy () або 1417 01:06:18,800 --> 01:06:20,600 Strcat () або іншыя падобныя функцыі. 1418 01:06:20,600 --> 01:06:22,060 Але ў JavaScript, вы выкарыстоўваеце плюсы. 1419 01:06:22,060 --> 01:06:24,770 Так што гэта проста аб'яднання тры струны - 1420 01:06:24,770 --> 01:06:27,850 прывітанне, імя, а затым Клічнік. 1421 01:06:27,850 --> 01:06:30,390 >> Так што, калі і чаму гэтая функцыя называецца, хоць? 1422 01:06:30,390 --> 01:06:33,150 Ну, зрабіць здагадку ад HTML у ніжняй часткі. 1423 01:06:33,150 --> 01:06:35,810 Чаму вітаць () завецца, або калі? 1424 01:06:35,810 --> 01:06:39,730 1425 01:06:39,730 --> 01:06:44,030 >> Па-відаць, як лепшае, што я магу сказаць, на ўявіць, калі гэтая форма уяўляецца, 1426 01:06:44,030 --> 01:06:47,200 Я збіраюся зрабіць усё ўнутры гэтых двукоссяў. 1427 01:06:47,200 --> 01:06:50,900 І ў прыватнасці, я збіраюся патэлефанаваць вітаць (), а затым вярнуцца ілжывым. 1428 01:06:50,900 --> 01:06:53,090 >> Ну, давайце паглядзім, што чыстая Эфект тут у першую чаргу. 1429 01:06:53,090 --> 01:06:58,290 Такім чынам, дазвольце мне ісці наперад і ўвесці ў, скажам, Ларэн, Адправіць. 1430 01:06:58,290 --> 01:06:59,440 Добры дзень Ларэн. 1431 01:06:59,440 --> 01:07:02,990 Давайце паглядзім, калі магчыма гэта было проста пашанцавала рэалізацыя. 1432 01:07:02,990 --> 01:07:03,200 Не-е. 1433 01:07:03,200 --> 01:07:05,990 Так што гэта набраўшы з усе імя я на самой справе паклаў там. 1434 01:07:05,990 --> 01:07:07,970 >> Але звярніце ўвагу, што не мяняецца. 1435 01:07:07,970 --> 01:07:10,360 URL-адрас па-ранейшаму дом-0.html. 1436 01:07:10,360 --> 01:07:11,820 Там няма register.php. 1437 01:07:11,820 --> 01:07:13,110 Там няма другой файл. 1438 01:07:13,110 --> 01:07:14,930 Там няма атрыбут дзеянні. 1439 01:07:14,930 --> 01:07:19,720 Дык што ж гэта вяртанне ілжывым як мяркуецца, робіш? 1440 01:07:19,720 --> 01:07:23,660 Чаму я выкліку вітаць (), а затым вяртанне ілжывым напэўна? 1441 01:07:23,660 --> 01:07:26,420 Што звычайна адбываецца, калі вы націскаеце Адправіць на форме, што нават у нас ёсць 1442 01:07:26,420 --> 01:07:27,854 бачыў на мінулым тыдні? 1443 01:07:27,854 --> 01:07:29,900 >> АЎДЫТОРЫЯ: [неразборліва]. 1444 01:07:29,900 --> 01:07:30,860 >> Дэвід Малан: Само дзесьці, ці не так? 1445 01:07:30,860 --> 01:07:32,720 Гэта выходзіць на нейкі URL прызначэння. 1446 01:07:32,720 --> 01:07:34,120 Але я не хачу, каб гэта адбылося тут. 1447 01:07:34,120 --> 01:07:37,620 Я хачу, каб мой вэб-старонкі, каб быць цалкам дынамічны, як Gmail, дзе, як толькі вы 1448 01:07:37,620 --> 01:07:38,650 там, вы будзеце спыняцца там. 1449 01:07:38,650 --> 01:07:42,900 URL-адрас не змяняецца такім чынам, што паказвае ўся старонка перазарадкі. 1450 01:07:42,900 --> 01:07:46,680 Хутчэй, я проста хачу, каб нешта змяніць як друк нешта 1451 01:07:46,680 --> 01:07:48,320 тут на экране. 1452 01:07:48,320 --> 01:07:49,630 >> Ну дазвольце мне ачысціць гэта да няшмат. 1453 01:07:49,630 --> 01:07:55,370 Дазвольце мне адчыніць не дом-0, але дазвольце мне адкрыць Дом-2. 1454 01:07:55,370 --> 01:07:57,350 Сапраўды гэтак жа вы бачылі некаторыя сінтаксіс тут. 1455 01:07:57,350 --> 01:08:02,080 >> Аказваецца, што мы толькі што зрабіў выкарыстоўвае сыравіну JavaScript. 1456 01:08:02,080 --> 01:08:04,420 Так што гэта сапраўды мова JavaScript. 1457 01:08:04,420 --> 01:08:07,340 Некаторыя з вас могуць ведаць, з бібліятэка называецца JQuery. 1458 01:08:07,340 --> 01:08:09,980 >> Так JQuery не тое ж самае паняцці, як JavaScript. 1459 01:08:09,980 --> 01:08:14,110 Гэта проста бібліятэка, якая вельмі разумныя хлопец напісаў і папулярызаваў такія 1460 01:08:14,110 --> 01:08:18,100 , Што амаль кожны чалавек у свеце ў цяперашні час выкарыстоўвае JQuery пры выкарыстанні JavaScript. 1461 01:08:18,100 --> 01:08:20,890 І на першы погляд, шчыра кажучы, гэта выглядае крыху больш загадкавым. 1462 01:08:20,890 --> 01:08:24,990 Але вы знойдзеце, асабліва калі вы ідзяце там для вашага канчатковага праекта з вэб 1463 01:08:24,990 --> 01:08:29,029 развіццё, вы ўбачыце, што гэта чысціць рэчы і эканоміць вам даволі 1464 01:08:29,029 --> 01:08:30,229 некалькі радкоў кода. 1465 01:08:30,229 --> 01:08:33,189 >> Так што давайце проста погляд на тое, як гэтая форма працуе. 1466 01:08:33,189 --> 01:08:35,664 Звярніце ўвагу, што я выдаліць відаць ад майго HTML? 1467 01:08:35,664 --> 01:08:38,240 1468 01:08:38,240 --> 01:08:40,630 Там няма на прадставіць апрацоўшчык так бы мовіць. 1469 01:08:40,630 --> 01:08:41,470 Там няма атрыбуту. 1470 01:08:41,470 --> 01:08:43,359 Таму што вы ведаеце, што Я сапраўды не падабаецца? 1471 01:08:43,359 --> 01:08:45,640 Я адчуваў, што мы падалі да старых звычак там. 1472 01:08:45,640 --> 01:08:49,340 Гэтак жа, як гэта пачынала адчуваць сябе неакуратна змешвацца як CSS з 1473 01:08:49,340 --> 01:08:52,149 HTML, таму што вы, здаецца, кідалі розныя мовы па ўсім 1474 01:08:52,149 --> 01:08:56,180 месца, гэтак жа гэта пачалося адчуваць як дрэнны дарозе спусціцца, дзе 1475 01:08:56,180 --> 01:09:01,069 Я стаўлю код JavaScript ўнутры майго HTML, а не факторынгавыя яго. 1476 01:09:01,069 --> 01:09:02,279 >> Дык вось, ўрок тут. 1477 01:09:02,279 --> 01:09:05,080 У Дом-2.html, я факторынгу яго. 1478 01:09:05,080 --> 01:09:07,399 І я трохі рабіць рэчы рознаму. 1479 01:09:07,399 --> 01:09:09,630 На дадзены момант, я збіраюся махнуць рукамі на тое, што гэта сапраўды 1480 01:09:09,630 --> 01:09:10,590 пад капотам. 1481 01:09:10,590 --> 01:09:14,210 Але толькі зараз выказаць здагадку, што, што першы радок кода ў гэтай бібліятэцы 1482 01:09:14,210 --> 01:09:18,170 называецца JQuery проста азначае, калі Дакумент гатовы, выканайце наступныя дзеянні. 1483 01:09:18,170 --> 01:09:20,080 >> Паколькі вэб-старонкі можа заняць некаторы час для загрузкі. 1484 01:09:20,080 --> 01:09:23,029 Вы можаце быць на павольным інтэрнэце злучэнне, і гэта магло б быць спінінг 1485 01:09:23,029 --> 01:09:25,290 і спінінг, і, нарэшце, ён зараджаны. 1486 01:09:25,290 --> 01:09:29,060 Гэта радок кода проста кажа дачакайцеся ўся старонка будзе гатовая, дакумент 1487 01:09:29,060 --> 01:09:31,189 гатовы, перад выкананнем гэтага кода. 1488 01:09:31,189 --> 01:09:34,390 >> А цяпер звярніце ўвагу, гэта, верагодна, самы карысны першы 1489 01:09:34,390 --> 01:09:36,189 адабраць у JQuery. 1490 01:09:36,189 --> 01:09:42,140 Гэтая лінія тут вельмі блізкія па духу да гэтага значна даўжэй лініі тут. 1491 01:09:42,140 --> 01:09:46,920 У той час як у сырам кода JavaScript, ёсць існуе глабальны аб'ект дакумента, 1492 01:09:46,920 --> 01:09:50,460 ёсць функцыя GetElementById (), людзі, якія напісалі 1493 01:09:50,460 --> 01:09:55,720 JQuery спрошчана, што проста сказаць знак даляра, а затым унутры 1494 01:09:55,720 --> 01:10:00,250 дужкі паставіць дзве цытаты, а затым пакласці сімвал рашотка з наступным 1495 01:10:00,250 --> 01:10:02,250 унікальны ідэнтыфікатар вы хочаце захапіць. 1496 01:10:02,250 --> 01:10:06,170 Так гэта эквівалентна document.getElementById. 1497 01:10:06,170 --> 01:10:11,090 >> Між тым,. Уявіць проста азначае на прадстаўленне якой бы форме вы 1498 01:10:11,090 --> 01:10:14,240 спасылаючыся на злева, перайдзіце наперад і выканаць гэта. 1499 01:10:14,240 --> 01:10:16,600 Але цяпер гэта цікаўнасць таксама. 1500 01:10:16,600 --> 01:10:19,560 Што дзіўна аб тым, што Я вылучыў тут? 1501 01:10:19,560 --> 01:10:23,840 1502 01:10:23,840 --> 01:10:28,594 Мала таго, што гэта збольшага сінтаксічна новая, ёсць таксама нешта без вестак зніклыя. 1503 01:10:28,594 --> 01:10:29,558 >> АЎДЫТОРЫЯ: Гэта проста называецца функцыя? 1504 01:10:29,558 --> 01:10:31,970 Гэта не называецца абвесткі? 1505 01:10:31,970 --> 01:10:32,440 >> Дэвід Малан: Так. 1506 01:10:32,440 --> 01:10:35,450 Ну, так абвесткі () не працуе тут, каб быць справядлівым. 1507 01:10:35,450 --> 01:10:39,520 Але няма ніякай згадкі пра імя, як вы ведаеце, Foo або 1508 01:10:39,520 --> 01:10:40,980 нешта тут. 1509 01:10:40,980 --> 01:10:43,830 І на самай справе, гэта адна з асаблівасцяў з JavaScript, што гэта даволі 1510 01:10:43,830 --> 01:10:45,370 магутны, але і зусім новыя. 1511 01:10:45,370 --> 01:10:47,460 І PHP на самай справе мае гэта таксама. 1512 01:10:47,460 --> 01:10:49,500 >> Дазвольце мне ісці наперад і рабіць нешта сапраўды хутка. 1513 01:10:49,500 --> 01:10:52,030 Дазвольце мне ісці наперад і паставіць гэта тут. 1514 01:10:52,030 --> 01:10:52,600 Дазвольце мне зрабіць гэта. 1515 01:10:52,600 --> 01:10:53,690 Функцыя. 1516 01:10:53,690 --> 01:10:56,455 Давайце назавем гэты апрацоўшчык (). 1517 01:10:56,455 --> 01:10:58,290 Функцыя апрацоўшчыка, так бы мовіць. 1518 01:10:58,290 --> 01:11:00,110 Тое, што выконвае некаторыя аперацыі. 1519 01:11:00,110 --> 01:11:02,700 Дазвольце мне ачысціць свой водступу. 1520 01:11:02,700 --> 01:11:04,380 І паставіць гэта тут. 1521 01:11:04,380 --> 01:11:06,090 І што гэта тут. 1522 01:11:06,090 --> 01:11:06,470 Да. 1523 01:11:06,470 --> 01:11:07,060 ОК. 1524 01:11:07,060 --> 01:11:10,300 >> Так што зараз у мяне ёсць функцыя называецца апрацоўшчык (), што я сапраўды не ведаю, 1525 01:11:10,300 --> 01:11:10,890 што ён робіць яшчэ. 1526 01:11:10,890 --> 01:11:12,710 Гэта проста яшчэ ёсць такое. 1527 01:11:12,710 --> 01:11:13,900 На жаль. 1528 01:11:13,900 --> 01:11:15,820 Прыняў занадта шмат. 1529 01:11:15,820 --> 01:11:18,490 Давайце зробім гэта. 1530 01:11:18,490 --> 01:11:18,990 Добра. 1531 01:11:18,990 --> 01:11:20,240 Прабачце. 1532 01:11:20,240 --> 01:11:23,140 1533 01:11:23,140 --> 01:11:23,690 Добра. 1534 01:11:23,690 --> 01:11:24,720 Дазвольце мне зрабіць гэта. 1535 01:11:24,720 --> 01:11:25,020 ОК. 1536 01:11:25,020 --> 01:11:27,040 Гэта выглядае прыгожа і прама Цяпер наперад. 1537 01:11:27,040 --> 01:11:29,090 Дазвольце мне зрабіць гэта. 1538 01:11:29,090 --> 01:11:29,860 Зрабіце гэта. 1539 01:11:29,860 --> 01:11:30,950 І добра. 1540 01:11:30,950 --> 01:11:33,080 Так што цяпер, давайце паставім гэта тут. 1541 01:11:33,080 --> 01:11:35,840 1542 01:11:35,840 --> 01:11:37,270 Няма больш праграмавання на лета. 1543 01:11:37,270 --> 01:11:37,900 ОК. 1544 01:11:37,900 --> 01:11:40,000 >> Так што цяпер, давайце вернемся да дзе гісторыя пачалася. 1545 01:11:40,000 --> 01:11:43,530 Раней я казаў, што гэтая лінія тут значыць, калі дакумент будзе гатовы, перайдзіце 1546 01:11:43,530 --> 01:11:44,380 наперад і рабіць гэта. 1547 01:11:44,380 --> 01:11:45,660 Што я хачу зрабіць? 1548 01:11:45,660 --> 01:11:49,070 Ну канкрэтна, я хачу пайсці наперад і зрабіце наступнае. 1549 01:11:49,070 --> 01:11:53,700 Выканаць гэты радок кода, а затым тое, што я хачу, каб вы зрабіць, гэта патэлефанаваць гэтаму 1550 01:11:53,700 --> 01:11:56,370 працаваць пры адпраўцы формы. 1551 01:11:56,370 --> 01:11:57,730 >> Вось што цікава. 1552 01:11:57,730 --> 01:11:59,170 Гэта само па сабе не з'яўляецца функцыяй. 1553 01:11:59,170 --> 01:12:02,540 Звярніце ўвагу, я не паставіўшы дужкі тут, у звычайным рэжыме. 1554 01:12:02,540 --> 01:12:06,800 Я літаральна перадачы функцыі называецца апрацоўшчык () іншую функцыю 1555 01:12:06,800 --> 01:12:10,800 называецца Submit () у якасці аргументу як хоць гэта як зменную. 1556 01:12:10,800 --> 01:12:14,290 І гэта адна з асаблівасцяў JavaScript, з'яўляецца самім функцый 1557 01:12:14,290 --> 01:12:15,710 на самай справе проста аб'ектамі. 1558 01:12:15,710 --> 01:12:18,350 На самай справе, у рэчаіснасці яны зменных нейкі. 1559 01:12:18,350 --> 01:12:21,340 І калі назва функцыі апрацоўшчык (), няма ніякіх прычын, я не магу 1560 01:12:21,340 --> 01:12:23,390 перадаць яго ў якасці аргументу тут. 1561 01:12:23,390 --> 01:12:27,530 А гэта значыць, калі форма з ідэнтыфікатарам дэма 1562 01:12:27,530 --> 01:12:29,320 прадстаўленыя, выклікаць гэтую функцыю. 1563 01:12:29,320 --> 01:12:32,770 >> Але цяпер, калі я адмяню ўсё гэта, чаму тады я, магчыма, зрабіць 1564 01:12:32,770 --> 01:12:34,850 гэта хвіліну назад? 1565 01:12:34,850 --> 01:12:36,840 Ну, гэта ананімная функцыя. 1566 01:12:36,840 --> 01:12:41,080 Бо, шчыра кажучы, я зразумела, чаму я турбуе марнаваць час аб'явы 1567 01:12:41,080 --> 01:12:45,540 Функцыя называецца апрацоўшчыкам () толькі патэлефанаваць гэта ў адным і толькі адным месцы? 1568 01:12:45,540 --> 01:12:48,640 Калі мне не трэба імя, і я не трэба патэлефанаваць яго больш чым у адным месцы, 1569 01:12:48,640 --> 01:12:51,200 давайце проста рэалізаваць функцыю там, дзе мне гэта трэба. 1570 01:12:51,200 --> 01:12:55,190 І так JavaScript і PHP, што падтрымка называюцца ананімнымі функцыямі, што 1571 01:12:55,190 --> 01:12:57,900 Дазвольце мне зрабіць менавіта гэта тут. 1572 01:12:57,900 --> 01:12:59,570 >> Але мы проста падрапаць паверхню. 1573 01:12:59,570 --> 01:13:02,430 Давайце дражніць толькі з парай Канчатковы прыкладаў. 1574 01:13:02,430 --> 01:13:04,600 >> Калі я іду ў quote.php. 1575 01:13:04,600 --> 01:13:07,160 1576 01:13:07,160 --> 01:13:11,870 Звярніце ўвагу, што гэта на самай справе PHP функцыі, праграма PHP, які я напісаў 1577 01:13:11,870 --> 01:13:15,270 што чакае HTTP параметр, званы сімвал, і я магу перадаць у 1578 01:13:15,270 --> 01:13:16,730 значэнне, як FB. 1579 01:13:16,730 --> 01:13:20,010 І калі мы на самай справе паглядзець на зыходны кодзе, гэта запыт бясплатны сайт 1580 01:13:20,010 --> 01:13:23,680 называецца Yahoo Finance, як і P-набор сем, і ён вяртае мне 1581 01:13:23,680 --> 01:13:26,580 мабыць што-то ў Фармат JSON з'яўляецца вядомы - 1582 01:13:26,580 --> 01:13:28,010 Натацыі аб'ектаў JavaScript. 1583 01:13:28,010 --> 01:13:28,810 Гэта проста аб'ект. 1584 01:13:28,810 --> 01:13:32,500 Звярніце ўвагу на фігурныя дужкі, двукоссі тоўстай кішкі, і коскі. 1585 01:13:32,500 --> 01:13:34,720 >> Цяпер між тым, гэта даволі халаднавата. 1586 01:13:34,720 --> 01:13:38,520 Таму што я, верагодна, можа выкарыстоўваць праграмаванне мова для стварэння URL-адрасоў 1587 01:13:38,520 --> 01:13:40,370 які выглядае наступным чынам дынамічна, ці не так? 1588 01:13:40,370 --> 01:13:43,340 Я магу змяніць гэта на Google і вярнуцца ад Google 1589 01:13:43,340 --> 01:13:47,930 кошт акцый $ 1,017.55. 1590 01:13:47,930 --> 01:13:49,640 Такім чынам, давайце паглядзім, калі мы не можам выкарыстоўваць гэта цяпер. 1591 01:13:49,640 --> 01:13:56,590 >> Пусціце мяне да Ajax-0 тут, якія выглядае наступным чынам. 1592 01:13:56,590 --> 01:13:59,750 Гэта проста сайт, які мае форма з кнопкай. 1593 01:13:59,750 --> 01:14:05,860 Дазвольце мне пайсці далей і ўвесці YHOO для знака акцый Yahoo, націсніце кнопку Атрымаць 1594 01:14:05,860 --> 01:14:10,530 Цытата, і цяпер заўважаю я атрымаў папярэджанне 32.86. 1595 01:14:10,530 --> 01:14:14,050 >> Дазвольце мне на самой справе пайсці аматар версія на гэтай старонцы, версія два, а 1596 01:14:14,050 --> 01:14:17,530 увядзіце скажам, Microsoft, MSFT. 1597 01:14:17,530 --> 01:14:18,410 Атрымаць спецыяльная прапанова. 1598 01:14:18,410 --> 01:14:19,850 І зараз не заўважаеце, адсутнічае апавяшчэнне. 1599 01:14:19,850 --> 01:14:22,770 Звярніце ўвагу, дзе ён кажа цану , Якія будуць вызначаны? 1600 01:14:22,770 --> 01:14:27,060 Існуе просты з прыкладаў, якія намякае на тое Gchat і Facebook 1601 01:14:27,060 --> 01:14:30,070 Чат і Gmail, і іншыя падобныя вэб-сайты робяць на самай справе 1602 01:14:30,070 --> 01:14:31,290 змена вэб-старонкі. 1603 01:14:31,290 --> 01:14:31,800 >> Заўважым, што гэта. 1604 01:14:31,800 --> 01:14:33,120 Дазвольце мне перазагрузіце старонку. 1605 01:14:33,120 --> 01:14:35,080 Дазвольце мне адкрыць Інспектар Chrome. 1606 01:14:35,080 --> 01:14:36,890 Пусціце мяне да элементаў Ўкладка тут. 1607 01:14:36,890 --> 01:14:42,310 А цяпер звярніце ўвагу, калі я павялічу сюды і адкрыць гэта, звярніце ўвагу, што гэта мой 1608 01:14:42,310 --> 01:14:44,500 HTML DOM - мая аб'ектнай мадэлі дакумента. 1609 01:14:44,500 --> 01:14:45,920 Гэта мой HTML. 1610 01:14:45,920 --> 01:14:48,750 Але цяпер заўважаю, хоць гэта будзе быць трохі цяжка ўбачыць яго ў абодвух 1611 01:14:48,750 --> 01:14:52,080 месцах адначасова, калі я друкую ў FB тут, сочыце за ніжняй 1612 01:14:52,080 --> 01:14:54,110 на экране толькі. 1613 01:14:54,110 --> 01:14:57,720 >> Гэта на самай справе змены мой HTML на лета. 1614 01:14:57,720 --> 01:15:01,670 І ён робіць гэта даволі проста , Робячы нешта накшталт гэтага. 1615 01:15:01,670 --> 01:15:06,800 Калі я адкрываю Ajax-2, звярніце ўвагу рэалізацыі нешта так сэксуальна, як 1616 01:15:06,800 --> 01:15:09,560 , Што, хоць гэта даволі невыносны, але так складаныя, як, што 1617 01:15:09,560 --> 01:15:11,910 функцыянальна, яна мае некаторыя HTML у ніжняй часткі. 1618 01:15:11,910 --> 01:15:13,810 Але звярніце ўвагу, я выкарыстаў для тэга. 1619 01:15:13,810 --> 01:15:16,640 Мы не выкарыстаў гэта раней, але гэта як, але гэта не прымусіць 1620 01:15:16,640 --> 01:15:17,840 усё на новы радок. 1621 01:15:17,840 --> 01:15:20,830 Ён проста мае прастакутную вобласць на той жа лініі па сутнасці. 1622 01:15:20,830 --> 01:15:22,870 >> Звярніце ўвагу, што я даў яму ідэнтыфікатар цане. 1623 01:15:22,870 --> 01:15:26,800 І аказваецца, з дапамогай тых жа JavaScript бібліятэка, у мяне ёсць функцыя 1624 01:15:26,800 --> 01:15:30,440 называецца цытата (), якая выклікаецца кожны раз формы. 1625 01:15:30,440 --> 01:15:31,800 І тое, што я раблю гэта. 1626 01:15:31,800 --> 01:15:35,730 Я абвяшчаю зменную ў JavaScript называецца URL, захавання значэнні 1627 01:15:35,730 --> 01:15:38,650 quote.php? сімвала =. 1628 01:15:38,650 --> 01:15:44,220 Іншымі словамі, я сам пачынаю падрыхтаваць запыт HTTP, а затым 1629 01:15:44,220 --> 01:15:49,250 Я на гэтую аб'яднання з плюсам любы элемент з ID 1630 01:15:49,250 --> 01:15:54,190 з сімвала, які заўважыць, што тэкставае поле аж тут. 1631 01:15:54,190 --> 01:15:56,630 Гэтак жа, як у нас было формах у мінулым. 1632 01:15:56,630 --> 01:16:01,450 >> А потым высвятляецца, у JQuery, калі вы тэлефанаваць. Val (), якая выклікае з Val 1633 01:16:01,450 --> 01:16:05,900 функцыя, значэнне функцыі, якая атрымлівае тое, што карыстальнік ўвялі цалі 1634 01:16:05,900 --> 01:16:08,920 А затым усё сеткавыя трафіку што адбываецца гэта. 1635 01:16:08,920 --> 01:16:11,230 $. GetJSON. 1636 01:16:11,230 --> 01:16:13,720 >> І як у бок, знак даляра з'яўляецца проста скарочаная запіс. 1637 01:16:13,720 --> 01:16:16,860 Гэта сапраўды jQuery.getJSON. 1638 01:16:16,860 --> 01:16:21,520 Прымусіць мяне JSON з дадзенага адрасы, а калі Запыт вяртаецца, называюць гэтую 1639 01:16:21,520 --> 01:16:26,550 функцыі і перадаць у якасці аргументу што вярнуўся з сервера. 1640 01:16:26,550 --> 01:16:31,205 >> Такім чынам, іншымі словамі, калі я вярнуся да браўзэр, і я вяртаюся да quote.php, 1641 01:16:31,205 --> 01:16:35,590 што мой браўзэр робіць становіцца гэта кавалак дадзеных. 1642 01:16:35,590 --> 01:16:38,930 І калі я іду на гэтую вэб-старонку тут, заўважыць, калі мы замест гэтага перайсці да сеткі 1643 01:16:38,930 --> 01:16:43,820 ўкладку і чысціць яе, а затым увядзіце нешта накшталт GOOG для Google і атрымаць 1644 01:16:43,820 --> 01:16:46,340 Цытата, заўважылі старонкі не змяніўся. 1645 01:16:46,340 --> 01:16:50,990 Але запыт HTTP быў зроблены і што вярнулася сюды, калі мы паглядзім на 1646 01:16:50,990 --> 01:16:56,130 адказ цэлую кучу JSON што, нарэшце, мы атрымалі доступ з 1647 01:16:56,130 --> 01:16:58,070 гэтая простая лінія тут. 1648 01:16:58,070 --> 01:17:00,150 >> Дадзеныя атрымалі тое, што было з сервера. 1649 01:17:00,150 --> 01:17:02,120 Кошт назву ключавыя мяне хвалюе. 1650 01:17:02,120 --> 01:17:05,230 Так data.price дае мне, што. 1651 01:17:05,230 --> 01:17:07,540 >> Зараз тым часам, і гэта з'яўляецца апошнім прыкладам. 1652 01:17:07,540 --> 01:17:09,280 Вы можаце зрабіць яшчэ больш са старонкай. 1653 01:17:09,280 --> 01:17:12,440 Адзін на самай справе, ну два. 1654 01:17:12,440 --> 01:17:14,780 Мы можам вярнуць тэг, калі вы памятаеце пра гэта. 1655 01:17:14,780 --> 01:17:15,850 Вось JavaScript. 1656 01:17:15,850 --> 01:17:17,110 Мы можам зрабіць гэта. 1657 01:17:17,110 --> 01:17:17,690 Вельмі цікава. 1658 01:17:17,690 --> 01:17:18,800 Мы пакінем гэта ў якасці захапляльным. 1659 01:17:18,800 --> 01:17:21,590 >> Але больш узбуджальна, вы можаце рабіць такія рэчы. 1660 01:17:21,590 --> 01:17:25,940 Калі я іду да геолокации-1, то атрымліваецца, Chrome, што ведае, што мы знаходзімся на 1661 01:17:25,940 --> 01:17:30,672 Шырата Даўгата 42.37. -71,10. 1662 01:17:30,672 --> 01:17:32,940 Так што ёсць яшчэ больш ў вашым распараджэнні. 1663 01:17:32,940 --> 01:17:34,290 Але пра гэта на наступным тыдні. 1664 01:17:34,290 --> 01:17:35,540 Убачымся ў панядзелак. 1665 01:17:35,540 --> 01:17:37,558