1 00:00:00,000 --> 00:00:05,616 2 00:00:05,616 --> 00:00:07,030 >> HANNAH BLUMBERG: Hallo allerseits. 3 00:00:07,030 --> 00:00:09,530 Wir gehen, um loszulegen nur ein paar Minuten zu früh 4 00:00:09,530 --> 00:00:11,738 denn wir haben eine ganze Menge Material, um durchzukommen. 5 00:00:11,738 --> 00:00:12,790 Ich bin Hannah. 6 00:00:12,790 --> 00:00:13,865 Ich bin ein TF. 7 00:00:13,865 --> 00:00:16,239 Maria geht auf meine Tätigkeit uns in nur ein paar Minuten. 8 00:00:16,239 --> 00:00:17,560 Sie unterrichtet Abschnitt direkt vor. 9 00:00:17,560 --> 00:00:19,351 Ich unterrichte Abschnitt rechts nach, so werden wir 10 00:00:19,351 --> 00:00:21,200 um es in die anderthalb Stunden zu halten. 11 00:00:21,200 --> 00:00:25,490 >> So wie Sie hier sehen, haben wir ganz ein paar Themen, die wir brauchen, um durchzukommen, 12 00:00:25,490 --> 00:00:27,200 so werden wir schnell gehen ein wenig. 13 00:00:27,200 --> 00:00:31,140 Aber wenn an irgendeinem Punkt haben wir etwas zu sagen zu schnell oder die Sie nicht verstehen, 14 00:00:31,140 --> 00:00:33,170 fühlen sich frei, sich mit Fragen zu unterbrechen. 15 00:00:33,170 --> 00:00:36,610 Wir wollen in der Lage, diese eine zu machen Überblick Sitzung als nützlich erweisen, um alle von Ihnen 16 00:00:36,610 --> 00:00:37,973 wie möglich. 17 00:00:37,973 --> 00:00:38,920 Fantastisch. 18 00:00:38,920 --> 00:00:41,650 >> Lassen Sie uns also direkt rechts in mit Einige Themen, die wir tatsächlich 19 00:00:41,650 --> 00:00:46,980 sehr, sehr kurz für die überdachte quiz 0 im Quiz 0 Bewertung Sitzung. 20 00:00:46,980 --> 00:00:48,840 So beginnend mit verknüpften Listen. 21 00:00:48,840 --> 00:00:52,090 Also nur sicherstellen, dass Sie einige haben Grundkenntnisse über verkettete Listen 22 00:00:52,090 --> 00:00:55,110 und sind komfortabel zu tun einige der grundlegenden Operationen. 23 00:00:55,110 --> 00:00:58,560 >> Also nur zu überprüfen, verbunden Listen sind besser als Arrays 24 00:00:58,560 --> 00:01:01,020 weil sie dynamisch wachsen kann. 25 00:01:01,020 --> 00:01:03,300 Also müssen wir diese riesigen Vorteil. 26 00:01:03,300 --> 00:01:06,031 Wir haben gesehen, wie sie verwendet werden, in Hash-Tabellen, wenn wir 27 00:01:06,031 --> 00:01:08,280 weiß nicht genau, wie viele Dinge, die wir gehen zu wollen, 28 00:01:08,280 --> 00:01:10,900 in unser Datenstruktur einzufügen. 29 00:01:10,900 --> 00:01:15,700 Leider Stücke bieten wir die verknüpfte Liste aller Erinnerung, 30 00:01:15,700 --> 00:01:20,820 so dass wir nicht unbedingt in der Lage, konstante Zeitzugang zu tun 31 00:01:20,820 --> 00:01:22,502 zu jedem Element in der verketteten Liste. 32 00:01:22,502 --> 00:01:24,210 Um eine zu finden besondere Element, die wir 33 00:01:24,210 --> 00:01:26,510 müssen alle durchlaufen Weise von Anfang an. 34 00:01:26,510 --> 00:01:30,610 Also denken Sie daran, dass die meisten der Grundoperationen sind Omega von 1. 35 00:01:30,610 --> 00:01:32,130 So Einsatz ist gerade dabei, ein zu nehmen. 36 00:01:32,130 --> 00:01:37,520 Löschen wird n, da wir zu nehmen gehen müssen es aus der Liste. 37 00:01:37,520 --> 00:01:39,260 Und Such könnte im schlimmsten Fall zu nehmen,, n. 38 00:01:39,260 --> 00:01:42,330 Wir können nicht etwas zu tun binäre Suche auf eine verknüpfte Liste 39 00:01:42,330 --> 00:01:45,101 denn wir können nicht einfach zufällig springt in die Mitte. 40 00:01:45,101 --> 00:01:45,600 Cool. 41 00:01:45,600 --> 00:01:48,160 42 00:01:48,160 --> 00:01:48,960 Fantastisch. 43 00:01:48,960 --> 00:01:50,270 >> Ein wenig von der Stacks. 44 00:01:50,270 --> 00:01:53,980 Dies wiederum kam auf Quiz 0, so dass Sie sollte super bequem mit ihm. 45 00:01:53,980 --> 00:01:57,210 Aber für Stacks, bitten wir Sie, einen Stapel von Schalen erinnern. 46 00:01:57,210 --> 00:01:59,940 Und es wird zuerst in zu sein, heraus dauern. 47 00:01:59,940 --> 00:02:02,272 Also haben wir stapeln Dinge in dem Stapel, und 48 00:02:02,272 --> 00:02:04,980 wenn wir versuchen, etwas zu nehmen off-- die wir als Abspringen 49 00:02:04,980 --> 00:02:06,581 die stack-- wir kommen aus der Spitze. 50 00:02:06,581 --> 00:02:09,289 Und wenn wir auf etwas setzen wollen in dem Stapel, nennen wir es schieben. 51 00:02:09,289 --> 00:02:13,170 So ist es immer sein werden, bis wächst von der Unterseite wie ein Stapel von Tabletts. 52 00:02:13,170 --> 00:02:14,540 Fantastisch. 53 00:02:14,540 --> 00:02:17,607 >> Wir haben gesehen, Stacks implementiert mit beiden verknüpften Listen und Arrays. 54 00:02:17,607 --> 00:02:19,440 Wenn Sie die Durchführung sind mit Arrays, Sie wollen 55 00:02:19,440 --> 00:02:22,350 um sicherzustellen, dass, um zu verfolgen sowohl die Größe und die Kapazität. 56 00:02:22,350 --> 00:02:27,540 So Größe wird sich der Strom sein, Reihe von Dingen in Ihrem Stapel, 57 00:02:27,540 --> 00:02:32,900 in der Erwägung, Kapazität ist die Gesamtzahl Dinge, die Sie in Ihrem Stapel speichern kann. 58 00:02:32,900 --> 00:02:34,220 Cool. 59 00:02:34,220 --> 00:02:35,767 >> Sehr ähnlich, haben wir Warteschlangen. 60 00:02:35,767 --> 00:02:38,850 In diesem Fall, anstatt darüber nachzudenken, ein Stapel von Schalen, denken Sie an einer Linie. 61 00:02:38,850 --> 00:02:40,697 Das wird sein first in, first out. 62 00:02:40,697 --> 00:02:42,780 Also, wenn Sie Futter sind für etwas im Laden, 63 00:02:42,780 --> 00:02:46,920 wir hoffen, dass die Person, die erste in Linie wird sich zuerst geholfen werden. 64 00:02:46,920 --> 00:02:49,350 >> Anstatt zu sagen, Push und Pop, wie wir für die Stack zu tun, 65 00:02:49,350 --> 00:02:52,000 wir einfach sagen, Enqueue und dequeue. 66 00:02:52,000 --> 00:02:54,970 Und wieder, wenn Sie Umsetzung dieser mit einer Reihe, 67 00:02:54,970 --> 00:02:56,720 wir brauchen den Überblick zu behalten der nicht nur die Größe 68 00:02:56,720 --> 00:03:02,390 und die Kapazität, sondern auch der Kopf, der wird sich die vor unserem Warteschlange. 69 00:03:02,390 --> 00:03:03,010 Cool. 70 00:03:03,010 --> 00:03:05,770 Sie haben Fragen zu einem der das? 71 00:03:05,770 --> 00:03:06,320 Fantastisch. 72 00:03:06,320 --> 00:03:07,640 Rechts entlang zu bewegen. 73 00:03:07,640 --> 00:03:08,564 >> OK, Hash-Tabellen. 74 00:03:08,564 --> 00:03:10,605 Hier findest es beginnt bekommen wirklich interessant. 75 00:03:10,605 --> 00:03:14,150 So eine Hash-Tabelle ist eine Umsetzung eines assoziativen Arrays. 76 00:03:14,150 --> 00:03:16,700 Also im Grunde, was passiert ist haben wir alle diese Eingabe, 77 00:03:16,700 --> 00:03:18,750 und wir geben es zu einem Hash- Funktion, die sagt: 78 00:03:18,750 --> 00:03:21,840 OK, das ist, wo in der Hash-Tabelle angehört. 79 00:03:21,840 --> 00:03:24,860 >> So einfachsten Hash-Funktion dass wir gesehen haben, ist nur zu sagen, 80 00:03:24,860 --> 00:03:28,170 OK, nehmen wir an setzen möchten Zeichenfolgen in unserer Hash-Tabelle. 81 00:03:28,170 --> 00:03:30,870 Und eine wirklich einfache Idee könnte sein, zu sagen, OK, 82 00:03:30,870 --> 00:03:34,350 lassen Sie uns einfach durch die Art erste Buchstabe des Wortes. 83 00:03:34,350 --> 00:03:37,570 So können Sie hier sehen, nehmen wir Banane, wir es durch eine Hash-Funktion, 84 00:03:37,570 --> 00:03:40,190 und er sagt, hey, dass sollte bei Index 1 zu gehen. 85 00:03:40,190 --> 00:03:45,120 >> So können wir im Wesentlichen aus einem Hash denken Tabelle als eine Reihe von verschiedenen Eimern. 86 00:03:45,120 --> 00:03:49,880 Und jede dieser Schaufeln wird um den Kopf einer verketteten Liste zu halten. 87 00:03:49,880 --> 00:03:55,030 Und in dieser verknüpften Liste ist, wo wir können, tatsächlich legte verschiedene Stücke von Daten. 88 00:03:55,030 --> 00:03:57,820 >> So tauchen ein bisschen mehr in eine Hash-Funktion, ist hier, 89 00:03:57,820 --> 00:03:59,870 das Beispiel, das ich gerade beschrieben, wo wir einfach sagen, 90 00:03:59,870 --> 00:04:02,460 OK, nehmen Sie den ersten Buchstaben des Wortes und wir sind 91 00:04:02,460 --> 00:04:03,990 gehen, um es in die Eimer zu sortieren. 92 00:04:03,990 --> 00:04:08,490 Daher ist anzunehmen, werde da sein 26 Eimer, eine für jeden Buchstaben des Alphabets. 93 00:04:08,490 --> 00:04:10,090 Warum ist dies eine große Hash-Funktion? 94 00:04:10,090 --> 00:04:13,461 Was macht diesen nicht idealen? 95 00:04:13,461 --> 00:04:13,960 Ja. 96 00:04:13,960 --> 00:04:15,790 >> ZIELGRUPPE: Du wirst um Kollisionen zu haben. 97 00:04:15,790 --> 00:04:16,390 >> HANNAH BLUMBERG: Ja, genau. 98 00:04:16,390 --> 00:04:18,000 Sie werden, um Kollisionen zu haben. 99 00:04:18,000 --> 00:04:18,954 Also das ist eine Sache. 100 00:04:18,954 --> 00:04:21,620 Und wir werden darüber reden, wie wir können, fix Kollisionen in nur einer Sekunde. 101 00:04:21,620 --> 00:04:23,980 Ein weiteres Problem dieser insbesondere Hash-Funktion 102 00:04:23,980 --> 00:04:25,980 ist, dass unsere verschiedenen Eimer sein werden 103 00:04:25,980 --> 00:04:28,960 von ziemlich drastisch unterschiedlicher Größe. 104 00:04:28,960 --> 00:04:33,840 >> Wir wissen, dass es eine ganze Menge mehr Wörter, die mit A als X zu starten, 105 00:04:33,840 --> 00:04:38,980 so werden wir sehr haben unsymmetrisch Eimer in unserer Hash-Tabelle. 106 00:04:38,980 --> 00:04:40,050 Cool. 107 00:04:40,050 --> 00:04:41,340 Also ja, lassen Sie uns zurück zu der Punkt der Kollisionen. 108 00:04:41,340 --> 00:04:42,900 Was tun wir, wenn es eine Kollision? 109 00:04:42,900 --> 00:04:44,490 >> Wir haben ein paar verschiedene Optionen. 110 00:04:44,490 --> 00:04:47,600 So einen, so nehme an, wir versuchen Berry in unser Hash-Tabelle zu setzen. 111 00:04:47,600 --> 00:04:50,370 Und wir sehen, oh, wir wollen um es in Genres 1 gesetzt, 112 00:04:50,370 --> 00:04:52,070 aber Bananen lebt schon da. 113 00:04:52,070 --> 00:04:53,110 Was werden wir machen? 114 00:04:53,110 --> 00:04:54,560 Wir haben zwei Hauptoptionen. 115 00:04:54,560 --> 00:04:58,050 >> Nummer eins ist können wir sagen, OK, es gibt keinen Raum in den Index 1, 116 00:04:58,050 --> 00:05:03,210 aber lassen Sie uns einfach weiter auf der Suche durch bis wir eine weitere offene Stelle zu finden. 117 00:05:03,210 --> 00:05:08,490 Also werden wir sagen, OK, sagen wir es in Stelle 3. 118 00:05:08,490 --> 00:05:09,240 Das ist eine Möglichkeit. 119 00:05:09,240 --> 00:05:11,470 Das nennt man linear Sondieren. 120 00:05:11,470 --> 00:05:15,500 >> Und eine zweite Option ist zu sagen, OK, gut, lassen Sie uns einfach jede dieser Schaufeln 121 00:05:15,500 --> 00:05:17,470 ist Leiter der verknüpften Listen. 122 00:05:17,470 --> 00:05:21,910 Und es ist in Ordnung, wenn es mehr als eine Sache in einem Eimer. 123 00:05:21,910 --> 00:05:23,820 Wir sind gerade dabei, hängen Sie ihn an die Front. 124 00:05:23,820 --> 00:05:26,032 So, hier können Sie sehen, OK, wenn wir einge Beere, wir 125 00:05:26,032 --> 00:05:28,240 nahm nur Banane, Art schob es über ein wenig 126 00:05:28,240 --> 00:05:29,842 und warf eine Beere in dort. 127 00:05:29,842 --> 00:05:31,050 Und das ist auch völlig in Ordnung. 128 00:05:31,050 --> 00:05:32,830 Dies wird als separater Verkettung. 129 00:05:32,830 --> 00:05:38,100 Sie können dies als eine Art, wie denke, eine Reihe von Köpfen auf verkettete Listen. 130 00:05:38,100 --> 00:05:41,950 Irgendwelche Fragen zu Hash- Tabellen, Hash-Funktionen? 131 00:05:41,950 --> 00:05:44,290 Fantastisch. 132 00:05:44,290 --> 00:05:45,470 >> Bäume und Versuchen. 133 00:05:45,470 --> 00:05:47,287 So ein Baum ist jede Art der Datenstruktur 134 00:05:47,287 --> 00:05:49,453 in denen es irgendeine Art Hierarchie oder irgendeiner 135 00:05:49,453 --> 00:05:51,247 der Rangliste, um Ihre verschiedenen Objekten. 136 00:05:51,247 --> 00:05:53,580 Und das wird super werden klar, wenn wir sehen, ein Beispiel. 137 00:05:53,580 --> 00:05:56,960 Und wir sahen versucht, zusammen mit Hash-Tabellen, in pset5-- 138 00:05:56,960 --> 00:06:00,700 die wiederum völlig fair game hierfür quiz-- wie ein anderer Daten 139 00:06:00,700 --> 00:06:03,110 Strukturen, die wir speichern verschiedene Dinge. 140 00:06:03,110 --> 00:06:06,782 Im Fall von Wörterbuch, wir gespeichert eine Reihe von Wörtern. 141 00:06:06,782 --> 00:06:08,240 Werfen wir also einen Blick auf einige Bäume. 142 00:06:08,240 --> 00:06:10,190 So ist dies ein Beispiel für einen Baum. 143 00:06:10,190 --> 00:06:13,105 Es hat eine Art von Struktur, dass hierarchische Struktur, 144 00:06:13,105 --> 00:06:15,920 wo Sie sehen können, dass Dieses 1-Knoten an der Spitze 145 00:06:15,920 --> 00:06:20,750 hat eine Art von Rang oberhalb 2 und 3, die sind über 4, 5 und 6 und 7, 146 00:06:20,750 --> 00:06:22,860 die oberhalb 8 und 9 sind. 147 00:06:22,860 --> 00:06:25,210 Also das ist alles, dass wir durch eine Baum, so können Sie einfach Art 148 00:06:25,210 --> 00:06:26,660 von Bild diese in Ihrem Kopf. 149 00:06:26,660 --> 00:06:29,050 >> Jetzt haben wir ein paar spezialisiertere Bäumen. 150 00:06:29,050 --> 00:06:31,070 So dass man beispielsweise ein binärer Baum. 151 00:06:31,070 --> 00:06:33,290 Und ein binärer Baum ist, wieder, gerade dabei zu sein 152 00:06:33,290 --> 00:06:37,040 eine Datenstruktur mit einer Art von Hierarchie, aber jeder der Knoten 153 00:06:37,040 --> 00:06:38,650 kann höchstens zwei Kinder haben. 154 00:06:38,650 --> 00:06:41,530 Das ist, wo das Wort binären kommt. 155 00:06:41,530 --> 00:06:43,410 So ist dies ein Beispiel eines binären Baums. 156 00:06:43,410 --> 00:06:45,720 Also das ist eine kleinere Gruppe von Bäumen. 157 00:06:45,720 --> 00:06:48,960 >> Nun wollen wir noch mehr spezifische und sprechen über binäre trees-- binäre Suche 158 00:06:48,960 --> 00:06:51,310 Bäume, statt. 159 00:06:51,310 --> 00:06:56,430 Also hier die Idee ist nicht nur, dass jeder Knoten haben höchstens zwei Kinder, 160 00:06:56,430 --> 00:07:00,300 aber alle Kinder, um die links gehen, kleiner zu sein 161 00:07:00,300 --> 00:07:03,450 und alle Kinder, um die rechts gehen, größer sein. 162 00:07:03,450 --> 00:07:05,890 So bemerken in nur unsere binären Baum, gibt es 163 00:07:05,890 --> 00:07:08,650 keine Beziehung zwischen den Zahlen. 164 00:07:08,650 --> 00:07:12,990 Aber in unserem binäre Suche Baum, sehen wir, OK, hier ist 44. 165 00:07:12,990 --> 00:07:17,080 Und jede Zahl auf der linken Seite 44 kleiner und alles rechts 166 00:07:17,080 --> 00:07:17,920 ist größer. 167 00:07:17,920 --> 00:07:20,130 >> Und das hält bei jedem Ebene des Baumes. 168 00:07:20,130 --> 00:07:24,810 Also hier, kleiner als ist dies 22 und diese größer ist als 22. 169 00:07:24,810 --> 00:07:26,390 Und das ist, binären Suchbaum. 170 00:07:26,390 --> 00:07:28,900 Warum denken wir, es heißt ein binärer Suchbaum? 171 00:07:28,900 --> 00:07:30,651 Welche Algorithmus funktioniert es erinnern Sie an? 172 00:07:30,651 --> 00:07:31,650 ZIELGRUPPE: Binäre Suche. 173 00:07:31,650 --> 00:07:32,480 HANNAH BLUMBERG: Binäre Suche. 174 00:07:32,480 --> 00:07:35,150 Weil, wenn Sie für einen suchen bestimmte Anzahl in diesem Baum, 175 00:07:35,150 --> 00:07:38,800 an jedem Punkt, die Sie gerade klopfen kann weg von der Hälfte des Baumes, was ausgezeichnet ist. 176 00:07:38,800 --> 00:07:43,800 Und so, das wird uns etwas zu geben, dass sieht viel wie binäre Suche. 177 00:07:43,800 --> 00:07:45,870 Irgendwelche Fragen? 178 00:07:45,870 --> 00:07:47,570 Alles klar, cool. 179 00:07:47,570 --> 00:07:48,560 >> Alle Rechte, versucht. 180 00:07:48,560 --> 00:07:49,657 Lieblings jeden. 181 00:07:49,657 --> 00:07:51,990 Das ist also das Beispiel, Wir haben eine Reihe in der Klasse zu sehen. 182 00:07:51,990 --> 00:07:54,710 Und wieder, das ist nur eine andere so können wir Daten zu speichern. 183 00:07:54,710 --> 00:07:57,530 Im Fall der Wörterbuch wieder Dies ist gerade dabei, Strings sein. 184 00:07:57,530 --> 00:08:00,870 Also mal sehen, was das eigentlich sieht aus wie auf einem etwas niedrigeren Niveau. 185 00:08:00,870 --> 00:08:03,690 >> Werfen wir also einen Blick an einem Knoten in einem Trie. 186 00:08:03,690 --> 00:08:07,532 Und wir sehen, OK, es geht ein Boolean und einen Knoten sein, 187 00:08:07,532 --> 00:08:09,170 ein Zeiger zu einem Knoten. 188 00:08:09,170 --> 00:08:11,400 Und wir sehen, dass die Boolean heißt is_word. 189 00:08:11,400 --> 00:08:13,490 So im Wesentlichen, das ist, gehen zu entsprechen 190 00:08:13,490 --> 00:08:16,750 um diese kleinen Dreiecke, sagt, wenn Sie hier bekommen habe, 191 00:08:16,750 --> 00:08:19,100 Ihnen ein komplettes Wort gefunden. 192 00:08:19,100 --> 00:08:23,670 >> Wir wissen, dass "Turing" über Hier ist eine komplette Wort, 193 00:08:23,670 --> 00:08:28,030 der Erwägung, dass nur T-U-R ist nicht ein Wort weil wir nicht sehen, dass etwas Delta. 194 00:08:28,030 --> 00:08:31,440 Und das kleine Dreieck wieder entspricht diesem is_word, 195 00:08:31,440 --> 00:08:34,480 Diese Boolean is_word. 196 00:08:34,480 --> 00:08:36,320 Und dann haben wir eine Reihe von Kindern. 197 00:08:36,320 --> 00:08:39,860 Also auf jeder Ebene, die Sie einen bestimmten Knoten, 198 00:08:39,860 --> 00:08:42,470 und dass die Knotenpunkte, um eine Array der gesamte Alphabet. 199 00:08:42,470 --> 00:08:44,346 >> So können Sie sehen, noch einmal, in diesem picture-- Ich bin 200 00:08:44,346 --> 00:08:48,170 werde immer wieder springen und forth--, dass Array an der Spitze 201 00:08:48,170 --> 00:08:51,640 hat eine Reihe von verschiedenen Knoten kommen aus der IT. 202 00:08:51,640 --> 00:08:57,140 Es verfügt über 26, oder 27, wenn Sie wollen um ein zusätzliches Zeichen enthalten. 203 00:08:57,140 --> 00:09:01,320 Und das gibt uns ein Weg, um unsere Daten zu speichern 204 00:09:01,320 --> 00:09:04,450 in einer Weise, die auf betrachtet werden kann dass man nach oben schauen super schnell. 205 00:09:04,450 --> 00:09:06,650 Was die Nachschlagzeit für ein Trie? 206 00:09:06,650 --> 00:09:07,970 >> ZIELGRUPPE: [unverständlich]. 207 00:09:07,970 --> 00:09:08,300 >> HANNAH BLUMBERG: Ja. 208 00:09:08,300 --> 00:09:09,550 In der Theorie ist es konstante Zeit. 209 00:09:09,550 --> 00:09:13,230 Es wird nur gehen, um die Größe zu sein das Wort, das Sie nachschlagen möchten. 210 00:09:13,230 --> 00:09:15,950 Auch wenn wir eine Zillion hinzufügen mehr Worte, um unsere trie, 211 00:09:15,950 --> 00:09:18,160 es wird nicht zu uns nehmen nicht mehr zu bestimmen, 212 00:09:18,160 --> 00:09:19,690 wenn ein gegebenes Wort in dem Trie. 213 00:09:19,690 --> 00:09:21,412 Also das ist wirklich nett. 214 00:09:21,412 --> 00:09:23,697 >> ZIELGRUPPE: Hast du gerade initialisiert das Array? 215 00:09:23,697 --> 00:09:24,780 Sie verpasste eine oder zwei Punkte. 216 00:09:24,780 --> 00:09:26,130 Können Sie nur darüber reden dass für eine Sekunde? 217 00:09:26,130 --> 00:09:26,680 >> HANNAH BLUMBERG: Sicher, absolut. 218 00:09:26,680 --> 00:09:27,590 Gute Frage. 219 00:09:27,590 --> 00:09:31,140 Die Frage war, wir habe ein Array, das ist 220 00:09:31,140 --> 00:09:34,180 werde Knoten Sterne wie haben im Gegensatz zu nur Knoten, nicht wahr? 221 00:09:34,180 --> 00:09:35,180 Cool. 222 00:09:35,180 --> 00:09:37,990 Also hier, was wir sagen ist unser Angebot ist nur 223 00:09:37,990 --> 00:09:40,035 gehen, um Zeiger auf andere Arrays. 224 00:09:40,035 --> 00:09:42,910 So ist es essentially-- es Art von fühlt sich an wie eine verbundene Liste auf diese Weise 225 00:09:42,910 --> 00:09:46,620 wobei jedes dieser Kinder nur Punkt zum nächsten Knoten. 226 00:09:46,620 --> 00:09:49,030 >> Und die Art, wie wir tatsächlich bestimmen, hey, OK, 227 00:09:49,030 --> 00:09:52,320 wir durch eine ganze wiederholt habe Wort wird dieses Wort in dem Wörterbuch, 228 00:09:52,320 --> 00:09:54,476 Wir überprüfen gerade dieses is_word. 229 00:09:54,476 --> 00:09:55,100 Gute Frage. 230 00:09:55,100 --> 00:09:55,675 Ja. 231 00:09:55,675 --> 00:09:56,216 ZIELGRUPPE: OK. 232 00:09:56,216 --> 00:09:57,470 Also, was war die Laufzeit für die Trie? 233 00:09:57,470 --> 00:09:58,386 >> HANNAH BLUMBERG: Sicher. 234 00:09:58,386 --> 00:10:01,852 So der Laufzeit einer Trie für Lookup wird eine konstante Zeit. 235 00:10:01,852 --> 00:10:04,310 So ist es nur geht, um das zu sein Anzahl der Buchstaben im Wort. 236 00:10:04,310 --> 00:10:06,310 Es ist nicht abhängig von der Wörterbuchgröße 237 00:10:06,310 --> 00:10:09,510 oder die Größe der Datenstruktur. 238 00:10:09,510 --> 00:10:12,170 Also hier ist ein etwas einfacheres Beispiel. 239 00:10:12,170 --> 00:10:15,430 >> In diesem Fall können Sie das sehen das Wort Fledermaus ist im Wörterbuch 240 00:10:15,430 --> 00:10:18,900 und Sie haben Zoom, aber Sie nicht über so etwas wie Zoo. 241 00:10:18,900 --> 00:10:20,050 Wie würden wir machen Zoo? 242 00:10:20,050 --> 00:10:24,276 Wie können wir unsere zoo hinzufügen Wörterbuch, um unsere Trie? 243 00:10:24,276 --> 00:10:24,776 Ja. 244 00:10:24,776 --> 00:10:27,014 >> ZIELGRUPPE: Stellen is_word gilt für die [unverständlich]. 245 00:10:27,014 --> 00:10:27,930 HANNAH BLUMBERG: Good. 246 00:10:27,930 --> 00:10:31,731 So würden wir sagen, Z-O-O, und dann würden wir wollen abhaken, dass das Feld als auch. 247 00:10:31,731 --> 00:10:32,230 Groß. 248 00:10:32,230 --> 00:10:35,160 249 00:10:35,160 --> 00:10:37,930 Vergleichen wir ganz kurz versucht gegenüber Hash-Tabellen. 250 00:10:37,930 --> 00:10:39,770 Versuche sind wirklich toll weil, wie gesagt, 251 00:10:39,770 --> 00:10:41,610 sie bieten Konstantzeit-Lookup. 252 00:10:41,610 --> 00:10:44,285 Aber die großen Nachteil ist sie humongous. 253 00:10:44,285 --> 00:10:46,160 Sie können das Gefühl zu bekommen, sogar um es zu betrachten, 254 00:10:46,160 --> 00:10:48,454 , dass es dauern wird eine große Menge an Speicher. 255 00:10:48,454 --> 00:10:50,620 So, sie werden viel sein größer als Hash-Tabellen, 256 00:10:50,620 --> 00:10:52,270 aber sie gehen zu geben, uns viel schneller Lookup-Zeiten. 257 00:10:52,270 --> 00:10:54,478 Also das ist Art von Ihrem Kompromiss, was Ihnen wichtig sind, 258 00:10:54,478 --> 00:10:57,350 ob es sich um Geschwindigkeit oder Speicher. 259 00:10:57,350 --> 00:11:02,251 Sie haben Fragen zu einem der, dass, alle C-Datenstrukturen. 260 00:11:02,251 --> 00:11:02,750 Schön. 261 00:11:02,750 --> 00:11:03,250 OK. 262 00:11:03,250 --> 00:11:07,322 Wir werden auf dem Weg zu einem kleinen Bit der Web-Entwicklung mit Maria. 263 00:11:07,322 --> 00:11:08,280 MARIA Zlatkova: Lovely. 264 00:11:08,280 --> 00:11:09,036 OK. 265 00:11:09,036 --> 00:11:10,380 >> HANNAH BLUMBERG: Sie können meinen Laptop nutzen. 266 00:11:10,380 --> 00:11:11,255 >> MARIA Zlatkova: Nice. 267 00:11:11,255 --> 00:11:13,320 268 00:11:13,320 --> 00:11:14,912 OK COOL. 269 00:11:14,912 --> 00:11:17,120 Wie wir heute bewegen, um Web- Entwicklung, unterhielten wir uns ein wenig 270 00:11:17,120 --> 00:11:20,680 zum Ändern von Berechtigungen von Dateien und Verzeichnissen 271 00:11:20,680 --> 00:11:24,190 so daß sie zugänglich an andere Benutzer, für die Welt, 272 00:11:24,190 --> 00:11:28,640 und damit wir sehen, wie Grundsätzlich können wir sie vermitteln 273 00:11:28,640 --> 00:11:32,600 wenn wir entwickeln Dinge wie Websites dass wir meistens getan. 274 00:11:32,600 --> 00:11:36,400 >> So sahen wir den Befehl chmod, die Änderungsmodus ist, im Grunde. 275 00:11:36,400 --> 00:11:39,300 Das ist eine Linux-Befehl und es Zugriffsberechtigungen ändert 276 00:11:39,300 --> 00:11:40,410 von Dateisystemobjekten. 277 00:11:40,410 --> 00:11:43,370 Und ein Dateisystemobjekt ist nur ein Verzeichnis, eine Datei, 278 00:11:43,370 --> 00:11:46,810 Alles, was du kannst Ändern Sie die Berechtigungen. 279 00:11:46,810 --> 00:11:53,750 >> Also, um die Dateiberechtigungen zu sehen, Wir geben Sie den Befehl ls, liste, -l. 280 00:11:53,750 --> 00:11:56,500 Und wenn wir geben, dass wir in der Regel sehen einige Berechtigungen 281 00:11:56,500 --> 00:11:59,660 das aussehen ein bisschen wie dieses vor einem Verzeichnisnamen. 282 00:11:59,660 --> 00:12:01,260 So d bezieht sich auf Verzeichnis. 283 00:12:01,260 --> 00:12:05,930 Und dann haben wir drei haben Triaden, dass im Grunde 284 00:12:05,930 --> 00:12:11,675 beziehen sich auf die Berechtigungen entweder ein Benutzer, eine Gruppe oder die Welt. 285 00:12:11,675 --> 00:12:16,490 >> Die Arten von Berechtigungen, die wir können, Für diese drei Gruppen von Menschen 286 00:12:16,490 --> 00:12:20,830 sind entweder r für Lesen, w für zu schreiben, und x für auszuführen. 287 00:12:20,830 --> 00:12:23,650 Und wir können die für haben die Gruppe und die Welt als gut. 288 00:12:23,650 --> 00:12:26,940 Die heikle Sache ist, dass manchmal wenn wir den Befehl chmod, 289 00:12:26,940 --> 00:12:32,960 wir würden etwas Nummer eingeben dass aus drei Bits. 290 00:12:32,960 --> 00:12:36,990 So wie wir tun könnten, 777 und dass im Grunde 291 00:12:36,990 --> 00:12:40,450 bezogen auf den Mehrwert jedes dieser Triaden 292 00:12:40,450 --> 00:12:45,060 weil r würde bis 4 beziehen, w würde beziehen sich auf 2, und x würde auf 1 beziehen, 293 00:12:45,060 --> 00:12:50,020 so, wenn Sie, hinzugefügt jede der Zahlen würde bis zu einer Gesamtzahl kommen 294 00:12:50,020 --> 00:12:52,750 einer kumulativen Wert zwischen 0 und 7 liegt. 295 00:12:52,750 --> 00:12:55,150 So konnten wir auch 0 für keine Berechtigungen überhaupt. 296 00:12:55,150 --> 00:12:58,200 Und das wäre im Grunde uns die Berechtigungen entweder für den Benutzer, 297 00:12:58,200 --> 00:13:00,450 die Gruppe oder die Welt. 298 00:13:00,450 --> 00:13:02,620 Haben Sie Fragen zu diesem Thema so weit? 299 00:13:02,620 --> 00:13:05,331 >> ZIELGRUPPE: Sie war die Lese 4? 300 00:13:05,331 --> 00:13:06,164 MARIA Zlatkova: Ja. 301 00:13:06,164 --> 00:13:07,568 ZIELGRUPPE: [unverständlich]. 302 00:13:07,568 --> 00:13:08,504 HANNAH BLUMBERG: Yup. 303 00:13:08,504 --> 00:13:11,790 Publikum: Und dann durch Zugabe von allen, andere würden Sie Ihre Nummer. 304 00:13:11,790 --> 00:13:12,665 MARIA Zlatkova: Ja. 305 00:13:12,665 --> 00:13:14,970 Ja. 306 00:13:14,970 --> 00:13:17,810 Dies sind große Fragen. 307 00:13:17,810 --> 00:13:20,490 Schön. 308 00:13:20,490 --> 00:13:25,340 Als nächstes wird in HTML und eine sprangen wir etwas mehr über Web-Entwicklung. 309 00:13:25,340 --> 00:13:27,990 So HTML bedeutet nur, Hypertext Markup Language. 310 00:13:27,990 --> 00:13:30,460 Und das ist das Markup Sprache, die ein Standard ist 311 00:13:30,460 --> 00:13:32,720 dass es verwendet, um Webseiten zu erstellen. 312 00:13:32,720 --> 00:13:35,750 >> Es ist eine Markup-Sprache genannt weil es nicht wirklich zusammengestellt. 313 00:13:35,750 --> 00:13:40,310 Es wird nicht gesagt, wie einige Code sollte ausgeführt oder so etwas werden. 314 00:13:40,310 --> 00:13:44,800 Es umreißt kurz und beschreibt, wie eine Web- 315 00:13:44,800 --> 00:13:46,840 Seite eingerichtet werden soll mit jedem seiner Elemente 316 00:13:46,840 --> 00:13:48,460 und wie sie der Benutzer den Eindruck sollte. 317 00:13:48,460 --> 00:13:53,090 318 00:13:53,090 --> 00:13:57,110 >> Einige der HTML-Tags, die wir ging sind die folgenden. 319 00:13:57,110 --> 00:14:00,500 Alle unsere HTML-Dokumenten mit der DOCTYPE html gestartet. 320 00:14:00,500 --> 00:14:02,550 Dann haben wir immer die HTML-Tag. 321 00:14:02,550 --> 00:14:03,930 Wir haben einen Kopf und einen Körper. 322 00:14:03,930 --> 00:14:07,890 Und es ist wichtig, dass HTML hat diese Art der verschachtelten Struktur 323 00:14:07,890 --> 00:14:09,280 denn es ist sehr klar. 324 00:14:09,280 --> 00:14:13,200 Und dann wird es sehr deutlich, wenn wir müssen nahe Tags öffnen und tatsächlich. 325 00:14:13,200 --> 00:14:18,400 Und wir müssen immer zu schließen Tags, die wir geöffnet haben. 326 00:14:18,400 --> 00:14:23,170 >> Und hier haben wir einige der Arten der Dinge vor, die wir haben wollen. 327 00:14:23,170 --> 00:14:26,580 So haben wir zum Beispiel, der Titel des CS50. 328 00:14:26,580 --> 00:14:31,980 Und dann haben wir eigentlich kann ein Stylesheet zu verknüpfen 329 00:14:31,980 --> 00:14:34,030 dass definiert, wie wir stylen unserer Website. 330 00:14:34,030 --> 00:14:35,650 Das ist CSS. 331 00:14:35,650 --> 00:14:39,320 Wir werden in die zu über sie gehen nächsten paar Dias als auch. 332 00:14:39,320 --> 00:14:42,580 >> Innerhalb des Körpers, setzen wir einige Klassen und IDs. 333 00:14:42,580 --> 00:14:45,860 Und als Erinnerung, wieder, IDs sind einzigartig und Klassen 334 00:14:45,860 --> 00:14:47,390 können, um mehrere Elemente zugeordnet werden. 335 00:14:47,390 --> 00:14:52,110 Und das bedeutet nur, dass können wir Klassen und IDs verwenden 336 00:14:52,110 --> 00:14:55,860 innerhalb anderer structures-- so, für beispielsweise innerhalb von CSS-Dateien oder Stil 337 00:14:55,860 --> 00:15:00,940 sheets-- auf bestimmte Elemente beziehen und im Grunde sagen, dass wir zu stylen möchten 338 00:15:00,940 --> 00:15:03,280 oder entwerfen Sie ein Element in einer bestimmten Art und Weise. 339 00:15:03,280 --> 00:15:06,440 Und wir beziehen, die ihnen von ihre IDs und Klassen. 340 00:15:06,440 --> 00:15:09,870 Und wir können auch zu beziehen verschiedene Dinge von Tags sowie, 341 00:15:09,870 --> 00:15:13,830 aber IDs und Klassen geben uns nur einige Vielseitigkeit und was genau wir 342 00:15:13,830 --> 00:15:15,850 wollen sich beziehen. 343 00:15:15,850 --> 00:15:19,620 >> Also nur ein Beispiel. 344 00:15:19,620 --> 00:15:22,730 Wir können wieder in eine CSS-Datei, wo wir 345 00:15:22,730 --> 00:15:25,770 wollen einige definieren style-- so Farben, Schriftarten, 346 00:15:25,770 --> 00:15:30,340 und solche Sachen dass-- wir können definieren den Stil für einen Körper. 347 00:15:30,340 --> 00:15:32,640 So dass es zu definieren für den ganzen Körper-Tag. 348 00:15:32,640 --> 00:15:36,160 Aber dann können wir auch festlegen, ein Stil für eine #title. 349 00:15:36,160 --> 00:15:40,390 Und wieder, bezieht sich der Hashtag, um unsere ID und der Punkt bezieht sich auf unsere Klasse. 350 00:15:40,390 --> 00:15:44,760 >> Und dann für die .info, wir Außerdem können einige Attribute gesetzt. 351 00:15:44,760 --> 00:15:49,750 Und wieder, wenn wir wieder zu gehen, hatten wir unsere Klasse namens info und unsere ID Titel. 352 00:15:49,750 --> 00:15:53,422 Und wir sehen, dass wir auf die ihnen von #title und .info. 353 00:15:53,422 --> 00:15:55,380 ZIELGRUPPE: Würden Sie sagen, Hashtag [? Wähle mich? ?] 354 00:15:55,380 --> 00:15:55,725 MARIA Zlatkova: Es tut uns leid? 355 00:15:55,725 --> 00:15:58,120 ZIELGRUPPE: Würden Sie sagen, Hashtag [? Wähle mich? ?] 356 00:15:58,120 --> 00:16:01,400 MARIA Zlatkova: Hashtag bedeutet, ID, so #title 357 00:16:01,400 --> 00:16:07,890 bezieht sich auf was auch immer Elemente haben diese ID genannten Titel. 358 00:16:07,890 --> 00:16:10,735 Und dann der Punkt bezieht sich auf eine Klasse. 359 00:16:10,735 --> 00:16:14,590 So .info bezieht sich auf dieses Element weil es die Klasse info. 360 00:16:14,590 --> 00:16:15,090 Jep. 361 00:16:15,090 --> 00:16:17,905 >> Publikum: Warum wollen Sie unterscheiden sie im HTML-Format? 362 00:16:17,905 --> 00:16:20,985 Warum sagen Sie bestimmte Dinge IDs und bestimmte Dinge Klasse? 363 00:16:20,985 --> 00:16:22,610 MARIA Zlatkova: Das ist nur bis zu Sie-- 364 00:16:22,610 --> 00:16:24,151 HANNAH BLUMBERG: Wiederholen Sie die Frage. 365 00:16:24,151 --> 00:16:25,370 MARIA Zlatkova: Oh, sorry. 366 00:16:25,370 --> 00:16:29,480 Warum müssen wir unterscheiden, bestimmte Elemente wie IDs und andere Elemente wie Klassen? 367 00:16:29,480 --> 00:16:34,760 Das ist einfach, weil es wirklich oft eine Design-Wahl. 368 00:16:34,760 --> 00:16:38,520 Es gibt Ihnen eine Menge Vielseitigkeit im Sein 369 00:16:38,520 --> 00:16:43,250 in der Lage zu sagen, ich will dieses bestimmte Produkt , diese ID haben, weil sie wollen, 370 00:16:43,250 --> 00:16:45,300 , eine Menge Dinge zu tun mit ihr, und ich nur 371 00:16:45,300 --> 00:16:50,010 wollen einen Stil zu definieren, bestimmten Stil oder Farbe unabhängig für dieses Element. 372 00:16:50,010 --> 00:16:52,630 Und die Art und Weise, das zu tun ist nur so dass sie eine ID. 373 00:16:52,630 --> 00:16:55,060 >> Und dann, wenn ich haben ein paar verschiedene Artikel 374 00:16:55,060 --> 00:16:58,940 aufweist, dass anstelle des gehen und Einstellen their-- 375 00:16:58,940 --> 00:17:03,840 statt es durch Tag, weil der Tag würde 376 00:17:03,840 --> 00:17:07,369 setzen Sie die Zelle für den gesamten Tag für jedes Mal, das Tag verwendet wird, 377 00:17:07,369 --> 00:17:09,740 können Sie eine Klasse, um mehrere Elemente gesetzt. 378 00:17:09,740 --> 00:17:15,109 Und dann nur Zugriff auf diese Klasse und sagen, Ich möchte dieser Klasse Stil, der Art und Weise. 379 00:17:15,109 --> 00:17:17,579 >> Und wieder, kann die Klasse werden mehrere verschiedene Artikel 380 00:17:17,579 --> 00:17:21,150 und die ID muss eindeutig sein. 381 00:17:21,150 --> 00:17:21,849 Große Fragen. 382 00:17:21,849 --> 00:17:25,339 Noch mehr Fragen? 383 00:17:25,339 --> 00:17:26,220 OK, awesome. 384 00:17:26,220 --> 00:17:30,680 385 00:17:30,680 --> 00:17:35,330 Auch dies ist, wie diese Selektoren werden in CSS referenziert, mit hashtag, 386 00:17:35,330 --> 00:17:40,031 mit Punkt oder ohne etwas zu Zuweisen der Stil einiger tag, 387 00:17:40,031 --> 00:17:40,530 wie Körper. 388 00:17:40,530 --> 00:17:43,500 389 00:17:43,500 --> 00:17:47,860 Und hier haben wir die allgemeine Syntax, wie dies geschieht. 390 00:17:47,860 --> 00:17:52,830 391 00:17:52,830 --> 00:17:55,680 >> Um einige besten wiederholen Practices für HTML und CSS, 392 00:17:55,680 --> 00:17:59,170 wir brauchen, um wieder, schließen Sie alle die HTML-Tags, die wir öffnen. 393 00:17:59,170 --> 00:18:03,950 Und was wir Ihnen empfehlen für Ihre Abschlussarbeiten zu tun, 394 00:18:03,950 --> 00:18:10,560 als auch für CS50 Finanzen, ist es, Sie sicher, dass alle Ihre HTML validiert. 395 00:18:10,560 --> 00:18:12,920 Und das ist mit dem W3 Validator getan. 396 00:18:12,920 --> 00:18:16,940 >> Und dann, was wir getan haben und was wir empfehlen, tun 397 00:18:16,940 --> 00:18:19,790 trennt Stil, so CSS von Markup HTML. 398 00:18:19,790 --> 00:18:24,210 Also alles, was, wie bezieht Ihre Seite wird visuell zu sehen 399 00:18:24,210 --> 00:18:27,330 und wie es geht um geändert werden sollte in eine CSS-Dokument zu gehen. 400 00:18:27,330 --> 00:18:33,880 Und dann Markup sagen, wie die Dinge sind in Bezug auf jede andere HTML, 401 00:18:33,880 --> 00:18:37,550 und daß innen gehen sollten Ihre HTML-Dokumente. 402 00:18:37,550 --> 00:18:38,590 Irgendwelche Fragen? 403 00:18:38,590 --> 00:18:39,226 Mhm. 404 00:18:39,226 --> 00:18:42,628 >> ZIELGRUPPE: Was genau wird auf die Seite Validierung 405 00:18:42,628 --> 00:18:47,945 wenn wir die Validierung der HTML, die [unverständlich] erstellt? 406 00:18:47,945 --> 00:18:49,850 >> MARIA Zlatkova: So what-- denken, Sie. 407 00:18:49,850 --> 00:18:53,020 Also, was genau los ist auf mit Seitenvalidierung 408 00:18:53,020 --> 00:18:55,570 und warum wir das tun? 409 00:18:55,570 --> 00:18:59,180 Im Grunde, das zu tun brauchen wir weil eine Menge Zeit, Ihrem Browser, 410 00:18:59,180 --> 00:19:01,390 wenn Sie nicht einen Tag zu schließen oder etwas ähnliches, 411 00:19:01,390 --> 00:19:05,680 Ihr Browser immer noch zu machen Sie eine Seite und kann immer noch funktionieren, 412 00:19:05,680 --> 00:19:10,840 aber es ist am besten Praxis, um sicherzustellen, dass Sie haben wieder geschlossen alle Tags, 413 00:19:10,840 --> 00:19:13,190 dass alle Ihre Elemente sind die Art, wie sie sein sollten, 414 00:19:13,190 --> 00:19:18,470 und im Grunde, dass es durch die Konventionen, die voreingestellt sind. 415 00:19:18,470 --> 00:19:21,970 >> Es ist wiederum nur ein Sache, sollten Sie 416 00:19:21,970 --> 00:19:24,040 werden lernen, zu tun, im Gegensatz dazu, 417 00:19:24,040 --> 00:19:25,696 schlampiger Code und solche Sachen. 418 00:19:25,696 --> 00:19:26,688 Ja. 419 00:19:26,688 --> 00:19:27,680 Oh, das tut mir leid. 420 00:19:27,680 --> 00:19:29,221 Ich dachte, Sie erhöhen Ihre Hand. 421 00:19:29,221 --> 00:19:31,240 ZIELGRUPPE: Nein, ich war einfach nur [unverständlich]. 422 00:19:31,240 --> 00:19:33,800 >> MARIA Zlatkova: OK. 423 00:19:33,800 --> 00:19:34,640 >> ZIELGRUPPE: Vielen Dank. 424 00:19:34,640 --> 00:19:36,181 >> MARIA Zlatkova: Natürlich, ich danke Ihnen. 425 00:19:36,181 --> 00:19:41,680 Also noch einmal, geht in, wie Informationen übertragen 426 00:19:41,680 --> 00:19:44,630 und Kommunikationsmodelle um Informationen zu übertragen. 427 00:19:44,630 --> 00:19:45,730 TCP / IP. 428 00:19:45,730 --> 00:19:48,600 TCP bedeutet nur, Transmission Control Protocol und IP- 429 00:19:48,600 --> 00:19:51,260 bezieht sich auf Internet Protocol. 430 00:19:51,260 --> 00:19:54,275 Und das nur, bezieht sich auf die Art und Weise Daten geliefert werden. 431 00:19:54,275 --> 00:19:59,470 432 00:19:59,470 --> 00:20:02,710 >> Wenn wir einige Daten haben, dass muss geliefert, um so Sie-- 433 00:20:02,710 --> 00:20:06,770 Sie eine Anforderung für einen bestimmten Server zu machen. 434 00:20:06,770 --> 00:20:09,800 Beispielsweise, wenn man versuchen, cs50.net zuzugreifen, 435 00:20:09,800 --> 00:20:12,420 wir einen Antrag zu machen das CS50-Server und wir 436 00:20:12,420 --> 00:20:14,720 sehen, dass wir wollen, um diese Art von Informationen. 437 00:20:14,720 --> 00:20:19,294 Und dann werden basierend auf diesem Protokoll denn wie diese Information geliefert werden, 438 00:20:19,294 --> 00:20:21,460 der Server gibt Informationen zurück zu uns, der Kunde. 439 00:20:21,460 --> 00:20:25,590 Und dann sind wir in der Lage zu sehen die Informationen für die Seite 440 00:20:25,590 --> 00:20:26,390 und dann verwenden. 441 00:20:26,390 --> 00:20:29,300 442 00:20:29,300 --> 00:20:33,050 >> So dann Hypertext Transfer Protocol ist nur ein weiteres Protokoll oder eingestellt 443 00:20:33,050 --> 00:20:37,470 von Konventionen, die definiert, wie der Web-Browser und dem Web-Server 444 00:20:37,470 --> 00:20:38,890 sollte zu kommunizieren. 445 00:20:38,890 --> 00:20:43,730 Und setzen das alles zusammen, HTTP, wieder 446 00:20:43,730 --> 00:20:50,960 nur definiert, wie diese Hypertext definiert durch die HTML, die wir gearbeitet haben es, 447 00:20:50,960 --> 00:20:59,500 wie sollte es bei Dir und wie die Daten, die an Sie geliefert wird 448 00:20:59,500 --> 00:21:00,540 kommt zu Ihnen. 449 00:21:00,540 --> 00:21:05,990 >> Und deshalb, wenn euch daran erinnern, aus einer Klasse, wir hatten viele Anfragen 450 00:21:05,990 --> 00:21:08,970 und wir hatten eine Menge von Syntax Für diese Anforderungen, die wir sind 451 00:21:08,970 --> 00:21:10,250 gehen, um mehr als jetzt gehen. 452 00:21:10,250 --> 00:21:13,270 Also noch einmal, wenn wir senden eine Anforderung zu einem Server, 453 00:21:13,270 --> 00:21:15,920 wir müssen ein paar Dinge zu definieren. 454 00:21:15,920 --> 00:21:18,520 Also müssen wir die Art zu finden der Anfrage, die wir einstellen. 455 00:21:18,520 --> 00:21:22,180 Und wieder haben wir, zum Beispiel, GET ist eine Art von Verfahren 456 00:21:22,180 --> 00:21:25,290 dass wir in unserer Anfrage. 457 00:21:25,290 --> 00:21:31,710 >> Und dann HTTP / 1.1 ist nur die Protokoll, das wir mit aktuell sind. 458 00:21:31,710 --> 00:21:34,224 459 00:21:34,224 --> 00:21:36,890 Die meisten der Zeit, das wird zu dem Protokoll, das wir verwenden. 460 00:21:36,890 --> 00:21:40,290 Also, wenn Sie eine Frage haben, wie die auf Ihrem Quiz. 461 00:21:40,290 --> 00:21:43,120 Das ist die Konventionen dass wir so weit. 462 00:21:43,120 --> 00:21:46,580 >> Backslash bezieht sich auf welche Art der Dinge, die wir anfordert. 463 00:21:46,580 --> 00:21:52,810 Dann ist unser Wirt, beispielsweise in diese Dabei versuchen wir, auf google.com zu gehen. 464 00:21:52,810 --> 00:21:57,070 Das ist also der Wert für einen Host. 465 00:21:57,070 --> 00:21:59,330 Dies ist eine Art der Anfrage das könnte gesendet werden. 466 00:21:59,330 --> 00:22:02,890 >> Und dann eine Art der Reaktion das könnte sandte wiederum basieren auf diesem Protokoll, 467 00:22:02,890 --> 00:22:05,190 wieder, HTTP / 1.1. 468 00:22:05,190 --> 00:22:07,150 Also das ist der HTTP-Version erneut. 469 00:22:07,150 --> 00:22:09,730 200 OK ist nur der Statuscode. 470 00:22:09,730 --> 00:22:12,860 Und das OK ist nur ein Begriff auf der Grundlage dieser Status-Code. 471 00:22:12,860 --> 00:22:15,520 >> Und dann der Content-Type bezeichnet die Art 472 00:22:15,520 --> 00:22:20,295 dass wird an Sie zurückgeschickt das ist für diese Web-Seite, die Sie empfangen 473 00:22:20,295 --> 00:22:22,570 und dass Ihr Browser kann anschließend rendern. 474 00:22:22,570 --> 00:22:24,401 Und das ist text / html. 475 00:22:24,401 --> 00:22:26,660 >> ZIELGRUPPE: Was 1.1 das? 476 00:22:26,660 --> 00:22:29,910 >> MARIA Zlatkova: Das ist nur die Version von-- oh, was 1.1 das? 477 00:22:29,910 --> 00:22:37,075 Das ist nur die Version, der HTTP- Version eines Protokolls, das wir verwenden. 478 00:22:37,075 --> 00:22:37,700 Gute Frage. 479 00:22:37,700 --> 00:22:38,366 Andere Fragen? 480 00:22:38,366 --> 00:22:41,222 481 00:22:41,222 --> 00:22:45,080 >> ZIELGRUPPE: Können Sie zusammenfassen Content-Type, sehr kurz? 482 00:22:45,080 --> 00:22:48,150 >> MARIA Zlatkova: Damit ist das, was der Server. 483 00:22:48,150 --> 00:22:51,020 die Art der information-- was Inhaltstyp waren die Fragen. 484 00:22:51,020 --> 00:22:53,400 Das war also der Art von Informationen, die Sie zurück zu bekommen 485 00:22:53,400 --> 00:22:58,200 von dem Server, der Art der Daten, die der Browser kann dann 486 00:22:58,200 --> 00:23:00,604 machen, dass Sie verwenden. 487 00:23:00,604 --> 00:23:03,020 Publikum: Ist das, was diese Protokoll ist Ihnen zu sagen, zu tun? 488 00:23:03,020 --> 00:23:03,390 MARIA Zlatkova: Es tut uns leid? 489 00:23:03,390 --> 00:23:05,380 Publikum: Ist das, was das Protokoll zu sagen? 490 00:23:05,380 --> 00:23:05,915 MARIA Zlatkova: Die protocol-- 491 00:23:05,915 --> 00:23:07,940 ZIELGRUPPE: --was die Content-Type ist oder what-- 492 00:23:07,940 --> 00:23:12,040 MARIA Zlatkova: Das Protokoll basiert an--, was ist das Protokoll sage Ihnen? 493 00:23:12,040 --> 00:23:16,070 Das ist halt so dass diese Informationen 494 00:23:16,070 --> 00:23:18,610 wurde an Sie geliefert basiert Auf welche Art von Protokoll 495 00:23:18,610 --> 00:23:21,830 wurden diese Informationen bekommen zurück an Sie geliefert. 496 00:23:21,830 --> 00:23:23,500 Macht das Sinn Art? 497 00:23:23,500 --> 00:23:28,320 498 00:23:28,320 --> 00:23:30,070 HANNAH BLUMBERG: Sie kann der Protokoll denken 499 00:23:30,070 --> 00:23:33,300 wie a-- Ich denke, Professor Malan beschrieb es 500 00:23:33,300 --> 00:23:36,910 in der Klasse als eine Art, wie es ist, a-- das Äquivalent der menschlichen Handshake. 501 00:23:36,910 --> 00:23:44,930 Sagen, wie, hey, ich bin eine Anfrage und ich wissen, wie man HTTP-Version 1.1 zu behandeln. 502 00:23:44,930 --> 00:23:48,770 Und dann sagt der Server, oh, OK, I-- und beide existieren. 503 00:23:48,770 --> 00:23:51,337 Ich weiß auch, wie man mit HTTP / 1.1 umzugehen. 504 00:23:51,337 --> 00:23:53,170 Und ich werde zu geben Sie sichern einige Inhalte. 505 00:23:53,170 --> 00:23:56,230 In diesem Fall, es geht vom Typ text / html ist. 506 00:23:56,230 --> 00:23:58,480 Also, es ist irgendwie nur ein Weg, davon für communicating-- 507 00:23:58,480 --> 00:24:00,480 >> MARIA Zlatkova: Es ist nur, die bestätigt, dass Sie 508 00:24:00,480 --> 00:24:03,290 sowohl nach dem gleichen Protokoll und dass sowohl 509 00:24:03,290 --> 00:24:06,620 der Client und der so server-- Ihrem Browser und dem server-- 510 00:24:06,620 --> 00:24:09,280 Art weiß, was du reden und haben 511 00:24:09,280 --> 00:24:12,557 die Konvention für die Weitergabe in Daten. 512 00:24:12,557 --> 00:24:17,022 >> Publikum: So ist die Content-Type part-- die Content-Type text / html-- ist, dass 513 00:24:17,022 --> 00:24:18,521 ein separater Teil der gleichen Botschaft? 514 00:24:18,521 --> 00:24:20,509 Oder ist es Teil der sagen wir mal, 200? 515 00:24:20,509 --> 00:24:22,010 Hat 200 ihnen sagen, dass oder ist-- 516 00:24:22,010 --> 00:24:23,770 >> MARIA Zlatkova: 200 sagt, es ging alles OK. 517 00:24:23,770 --> 00:24:27,900 Und dann Inhaltstyp ist eine Art separaten Teil der gleichen Nachricht, 518 00:24:27,900 --> 00:24:34,274 und sagen, die Sache, die ich zurückgekehrt ist, diese Art von text / html. 519 00:24:34,274 --> 00:24:35,690 Es ist nur geben weitere Informationen. 520 00:24:35,690 --> 00:24:38,700 521 00:24:38,700 --> 00:24:39,995 Haben Sie etwas hinzuzufügen? 522 00:24:39,995 --> 00:24:40,495 OK. 523 00:24:40,495 --> 00:24:43,590 524 00:24:43,590 --> 00:24:46,530 >> Weitere Fragen zu diesem Thema? 525 00:24:46,530 --> 00:24:48,370 Fantastisch. 526 00:24:48,370 --> 00:24:54,070 So einige andere HTTP-Status, konnten wir zusätzlich zu 200 OK bekommen, 527 00:24:54,070 --> 00:24:59,500 diejenigen, die wir vielleicht gesehen haben möglicherweise viel sind 403 und 404. 528 00:24:59,500 --> 00:25:05,190 So 404, wenn Sie versuchten, Zugang etwas, das es nicht gibt. 529 00:25:05,190 --> 00:25:10,460 So zum Beispiel, in Ihrem CS50 Finanzen psets, 530 00:25:10,460 --> 00:25:15,640 wenn Sie hatte Rendering quote.html und Sie nicht über diese Datei, 531 00:25:15,640 --> 00:25:19,740 sondern man musste quote.php, dass würde in einem 404 führen nicht gefunden 532 00:25:19,740 --> 00:25:21,600 da die Datei nicht existieren könnte. 533 00:25:21,600 --> 00:25:25,690 >> Für eine 403 verboten, dass bezieht sich auf die Berechtigungen. 534 00:25:25,690 --> 00:25:31,150 Also, wenn einige Datei wird von der nicht lesbar Welt, könnte man eine 403 zurückgegeben zu werden. 535 00:25:31,150 --> 00:25:34,510 536 00:25:34,510 --> 00:25:37,810 Einige andere, die Sie get-- 301 Moved Permanently; 537 00:25:37,810 --> 00:25:41,300 302, gefunden; 304 Geändert; 400 Bad Request; 538 00:25:41,300 --> 00:25:47,330 und dann Interner Serverfehler für 500 und 503 Service Unavailable. 539 00:25:47,330 --> 00:25:48,140 Ja. 540 00:25:48,140 --> 00:25:51,490 >> ZIELGRUPPE: Werden wir zu erwarten auswendig zu lernen alle diese Zustände? 541 00:25:51,490 --> 00:25:53,739 MARIA Zlatkova: Ich hätte sie auf Ihrem Spickzettel. 542 00:25:53,739 --> 00:25:55,146 [LACHEN] 543 00:25:55,146 --> 00:25:59,954 ZIELGRUPPE: Sind wir zu erwarten wissen, was löst jeden? 544 00:25:59,954 --> 00:26:00,995 MARIA Zlatkova: Sind sie das? 545 00:26:00,995 --> 00:26:03,870 HANNAH BLUMBERG: Für diejenigen, die wir haben laufen into-- so die Frage was-- 546 00:26:03,870 --> 00:26:08,010 MARIA Zlatkova: Sind sie zu erwarten wissen, was jede dieser Status 547 00:26:08,010 --> 00:26:09,330 Codes könnte ausgelöst werden durch? 548 00:26:09,330 --> 00:26:13,240 Also für diejenigen, die wir verwendet haben, und lief in, würde ich sagen, ja. 549 00:26:13,240 --> 00:26:16,610 Deshalb haben wir auf jeden Fall gesehen, 200 OK und lehrte sie in psets. 550 00:26:16,610 --> 00:26:19,071 Wir haben gesehen 403, 404. 551 00:26:19,071 --> 00:26:20,550 Für andere, die? 552 00:26:20,550 --> 00:26:22,690 >> HANNAH BLUMBERG: Ich würde sagen, 500 scheint fair game. 553 00:26:22,690 --> 00:26:23,330 >> MARIA Zlatkova: 500, yeah. 554 00:26:23,330 --> 00:26:24,246 >> HANNAH BLUMBERG: Ja. 555 00:26:24,246 --> 00:26:27,006 Müssen nur ein allgemeines Gefühl von dem, was sie verursacht. 556 00:26:27,006 --> 00:26:28,880 Und auch nur von diesen Namen können Sie Art 557 00:26:28,880 --> 00:26:32,890 wie eine fundierte Vermutung zu dem, was tatsächlich verursachten sie. 558 00:26:32,890 --> 00:26:36,919 Zum Beispiel permanent bewegen, wahrscheinlich die Datei wurde dauerhaft verschoben. 559 00:26:36,919 --> 00:26:39,328 >> ZIELGRUPPE: Aber auf einem früheren Prüfung, gab es eine so 560 00:26:39,328 --> 00:26:41,050 wie kann man erwarten, dass wir beantworten? 561 00:26:41,050 --> 00:26:42,883 >> HANNAH BLUMBERG: Das war es wert null Punkte. 562 00:26:42,883 --> 00:26:45,870 Die Frage über 418 auf der Teekanne ist technisch ein HTTP-Status, 563 00:26:45,870 --> 00:26:47,090 aber es hat sich gelohnt null Punkte. 564 00:26:47,090 --> 00:26:48,320 Offensichtlich sind Sie nicht erwartet, dass sie wissen. 565 00:26:48,320 --> 00:26:49,670 >> Publikum: Ist es eine echte? 566 00:26:49,670 --> 00:26:51,970 >> HANNAH BLUMBERG: Es ist eine echte , aber es hat nichts zu bedeuten. 567 00:26:51,970 --> 00:26:52,700 Es ist nur ein Witz. 568 00:26:52,700 --> 00:26:55,480 569 00:26:55,480 --> 00:26:57,010 Internet Leute sind lustig. 570 00:26:57,010 --> 00:26:59,680 >> MARIA Zlatkova: Great Fragen, Jungs. 571 00:26:59,680 --> 00:27:01,452 Noch mehr Fragen? 572 00:27:01,452 --> 00:27:04,891 >> ZIELGRUPPE: Was ist interner Server-Fehler? 573 00:27:04,891 --> 00:27:06,640 MARIA Zlatkova: Intern Server-Fehler nur 574 00:27:06,640 --> 00:27:10,050 bedeutet, dass Sie gewesen sind nicht kommunizieren 575 00:27:10,050 --> 00:27:13,400 mit dem Server aus irgendeinem Grund. 576 00:27:13,400 --> 00:27:15,400 Es ist also nicht unbedingt etwas, das zu tun hat 577 00:27:15,400 --> 00:27:19,170 mit dem Kunden oder so ähnlich. 578 00:27:19,170 --> 00:27:22,170 Ich kenne keine speziellen Beispiel wissen, dass wir über gegangen, um zu erklären, 579 00:27:22,170 --> 00:27:23,000 aber ja. 580 00:27:23,000 --> 00:27:23,250 >> HANNAH BLUMBERG: Sicher. 581 00:27:23,250 --> 00:27:25,625 So zum Beispiel, wie wir sagen, Sie auf Mashup arbeiteten 582 00:27:25,625 --> 00:27:30,440 und einen Server von Google ging für einige Grund ist ein Stromausfall, sagen wir. 583 00:27:30,440 --> 00:27:33,400 Das wäre ein interner Server sein Fehler oder irgendeine Art von-- mag dich 584 00:27:33,400 --> 00:27:34,630 würde keine Antwort zurück. 585 00:27:34,630 --> 00:27:35,260 >> MARIA Zlatkova: Ja. 586 00:27:35,260 --> 00:27:37,050 Es ist nur, wenn Sie nicht kommunizieren 587 00:27:37,050 --> 00:27:40,299 mit dem Server aus irgendeinem Grund, weil davon hinunter oder aus einem anderen Grund. 588 00:27:40,299 --> 00:27:44,430 589 00:27:44,430 --> 00:27:47,690 So springt in PHP. 590 00:27:47,690 --> 00:27:49,930 PHP im Gegensatz zu HTML, ist ein Programmiersprache. 591 00:27:49,930 --> 00:27:54,820 Und wir verwenden es, weil es begann sehr nützlich für Web-Entwicklung. 592 00:27:54,820 --> 00:27:56,940 >> Wir ersten verwendet es in CS50 Finance. 593 00:27:56,940 --> 00:28:02,240 Und es ist im Grunde hilft uns zu bringen zusammen dieses Markup, das Design, 594 00:28:02,240 --> 00:28:07,460 und wie wir eigentlich Informationen benutzen, die Dinge auf einer Webseite anzuzeigen. 595 00:28:07,460 --> 00:28:11,870 So PHP selbst bedeutet PHP Hypertext Preprocessor, 596 00:28:11,870 --> 00:28:15,360 so ist es eine rekursive backnorym von selbst aus. 597 00:28:15,360 --> 00:28:22,330 Und Öffnen Tags für PHP wir die linke und rechts Pfeile mit den Fragezeichen 598 00:28:22,330 --> 00:28:23,060 und PHP. 599 00:28:23,060 --> 00:28:25,890 >> So haben wir bereits eine Reihe von gesehen. 600 00:28:25,890 --> 00:28:29,150 Nun, wir sind nur gehen über einige der grundlegenden Dinge über sie. 601 00:28:29,150 --> 00:28:32,280 Also mit PHP, die Variable Namen mit Dollar-Zeichen. 602 00:28:32,280 --> 00:28:35,660 Wir wissen nicht geben, noch einmal, eine Variable mehr geben. 603 00:28:35,660 --> 00:28:38,450 So wie wir mit C hat, brauchen wir nicht, das zu tun. 604 00:28:38,450 --> 00:28:41,670 605 00:28:41,670 --> 00:28:44,490 >> Wir können eine Reihe von verschiedenen zu tun Sachen mit Variablen. 606 00:28:44,490 --> 00:28:47,750 Wir können sie zusammen durch Verkettung von ihnen 607 00:28:47,750 --> 00:28:52,900 mit der Punktnotation, die wir konnten nicht in C wieder tun. 608 00:28:52,900 --> 00:28:57,490 Auch hier haben wir ein bisschen mehr Flexibilität mit PHP im Hinblick auf die Variablen. 609 00:28:57,490 --> 00:29:00,080 Auch hier haben wir nicht eine Hauptfunktion. 610 00:29:00,080 --> 00:29:03,370 >> Und PHP interpretiert im Gegensatz zu kompiliert 611 00:29:03,370 --> 00:29:09,970 So, wie wir es für die C-Dateien zu machen, wir haben nicht zu der für PHP zu tun. 612 00:29:09,970 --> 00:29:15,440 Sondern die Art und Weise, dass der Sprache wird von selbst läuft, wird sie interpretiert. 613 00:29:15,440 --> 00:29:18,550 Und dann schwach typisierte einfach bedeutet, dass wir 614 00:29:18,550 --> 00:29:22,490 nicht haben, um eine Variable angeben, Typ und die Variablentypen 615 00:29:22,490 --> 00:29:25,415 werden zur Laufzeit bekannt. 616 00:29:25,415 --> 00:29:29,185 >> ZIELGRUPPE: Aber was Sie getan haben damit meine dot Verkettung? 617 00:29:29,185 --> 00:29:30,060 MARIA Zlatkova: Sicher. 618 00:29:30,060 --> 00:29:37,660 Wenn wir die Dinge together-- setzen wollen so dass, wenn wir eine variable hatte, 619 00:29:37,660 --> 00:29:41,500 hatte den Wert von 3, und wir hatten eine andere Variable, die den Wert der String hat, 620 00:29:41,500 --> 00:29:45,920 wir könnten die Variablen zusammengestellt indem Sie einen Punkt zwischen ihnen 621 00:29:45,920 --> 00:29:46,970 und verketten sie. 622 00:29:46,970 --> 00:29:52,670 Oder wir könnten eine zu erstellen Variable namens name 623 00:29:52,670 --> 00:29:56,900 und legte sie zusammen durch Verkettung von zwei Strings. 624 00:29:56,900 --> 00:30:00,680 >> Also, wenn wir hatten ein String in doppelten Zitate und wir haben einen Punkt, nachdem es, 625 00:30:00,680 --> 00:30:03,660 und dann hatten wir eine andere Zeichenfolge, daß würde eine Zeichenfolge überhaupt zu erstellen. 626 00:30:03,660 --> 00:30:05,242 >> ZIELGRUPPE: OK. 627 00:30:05,242 --> 00:30:06,450 MARIA LETTLAND: War das klar? 628 00:30:06,450 --> 00:30:07,099 ZIELGRUPPE: Ja. 629 00:30:07,099 --> 00:30:07,890 MARIA Zlatkova: OK. 630 00:30:07,890 --> 00:30:08,766 Ja. 631 00:30:08,766 --> 00:30:11,146 >> Publikum: Wenn Sie sagen, anstatt interpretiert kompilierte, 632 00:30:11,146 --> 00:30:14,160 Sie reden über dich nicht müssen so spezifisch, wenn sein 633 00:30:14,160 --> 00:30:15,906 es darum geht, im Vergleich zu C PHP? 634 00:30:15,906 --> 00:30:18,085 635 00:30:18,085 --> 00:30:20,710 MARIA Zlatkova: Wenn wir sagen, interpretiert im Gegensatz zu kompiliert, 636 00:30:20,710 --> 00:30:21,850 was meinen wir damit? 637 00:30:21,850 --> 00:30:26,220 Das heißt also, dass wir nicht brauchen, ausführbaren Dateien, um PHP laufen. 638 00:30:26,220 --> 00:30:29,870 Es bedeutet, dass es ausgeführt wird, wie es geht. 639 00:30:29,870 --> 00:30:31,650 Ist das sinnvoll? 640 00:30:31,650 --> 00:30:32,495 Ein bisschen mehr. 641 00:30:32,495 --> 00:30:34,620 HANNAH BLUMBERG: Sie kann durch einen Dolmetscher zu denken, 642 00:30:34,620 --> 00:30:38,980 als ein anderes Programm, das zuständig ist Zur perfekten Zeile für Zeile durch PHP 643 00:30:38,980 --> 00:30:42,745 und tatsächlich führt es, im Gegensatz zu kompilieren es läuft alles auf Binär. 644 00:30:42,745 --> 00:30:46,050 Es ist nicht wirklich alles bedeuten darüber, wie bestimmte wir sein müssen. 645 00:30:46,050 --> 00:30:49,470 Wir müssen noch genau zu sein, und nicht Vergessen Sie Ihre Strichpunkt, und stellen Sie sicher, 646 00:30:49,470 --> 00:30:51,470 haben Sie Ihre Dollar-Zeichen, und solche Sachen. 647 00:30:51,470 --> 00:30:52,240 Gute Frage. 648 00:30:52,240 --> 00:30:53,115 >> MARIA Zlatkova: Ja. 649 00:30:53,115 --> 00:30:55,590 So Zeile für Zeile, wie mit C-Dateien gegenüber, 650 00:30:55,590 --> 00:30:59,100 wir müssen das ganze Finale schaffen bevor wir tatsächlich ausführen. 651 00:30:59,100 --> 00:31:00,360 Das ist der Hauptunterschied. 652 00:31:00,360 --> 00:31:02,655 Aber auch hier können wir nicht wirklich weniger spezifisch sein. 653 00:31:02,655 --> 00:31:08,760 654 00:31:08,760 --> 00:31:13,950 So Arrays in PHP dar eigentlich eine geordnete Karte. 655 00:31:13,950 --> 00:31:17,550 >> So Arrays assoziierten Werte auf Schlüssel. 656 00:31:17,550 --> 00:31:23,350 Die beiden Möglichkeiten, um ein zu erklären Anordnung, basierend auf dieser Syntax 657 00:31:23,350 --> 00:31:26,380 können wir mehr explizit sein zu sagen, wir haben eine Reihe 658 00:31:26,380 --> 00:31:31,010 und wir haben dieses key1, die Karten Diese value1, key2, die value2 abbildet. 659 00:31:31,010 --> 00:31:34,660 Oder wir können eine Reihe einfach zu erstellen dass die Werte selbst enthält 660 00:31:34,660 --> 00:31:38,360 und dann die Tasten in einer Weise verstanden werden. 661 00:31:38,360 --> 00:31:40,000 Haben Sie Fragen zu diesem Thema? 662 00:31:40,000 --> 00:31:42,500 >> Publikum: Was wäre der Schlüssel werden im zweiten Beispiel? 663 00:31:42,500 --> 00:31:47,100 664 00:31:47,100 --> 00:31:47,920 0, 1, 2, 3? 665 00:31:47,920 --> 00:31:50,650 666 00:31:50,650 --> 00:31:55,780 >> MARIA Zlatkova: Zum Beispiel, es ist einfach Schlüssel in diesem nicht unbedingt 667 00:31:55,780 --> 00:31:56,550 Macht einen Unterschied. 668 00:31:56,550 --> 00:32:01,720 Sie bestimmen, wie Sie können Verwenden Sie die Werte innerhalb der IT. 669 00:32:01,720 --> 00:32:08,660 Also, wenn wir hatten eine foreach Schleife in PHP Das wäre 670 00:32:08,660 --> 00:32:14,760 ermöglichen es uns, alle Werte zu gehen, Wir können alle Werte zu gehen, 671 00:32:14,760 --> 00:32:19,570 auch wenn wir nicht einheitlich war eine bestimmte Taste innerhalb der Website 672 00:32:19,570 --> 00:32:20,820 previous Syntax. 673 00:32:20,820 --> 00:32:23,460 >> So auch bei dieser Art des Arrays, konnten wir noch 674 00:32:23,460 --> 00:32:26,260 haben eine foreach-Schleife dass durch jede geht 675 00:32:26,260 --> 00:32:31,240 von den Werten in dem Schlüssel in der Anordnung. 676 00:32:31,240 --> 00:32:36,180 So der Syntax einer foreach Schleife, beginnen wir mit einem Array. 677 00:32:36,180 --> 00:32:38,720 678 00:32:38,720 --> 00:32:43,900 Diese $ arr Variable ist unsere tatsächlichen Array dass wir in der vorherigen Folie definiert 679 00:32:43,900 --> 00:32:47,550 als Wert, der buchstäblich geht durch jedes der Werte, 680 00:32:47,550 --> 00:32:50,122 egal ob wir hatten einen Schlüssel oder nicht. 681 00:32:50,122 --> 00:32:53,080 Und dann können wir etwas mit zu tun der Wert innerhalb der foreach-Schleife. 682 00:32:53,080 --> 00:32:57,730 Also noch einmal, wenn wir ein Array wie dieses hier created-- 683 00:32:57,730 --> 00:33:03,270 so den Schlüssel foo und den Wert müssen wir Bar, der Schlüssel der baz und Wert der qux-- 684 00:33:03,270 --> 00:33:09,730 können wir eine foreach-Schleife, dass geht durch Array als Schlüsselwert 685 00:33:09,730 --> 00:33:11,900 und dann etwas zu tun mit dem Schlüssel und / oder Wert. 686 00:33:11,900 --> 00:33:15,980 Aber wir tun, nicht unbedingt immer haben müssen eine foreach-Schleifen, dass 687 00:33:15,980 --> 00:33:19,410 geht durch Array als Schlüsselkarte zu Wert. 688 00:33:19,410 --> 00:33:26,060 Wir können durch die gehen foreach-Schleife Array als Wert. 689 00:33:26,060 --> 00:33:28,990 >> HANNAH BLUMBERG: Und ich denke, zu-- war Ihre Frage, was 690 00:33:28,990 --> 00:33:31,229 ist der implizite Index? 691 00:33:31,229 --> 00:33:31,895 ZIELGRUPPE: Kinda. 692 00:33:31,895 --> 00:33:32,240 MARIA Zlatkova: Oh. 693 00:33:32,240 --> 00:33:33,406 HANNAH BLUMBERG: Ja, ja. 694 00:33:33,406 --> 00:33:36,150 Also im Grunde, wenn Sie nicht angeben ein Schlüssel, es wird 01 sein. 695 00:33:36,150 --> 00:33:37,140 >> MARIA Zlatkova: Ja. 696 00:33:37,140 --> 00:33:41,718 Genau wie bei C, es ist null indiziert, wenn Sie nicht über einen Schlüssel angeben. 697 00:33:41,718 --> 00:33:42,384 Publikum: Es tut uns leid. 698 00:33:42,384 --> 00:33:43,827 Könnten Sie versuchen, zu sprechen etwas lauter? 699 00:33:43,827 --> 00:33:45,270 Ich habe ein bisschen von Schwierigkeiten mit dem Hören alles. 700 00:33:45,270 --> 00:33:46,478 >> MARIA Zlatkova: Es tut mir leid. 701 00:33:46,478 --> 00:33:48,439 Ja natürlich. 702 00:33:48,439 --> 00:33:50,230 Also willst du mich willst erneut, um über diese gehen? 703 00:33:50,230 --> 00:33:51,680 Oder this-- ist 704 00:33:51,680 --> 00:33:54,930 Publikum: So auf der vorherigen slide-- wenn Sie gerade gehen könnte für eine Sekunde zurück. 705 00:33:54,930 --> 00:33:57,313 MARIA Zlatkova: Natürlich, sorry. 706 00:33:57,313 --> 00:33:59,237 Publikum: So die zweite Array hier nicht 707 00:33:59,237 --> 00:34:04,135 scheinen einen Wert haben, um Schlüssel, Art [? Schadensursache. ?] 708 00:34:04,135 --> 00:34:05,343 MARIA Zlatkova: Richtig, richtig. 709 00:34:05,343 --> 00:34:07,608 Publikum: So wie funktioniert das wenn Sie sagen, es ist alles oder nichts. 710 00:34:07,608 --> 00:34:08,969 Für mich sieht das wie ein [? foo?] bereits. 711 00:34:08,969 --> 00:34:10,093 >> MARIA Zlatkova: Ja, ja. 712 00:34:10,093 --> 00:34:12,969 Also noch einmal, ist dies ein bestellt Karte in diesem Sinne 713 00:34:12,969 --> 00:34:15,639 dass es verstanden werden, zB die Indizes 714 00:34:15,639 --> 00:34:20,159 Hier kann als 0, 1, 2, 3 zu verstehen. 715 00:34:20,159 --> 00:34:25,929 Auch das ist mit denen Indizes ist unser Äquivalent 716 00:34:25,929 --> 00:34:28,980 der mit Schlüssel auf Werte abgebildet. 717 00:34:28,980 --> 00:34:34,710 Wenn also war unser Schlüssel 0-- sorry. 718 00:34:34,710 --> 00:34:36,524 >> HANNAH BLUMBERG: Nein, Es gibt hier oben Kreide. 719 00:34:36,524 --> 00:34:36,929 Es ist eigentlich sehr schön. 720 00:34:36,929 --> 00:34:37,460 >> MARIA Zlatkova: Das ist toll. 721 00:34:37,460 --> 00:34:38,260 OK. 722 00:34:38,260 --> 00:34:49,489 Also noch einmal, $ arr 0 wäre, der Schlüssel für den Wert 1. 723 00:34:49,489 --> 00:34:51,138 0 würde der Schlüssel für den Wert 1 zu sein. 724 00:34:51,138 --> 00:34:51,971 Publikum: Es tut mir leid. 725 00:34:51,971 --> 00:34:53,190 Es ist unsichtbar. 726 00:34:53,190 --> 00:34:53,659 >> HANNAH BLUMBERG: In Ordnung, nevermind. 727 00:34:53,659 --> 00:34:54,980 Chalk war eine schlechte Idee. 728 00:34:54,980 --> 00:34:58,030 Ich nehme es zurück. 729 00:34:58,030 --> 00:35:01,425 Sie können der Schlüssel zu denken als 0 Karten auf den Wert 1. 730 00:35:01,425 --> 00:35:02,300 MARIA Zlatkova: Ja. 731 00:35:02,300 --> 00:35:04,630 Das ist also 0, ist dies 1, 2, 3. 732 00:35:04,630 --> 00:35:05,760 Diese können Sie Ihre Schlüssel sein. 733 00:35:05,760 --> 00:35:10,020 Sie können von ihnen as-- denke ja. 734 00:35:10,020 --> 00:35:12,740 Also anstatt expliziten Schlüssel, sie sind 735 00:35:12,740 --> 00:35:17,180 Art verstanden als die Indizes bei 0 beginnt. 736 00:35:17,180 --> 00:35:21,630 737 00:35:21,630 --> 00:35:24,820 Die Kreide hat nicht geholfen. 738 00:35:24,820 --> 00:35:25,722 Ja. 739 00:35:25,722 --> 00:35:30,914 >> Gruppe: für die foreach-Schleife, Wenn wir das als Wert betrachten wollte, 740 00:35:30,914 --> 00:35:33,245 Es wäre nur automatisch Index auf 0? 741 00:35:33,245 --> 00:35:34,120 MARIA Zlatkova: Ja. 742 00:35:34,120 --> 00:35:35,745 Es würde durch jeden der Werte gehen. 743 00:35:35,745 --> 00:35:39,130 ZIELGRUPPE: [unverständlich] wie 0 oder wäre das nur tun, 0? 744 00:35:39,130 --> 00:35:43,710 >> MARIA Zlatkova: Sie müssten als Dollar-Zeichen und dann sagen, 745 00:35:43,710 --> 00:35:46,266 einige Variablennamen, Wert. 746 00:35:46,266 --> 00:35:47,182 ZIELGRUPPE: [unverständlich]. 747 00:35:47,182 --> 00:35:50,048 748 00:35:50,048 --> 00:35:50,964 MARIA Zlatkova: Es tut uns leid? 749 00:35:50,964 --> 00:35:52,839 ZIELGRUPPE: Sorry, ich bin nur versuchen, sich zu erinnern. 750 00:35:52,839 --> 00:35:57,190 Wie würden Sie wissen, dass, wenn Sie es tun können automatisch die Indizierung ist nur 0 von? 751 00:35:57,190 --> 00:36:00,780 >> MARIA Zlatkova: Wie würden Sie das tun wenn Sie nicht über bestimmte Schlüsselnamen? 752 00:36:00,780 --> 00:36:01,710 >> ZIELGRUPPE: Ja. 753 00:36:01,710 --> 00:36:07,820 >> MARIA Zlatkova: Sie würden nur define-- nur sagen, selbst als einige Namen. 754 00:36:07,820 --> 00:36:17,950 Also in Ihrem psets, euch könnte erinnern foreach $ row als Zeilen $, 755 00:36:17,950 --> 00:36:24,610 wir selbst diese $ row sagen erstellt Wir wollen durch Zeile wie $ Reihen zu gehen. 756 00:36:24,610 --> 00:36:28,360 Auch wenn wir nicht Diese explizite $ rows definiert sind, 757 00:36:28,360 --> 00:36:31,990 wir könnten einfach hingehen und sagen, dass dies unsere Schlüssel sein, 758 00:36:31,990 --> 00:36:33,615 und gerade durch jeden der Werte gehen. 759 00:36:33,615 --> 00:36:37,295 760 00:36:37,295 --> 00:36:41,660 >> Publikum: So ist der Wert eine neue Variable wir schaffen zu speichern [unverständlich]? 761 00:36:41,660 --> 00:36:46,820 762 00:36:46,820 --> 00:36:49,990 >> MARIA Zlatkova: Also ist es nicht von Natur aus eine neue Variable. 763 00:36:49,990 --> 00:37:00,310 Es ist eine Variable, die auf das bezieht innerhalb des Arrays zu jedem von ihnen. 764 00:37:00,310 --> 00:37:02,060 HANNAH BLUMBERG: Es ist ein neuer Name variabel. 765 00:37:02,060 --> 00:37:04,018 MARIA Zlatkova: Ja, es ist eine neue Variablennamen, 766 00:37:04,018 --> 00:37:06,680 aber es ist nicht inherently-- ja. 767 00:37:06,680 --> 00:37:08,950 Es ist nur eine neue Variable dass Sie das tun. 768 00:37:08,950 --> 00:37:12,680 So, wie wir das gemacht haben $ wie $ Reihen, Reihen Reihen 769 00:37:12,680 --> 00:37:17,980 war einen neuen Variablennamen, dass wir konnte in unserem foreach-Schleife erstellen. 770 00:37:17,980 --> 00:37:22,065 Es muss nicht vor, dass präexistieren. 771 00:37:22,065 --> 00:37:25,777 >> ZIELGRUPPE: Können Sie über die gehen Logik für jede, am Beispiel da? 772 00:37:25,777 --> 00:37:26,610 MARIA Zlatkova: Mhm. 773 00:37:26,610 --> 00:37:31,240 774 00:37:31,240 --> 00:37:32,080 Oh, das tut mir leid. 775 00:37:32,080 --> 00:37:33,780 Hier ist das Beispiel. 776 00:37:33,780 --> 00:37:34,280 Sicher. 777 00:37:34,280 --> 00:37:38,950 Also für jeden array-- so das bedeutet, gehen Sie zu diesem Array 778 00:37:38,950 --> 00:37:43,930 als Schlüssel value-- das wird um durch diese Anordnung gehen 779 00:37:43,930 --> 00:37:49,480 und ersten gehen und foo, die Schlüssel foo und der Wert bar. 780 00:37:49,480 --> 00:37:51,570 Und dann auf dem zweiten Iteration der for-Schleife, 781 00:37:51,570 --> 00:37:55,090 es geht um durch zu gehen und nehmen Sie der Schlüssel baz und der Wert qux. 782 00:37:55,090 --> 00:38:00,512 Und dann kann man etwas mit zu tun einer von ihnen oder beide. 783 00:38:00,512 --> 00:38:03,488 >> Publikum: So ist die Idee hinter mit einem Schlüsselpunkt auf den Wert, 784 00:38:03,488 --> 00:38:07,470 was tun Sie am Ende den Zugriff? 785 00:38:07,470 --> 00:38:10,680 >> MARIA Zlatkova: Was ist die Idee der mit einem Schlüsselzeige zu bewerten? 786 00:38:10,680 --> 00:38:16,400 Es ist nur eine andere Konvention, ein anderer Weg zu gehen durch das Array 787 00:38:16,400 --> 00:38:22,600 und die Möglichkeit für den Zugriff auf entweder der Schlüssel oder den Wert oder beides und zu nutzen. 788 00:38:22,600 --> 00:38:27,100 >> Publikum: Was ist die Rolle für die anordnen, dass die foreach läuft? 789 00:38:27,100 --> 00:38:29,250 Also, wenn wir hinzufügen, waren von Elementen zum Array später 790 00:38:29,250 --> 00:38:32,140 würden diejenigen, die ersten zu sein in der foreach-Array mit dem Namen, 791 00:38:32,140 --> 00:38:33,750 oder wäre es später sein? 792 00:38:33,750 --> 00:38:37,770 >> MARIA Zlatkova: Also, was ist die Reihenfolge, dass die foreach 793 00:38:37,770 --> 00:38:39,210 Schleife geht durch ein Feld in? 794 00:38:39,210 --> 00:38:42,220 Es geht durch die erste Element bis zum letzten Element, 795 00:38:42,220 --> 00:38:43,400 bis zum letzten Element hinzugefügt. 796 00:38:43,400 --> 00:38:48,020 Wenn Sie Elemente später hinzufügen, würden sie werden accessed-- die ersten Elemente würden 797 00:38:48,020 --> 00:38:51,410 als erstes zugegriffen werden Elemente des Arrays, 798 00:38:51,410 --> 00:38:57,620 und dann würden Sie durch jede der gehen die Elemente als eine Art einer ordered-- 799 00:38:57,620 --> 00:39:02,930 nicht bestellt, aber die Art und Weise, sie in das Array gesetzt. 800 00:39:02,930 --> 00:39:06,855 >> Publikum: So neue Elemente werden später hinzugefügt? 801 00:39:06,855 --> 00:39:10,680 So dass sie added-- werden sie das sein, letzten, die in der [? Iteration. ?] 802 00:39:10,680 --> 00:39:14,280 >> MARIA Zlatkova: Neue Elemente can-- Grundsätzlich, wenn neue Elemente hinzugefügt werden, 803 00:39:14,280 --> 00:39:16,520 werden sie zu dem Ende der Reihe hinzugefügt? 804 00:39:16,520 --> 00:39:17,632 >> ZIELGRUPPE: Ja. 805 00:39:17,632 --> 00:39:18,840 MARIA Zlatkova: Ich glaube schon. 806 00:39:18,840 --> 00:39:20,850 Ja. 807 00:39:20,850 --> 00:39:24,330 Und dann mit Ihrem foreach-Schleife, nachdem Sie neue Elemente hinzugefügt haben 808 00:39:24,330 --> 00:39:26,790 und Sie durch sie gehen, die neuen Elemente würden 809 00:39:26,790 --> 00:39:30,930 sein accessed-- neuen Elements, wenn es zuletzt zugegeben, wäre es zuletzt zugegriffen werden. 810 00:39:30,930 --> 00:39:34,416 >> ZIELGRUPPE: Können Sie sich ein Beispiel geben von etwas, das [unverständlich] Wollen 811 00:39:34,416 --> 00:39:37,404 mit etwas mit Wert wie [unverständlich] oder Wert, 812 00:39:37,404 --> 00:39:38,910 wie, wie Sie möchten, dass zu formatieren? 813 00:39:38,910 --> 00:39:39,785 >> MARIA Zlatkova: Sicher. 814 00:39:39,785 --> 00:39:42,340 815 00:39:42,340 --> 00:39:46,410 Kann ich ein Beispiel geben, was wir mit dem Wert zu tun würde? 816 00:39:46,410 --> 00:39:52,440 Also, was euch vielleicht vertraut sein ist, dass wir durch eine Reihe fort 817 00:39:52,440 --> 00:39:55,380 und im Grunde gedruckt jedes der Elemente, 818 00:39:55,380 --> 00:40:00,910 zum Beispiel als ein Teil eines geordnete Liste oder etwas, das. 819 00:40:00,910 --> 00:40:02,674 Ist das sinnvoll oder wollen wir zu-- 820 00:40:02,674 --> 00:40:04,340 ZIELGRUPPE: Können wir drucken diese Werte aus? 821 00:40:04,340 --> 00:40:13,220 MARIA Zlatkova: Ja, wir drucken könnte und dann im Grunde $ value, weil bei 822 00:40:13,220 --> 00:40:16,570 dass bestimmten Wert, wir würden uns Drucken Sie den Wert darin. 823 00:40:16,570 --> 00:40:20,150 Also, wenn wir in unserem ersten Iteration von ihm und wir gedruckte $ value, 824 00:40:20,150 --> 00:40:23,775 wir würden den Druck bar. 825 00:40:23,775 --> 00:40:27,020 >> Publikum: Gibt es auch für Schleifen in PHP oder foreach-Schleifen? 826 00:40:27,020 --> 00:40:30,430 >> MARIA Zlatkova: Es gibt auch für Schleifen in PHP. 827 00:40:30,430 --> 00:40:33,399 Und deren Logik meistens der elbe, was Sie bei uns eingesetzt. 828 00:40:33,399 --> 00:40:34,690 Publikum: So ist sein Wert null. 829 00:40:34,690 --> 00:40:35,090 MARIA Zlatkova: Es ist wie die gleiche. 830 00:40:35,090 --> 00:40:35,590 Ja. 831 00:40:35,590 --> 00:40:37,747 Publikum: Ich werde einfach zu fragen. 832 00:40:37,747 --> 00:40:39,695 Also, wenn Sie ein zu erklären Array, brauchen Sie nicht 833 00:40:39,695 --> 00:40:42,617 zu erklären, welche Größe es zu gehen sein, was bedeutet, dass man nur 834 00:40:42,617 --> 00:40:44,417 hinzufügen und wegnehmen Elemente [unverständlich]. 835 00:40:44,417 --> 00:40:45,250 MARIA Zlatkova: Yup. 836 00:40:45,250 --> 00:40:45,750 Jep. 837 00:40:45,750 --> 00:40:46,251 Genau. 838 00:40:46,251 --> 00:40:48,875 Wenn wir ein Array deklarieren, wir brauchen nicht zu sagen, wie groß sie ist, 839 00:40:48,875 --> 00:40:51,022 so können wir nur hinzufügen, Elemente auf sie später auch. 840 00:40:51,022 --> 00:40:55,075 841 00:40:55,075 --> 00:40:55,700 Mehr Fragen? 842 00:40:55,700 --> 00:40:59,870 843 00:40:59,870 --> 00:41:05,950 So bringen PHP und HTML zusammen, Was haben wir gut seen--, 844 00:41:05,950 --> 00:41:15,130 beispielsweise in diesem Beispiel haben wir ein HTML-Formular, das ein Eingabefeld hat. 845 00:41:15,130 --> 00:41:18,830 >> Und das Eingabefeld ist nur Namen und dann hat es einen Submit-Button. 846 00:41:18,830 --> 00:41:26,040 Und wenn Sie die Taste Senden Button, in unserem hello.php-Datei, 847 00:41:26,040 --> 00:41:32,130 da das Verfahren für das Formular erhalten, können wir zugreifen, was auch immer auf Namen 848 00:41:32,130 --> 00:41:40,360 durch dieses zu erhalten globale Variable, ist-- die Syntax ist es $ _GET. 849 00:41:40,360 --> 00:41:44,520 Und dann können wir den Zugriff unabhängig von der Benutzereingabe innerhalb dieses Formular für Namen 850 00:41:44,520 --> 00:41:47,410 indem Sie den Namen des Feldes. 851 00:41:47,410 --> 00:41:51,480 852 00:41:51,480 --> 00:41:55,060 >> Alle anderen Fragen oder jede Fragen zu diesem speziellen Beispiel? 853 00:41:55,060 --> 00:41:58,275 >> ZIELGRUPPE: Wo ist der PHP? 854 00:41:58,275 --> 00:41:59,150 MARIA Zlatkova: Hier. 855 00:41:59,150 --> 00:42:01,150 Also das ist unser Start-Tag für den PHP. 856 00:42:01,150 --> 00:42:01,530 >> ZIELGRUPPE: Ach ja, richtig. 857 00:42:01,530 --> 00:42:02,363 >> MARIA Zlatkova: Ja. 858 00:42:02,363 --> 00:42:05,320 859 00:42:05,320 --> 00:42:09,609 >> HANNAH BLUMBERG: Das ist die Kurzform = dafür ist PHP und nur Echo. 860 00:42:09,609 --> 00:42:10,150 ZIELGRUPPE: Oh. 861 00:42:10,150 --> 00:42:10,720 MARIA Zlatkova: Ja, sorry. 862 00:42:10,720 --> 00:42:12,040 Ich sollte das klar gemacht haben. 863 00:42:12,040 --> 00:42:13,759 >> HANNAH BLUMBERG: drucken. 864 00:42:13,759 --> 00:42:16,800 MARIA Zlatkova: Es ist nur die Funktion dass erlaubt uns, etwas zu drucken. 865 00:42:16,800 --> 00:42:19,795 866 00:42:19,795 --> 00:42:20,420 Gute Frage. 867 00:42:20,420 --> 00:42:24,140 868 00:42:24,140 --> 00:42:25,495 So going-- ja. 869 00:42:25,495 --> 00:42:31,940 >> ZIELGRUPPE: Wird es durchaus sein, ein wenig manuelle Programmierung von PHP und HTML 870 00:42:31,940 --> 00:42:33,450 am Quiz 1? 871 00:42:33,450 --> 00:42:36,310 872 00:42:36,310 --> 00:42:38,810 MARIA Zlatkova: Es kann eine sein, ziemlich viel Interpretations 873 00:42:38,810 --> 00:42:43,330 von PHP und HTML, nicht notwendigerweise wie eine riesige Menge von Kodierung, 874 00:42:43,330 --> 00:42:46,960 obwohl Sie vielleicht auf einen Schreib foreach-Schleife, obwohl, eine for-Schleife. 875 00:42:46,960 --> 00:42:49,790 Jede der Schleifen, die wir decken hier ist Freiwild. 876 00:42:49,790 --> 00:42:51,889 Und das ist meistens ist es. 877 00:42:51,889 --> 00:42:53,430 HANNAH BLUMBERG: Ich würde vorbereitet sein. 878 00:42:53,430 --> 00:42:57,010 Auf die gleiche Weise, die Sie baten wir um einen Haufen von C Funktionen auf Quiz 0, 879 00:42:57,010 --> 00:42:59,766 Ich würde bereit, das zu tun gleichen in PHP und JavaScript. 880 00:42:59,766 --> 00:43:00,640 MARIA Zlatkova: Ja. 881 00:43:00,640 --> 00:43:03,210 HANNAH BLUMBERG: Ich würde sagen, a little-- wären wir nicht 882 00:43:03,210 --> 00:43:06,251 gehen, dass Sie eine große HTML zu schreiben Seite, nur weil das ist ein bisschen 883 00:43:06,251 --> 00:43:08,240 langweilig, aber Sie haben könnten Teile. 884 00:43:08,240 --> 00:43:09,310 Das ist völlig fair game. 885 00:43:09,310 --> 00:43:11,082 Wie kleine HTML-Seite, ganz fair. 886 00:43:11,082 --> 00:43:11,623 ZIELGRUPPE: OK. 887 00:43:11,623 --> 00:43:13,814 Wie wäre es in JavaScript, wie gut? 888 00:43:13,814 --> 00:43:14,730 HANNAH BLUMBERG: Ja. 889 00:43:14,730 --> 00:43:15,250 JavaScript ist Freiwild. 890 00:43:15,250 --> 00:43:15,635 >> MARIA Zlatkova: Ja. 891 00:43:15,635 --> 00:43:16,801 Das ist völlig fair game. 892 00:43:16,801 --> 00:43:19,280 HANNAH BLUMBERG: Wir bringen wie in wie 10 Minuten. 893 00:43:19,280 --> 00:43:23,750 >> MARIA Zlatkova: SQL, wieder, Strukturierte Abfragesprache. 894 00:43:23,750 --> 00:43:28,651 Es ermöglicht uns, im Grunde, um Daten zu verwalten in einem relationalen Datenbankverwaltungs 895 00:43:28,651 --> 00:43:29,150 System. 896 00:43:29,150 --> 00:43:31,149 Dass gerade im Grunde bedeutet, dass wir irgendwo 897 00:43:31,149 --> 00:43:37,980 einige Daten, die wir auf Sie vielleicht speichern Verwendung in einer Website oder in einer anderen Form. 898 00:43:37,980 --> 00:43:42,190 Und dann haben wir Anfragen zu bekommen Daten aus unserer Datenbank, 899 00:43:42,190 --> 00:43:44,320 oder um Informationen in ihnen stecken. 900 00:43:44,320 --> 00:43:47,560 Ein großer Teil der gemeinsamen ones-- UPDATE, INSERT, SELECT und DELETE. 901 00:43:47,560 --> 00:43:50,790 >> Also für UPDATE, das ist die Syntax zum Aktualisieren von Daten in einer Datenbank. 902 00:43:50,790 --> 00:43:53,330 903 00:43:53,330 --> 00:43:57,340 Aktualisieren Sie diese Tabelle mit dem Namen Tabelle mit den Worten SET, 904 00:43:57,340 --> 00:44:04,170 können wir einige Werte in ganz eingestellt Zeilen, die gleich etwas anderes. 905 00:44:04,170 --> 00:44:09,410 So können wir auch einige spezifische angeben Einträge, die wir wollen, um zu ändern 906 00:44:09,410 --> 00:44:11,240 und dass sein mit WHERE kann. 907 00:44:11,240 --> 00:44:16,380 Und wir können angeben, dass wir wollen nur einige Zeilen zu ändern, wo das Haus zu, 908 00:44:16,380 --> 00:44:19,830 wenn wir eine Tabelle der Schüler hatten und alle Schüler hatten Haus, 909 00:44:19,830 --> 00:44:24,890 so würden wir nur einige Werte ändern wo ein Haus gleich Currier, 910 00:44:24,890 --> 00:44:25,430 beispielsweise. 911 00:44:25,430 --> 00:44:29,120 912 00:44:29,120 --> 00:44:31,800 >> Für INSERT, wir einfügen können bestimmte Werte in eine Tabelle. 913 00:44:31,800 --> 00:44:35,150 So in Tabelle einfügen, und dann werden die Werte, 914 00:44:35,150 --> 00:44:39,080 und dann in Klammern, die wir angeben welche Werte Sie einfügen möchten. 915 00:44:39,080 --> 00:44:43,220 So INSERT INTO Tabelle, col1 und col2 ist der Wert val1 und val2. 916 00:44:43,220 --> 00:44:48,930 So fügt dies im Grunde eine neue Zeile in eine Tabelle, die die Werte 1 und 2 917 00:44:48,930 --> 00:44:50,850 In den Spalten 1 und 2. 918 00:44:50,850 --> 00:44:54,760 >> Und dann werden wir gehen über ein kleines Beispiel dafür, wie diese aussieht 919 00:44:54,760 --> 00:44:56,310 wie in unserer Datenbank ein wenig. 920 00:44:56,310 --> 00:44:58,685 Aber das letzte Abfrage, die ich denke, wir gehen über, 921 00:44:58,685 --> 00:45:01,450 SELECT, es erlaubt uns nur um Daten aus einer Tabelle auszuwählen 922 00:45:01,450 --> 00:45:03,080 möglicherweise verwenden Sie es danach. 923 00:45:03,080 --> 00:45:05,830 Und die Art, wie wir dies tun, ist, dass wir nur speichern sie in einer Variable. 924 00:45:05,830 --> 00:45:07,780 Und dann können wir vielleicht wieder verwenden. 925 00:45:07,780 --> 00:45:10,260 >> So SELECT Stern bedeutet, wählen Sie alle. 926 00:45:10,260 --> 00:45:13,280 Das ist nur eine Kurzform zum Auswählen von allen. 927 00:45:13,280 --> 00:45:19,760 FROM Tabelle WHERE suchen wir für bestimmte Bedingungen 928 00:45:19,760 --> 00:45:22,290 also wo Spalte gleich etwas, zum Beispiel. 929 00:45:22,290 --> 00:45:24,410 Wenn wir nur wollten wählen Sie alle vom Tisch, 930 00:45:24,410 --> 00:45:28,400 dieses gerade wählt alle Spalten und alle Zeilen aus einer Tabelle. 931 00:45:28,400 --> 00:45:32,040 >> Und dann aus Tabelle löschen WHERE col gleich etwas, 932 00:45:32,040 --> 00:45:36,440 dieses gerade löscht einige Zeile von unserem Tisch 933 00:45:36,440 --> 00:45:38,860 wo wir einige spezifische Bedingungen. 934 00:45:38,860 --> 00:45:41,870 In diesem Fall sind die Bedingungen Spalten gleich etwas. 935 00:45:41,870 --> 00:45:43,460 Also nur ein kleines Beispiel dafür. 936 00:45:43,460 --> 00:45:49,100 Wenn wir diesen Tisch hier und wir legen Sie sie in einer Tabelle, die Werte, 937 00:45:49,100 --> 00:45:50,400 dass eine neue Zeile einfügen würde. 938 00:45:50,400 --> 00:45:56,380 Und wenn wir Auto-Inkrement, würde dies inkrementieren unserer ID 0-1 bis 2 ist. 939 00:45:56,380 --> 00:46:00,010 >> Wenn wir alle aus ausgewählten Studenten es, nur gibt alle Felder und alle Zeilen. 940 00:46:00,010 --> 00:46:02,430 Wo Jahr größer oder gleich 2016 941 00:46:02,430 --> 00:46:04,390 dass, nur zurückkehren würde Hannah und mir. 942 00:46:04,390 --> 00:46:08,360 Und dann, wenn wir nur gewählt Jahres-ID und das Jahr von Studenten, 943 00:46:08,360 --> 00:46:11,710 wo das Haus ist Cabot House, dass würde wieder zurückkehren Hannah und mir. 944 00:46:11,710 --> 00:46:14,430 >> Dann, wenn wir von den Studenten gelöscht wobei Name gleich Rob, 945 00:46:14,430 --> 00:46:16,760 das würde die ganze Zeile zu löschen. 946 00:46:16,760 --> 00:46:19,696 Und dann, wenn wir den Name, UPDATE Studenten 947 00:46:19,696 --> 00:46:21,570 Satzname gleich zu Daven WHERE Haus gleich 948 00:46:21,570 --> 00:46:27,010 Cabot House, das wird gehen die Zeilen und aktualisieren Sie dann den Namen. 949 00:46:27,010 --> 00:46:31,470 >> Und dann noch ein paar SQL-Datentypen sind CHAR, VARCHAR, INT, und schweben. 950 00:46:31,470 --> 00:46:32,760 Dies sind Freiwild. 951 00:46:32,760 --> 00:46:36,740 Ich würde wieder gehen und stellen Sie sicher, Sie wissen, 952 00:46:36,740 --> 00:46:40,930 und haben sie auf Ihrem Spickzettel, was jedes dieser Zeichen 953 00:46:40,930 --> 00:46:44,140 wählte verwendet wurde, was Sie sie auf Ihrer psets verwendet, 954 00:46:44,140 --> 00:46:48,050 und sicherzustellen, dass Sie vertraut sind und komfortabel mit zu müssen, wählen Sie 955 00:46:48,050 --> 00:46:51,450 aus verschiedenen Datentypen in Ihrem pset. 956 00:46:51,450 --> 00:46:51,950 Ja. 957 00:46:51,950 --> 00:46:54,300 >> ZIELGRUPPE: Was war das Tabelle gespeichert? 958 00:46:54,300 --> 00:46:57,119 Ja, wo ist diese Tabelle gespeichert? 959 00:46:57,119 --> 00:46:59,160 MARIA Zlatkova: Nun, gerade jetzt, es ist nicht gespeichert. 960 00:46:59,160 --> 00:47:00,700 Wie auch immer, wo ist diese Tabelle gespeichert? 961 00:47:00,700 --> 00:47:04,503 Aber es kann in einer SQL-Datenbank gespeichert werden. 962 00:47:04,503 --> 00:47:07,330 >> Publikum: Und wo ist die SQL-Datenbank? 963 00:47:07,330 --> 00:47:11,200 In dem Computer, Online- irgendwo, der Server? 964 00:47:11,200 --> 00:47:15,000 >> MARIA Zlatkova: Es kann eine sein, Reihe von verschiedenen Dingen. 965 00:47:15,000 --> 00:47:19,690 >> HANNAH BLUMBERG: Wir haben mit Schnittstelle SQL-Tabellen meistens mit phpMyAdmin. 966 00:47:19,690 --> 00:47:22,060 Also haben wir einen Server stellen konnte um sie für uns zu speichern. 967 00:47:22,060 --> 00:47:23,830 Wir könnten sie auf unserem eigenen Computer zu speichern. 968 00:47:23,830 --> 00:47:27,950 >> MARIA Zlatkova: Es hängt nur von wie Sie es für sich selbst zu tun. 969 00:47:27,950 --> 00:47:30,075 Aber wir wurden Speichern sie, wie Hannah erwähnt, 970 00:47:30,075 --> 00:47:31,755 auf phpMyAdmin, die online ist. 971 00:47:31,755 --> 00:47:36,550 972 00:47:36,550 --> 00:47:39,280 Und dann die Art und Weise verwenden wir PHP und SQL, es speichern wir 973 00:47:39,280 --> 00:47:43,450 in eine variable was wir abgefragt haben. 974 00:47:43,450 --> 00:47:48,370 >> Also, wenn wir alle aus der Geschichte WÄHLEN wo user_id gleich der Session-ID, 975 00:47:48,370 --> 00:47:53,900 dass alle Zeilen wählen würde für die spezielle Person, die 976 00:47:53,900 --> 00:47:58,327 wird aus dem Verlauf angemeldet Tisch und sortieren sie in Zeilen. 977 00:47:58,327 --> 00:48:00,410 Eine coole Sache zu wissen ist, dass Abfragefunktion des CS50 978 00:48:00,410 --> 00:48:02,180 schützt vor SQL-Injection-Tags. 979 00:48:02,180 --> 00:48:07,420 Das bedeutet nur, dass es sorgt dafür, der Eingang, der eingegeben wird, korrekt ist 980 00:48:07,420 --> 00:48:09,920 und dass die Person, ist die Eingabe der Eingangs 981 00:48:09,920 --> 00:48:15,100 versucht nicht, Eingangs einige böswillige Code, um entweder Drop unseren Tischen 982 00:48:15,100 --> 00:48:17,305 oder löschen Sie alles, was Innere unserer Datenbank. 983 00:48:17,305 --> 00:48:20,060 984 00:48:20,060 --> 00:48:23,400 >> Ein kurzer Überblick über die Model View Controller-Modell, 985 00:48:23,400 --> 00:48:27,360 es ist nur ein Weg für die Organisation und das Denken über Code. 986 00:48:27,360 --> 00:48:29,100 Es ist wieder ein Design-Paradigma. 987 00:48:29,100 --> 00:48:33,380 Das bedeutet, dass wir can-- und es ist gute Praxis 988 00:48:33,380 --> 00:48:37,790 um verschiedene Teile zu trennen unseres Codes und was sie 989 00:48:37,790 --> 00:48:40,530 Kontrolle in diese drei Paradigmen. 990 00:48:40,530 --> 00:48:46,700 >> Also aus unserer Sicht ist meistens unsere Vorlagen, unseren Layouts, die Art und Weise 991 00:48:46,700 --> 00:48:48,260 dass wir festlegen, wie unser Code sieht. 992 00:48:48,260 --> 00:48:55,190 Das ist vor allem CSS-Dateien und die Art, dass wir definiert das Design unserer Code, 993 00:48:55,190 --> 00:48:55,710 im Grunde. 994 00:48:55,710 --> 00:48:59,280 Unsere Steuerung ist vor allem, was wir haben mit PHP-Dateien zu tun ist. 995 00:48:59,280 --> 00:49:03,030 Also noch einmal, die Zusammenarbeit mit der Informationen, die wir haben, 996 00:49:03,030 --> 00:49:06,700 und definiert, wie die Informationen werden verwendet, 997 00:49:06,700 --> 00:49:10,660 und dann vorbei, dass die Informationen entweder auf die Ansicht oder das Modell. 998 00:49:10,660 --> 00:49:13,880 Und das Modell, die Art und Weise, dass wir wurde mit IS hat unsere Datenbank, 999 00:49:13,880 --> 00:49:17,510 also wo unsere Informationen gespeichert, so dass es irgendwo hat 1000 00:49:17,510 --> 00:49:21,490 zu leben, und mit einer der Code, der die Art und Weise betrifft 1001 00:49:21,490 --> 00:49:25,410 dass wir diese Informationen oder das bekommen Weise, dass wir diese Informationen zu aktualisieren. 1002 00:49:25,410 --> 00:49:28,940 1003 00:49:28,940 --> 00:49:33,200 >> So in der MVC-Modell, HTTP Anfragen werden an einen Web-Server gesendet. 1004 00:49:33,200 --> 00:49:36,220 Dann werden die Controller interpretiert die Anforderung von der Benutzer 1005 00:49:36,220 --> 00:49:38,260 und dann überprüft die Benutzereingabe. 1006 00:49:38,260 --> 00:49:41,580 Es ist optional, dass wir der Steuerung kommunizieren 1007 00:49:41,580 --> 00:49:44,000 mit einem Modell, so etwas, wie unserer Datenbank 1008 00:49:44,000 --> 00:49:47,500 oder eine andere Funktionalität , dass die Relais Informationen. 1009 00:49:47,500 --> 00:49:50,340 Und dann schließlich die Steuerung leitet Daten auf die Ansichts 1010 00:49:50,340 --> 00:49:52,090 so dass es sein kann, gemacht und dass sie 1011 00:49:52,090 --> 00:49:55,860 sichtbar für jede Person, Zugriff auf die Web-Seite. 1012 00:49:55,860 --> 00:49:58,440 1013 00:49:58,440 --> 00:50:01,340 >> Irgendwelche Fragen? 1014 00:50:01,340 --> 00:50:01,840 Fantastisch. 1015 00:50:01,840 --> 00:50:04,530 1016 00:50:04,530 --> 00:50:08,469 Also noch einmal, das Modell, seine Funktion wieder 1017 00:50:08,469 --> 00:50:11,260 ist persistente Speicherung von Informationen, Verwaltung und Organisation von Daten. 1018 00:50:11,260 --> 00:50:13,890 Und was wir so gesehen haben weit ist der MySQL-Datenbank 1019 00:50:13,890 --> 00:50:16,200 und alle Datendateien, die verwenden können. 1020 00:50:16,200 --> 00:50:20,580 >> Ansicht, Darstellung der Informationen zu der Benutzer das UI oder Benutzeroberfläche. 1021 00:50:20,580 --> 00:50:22,350 Und das Beispiel ist HTML. 1022 00:50:22,350 --> 00:50:23,950 Und dann haben wir vielleicht minimal PHP. 1023 00:50:23,950 --> 00:50:28,360 Also eine für Schleife, über Daten, die ausgedruckt werden 1024 00:50:28,360 --> 00:50:30,720 ist Teil der Ansicht, wie an die Steuereinrichtung gegenüberliegt. 1025 00:50:30,720 --> 00:50:35,660 Und dann eine Menge von unseren PHP-Dateien fallen in die Steuerung Kategorie. 1026 00:50:35,660 --> 00:50:38,410 Er verarbeitet nur Benutzeranforderungen und erhält Informationen aus dem Modell. 1027 00:50:38,410 --> 00:50:42,880 1028 00:50:42,880 --> 00:50:45,590 >> Sprung in den Document Objektmodell, das nur 1029 00:50:45,590 --> 00:50:47,700 bezieht sich auf die Art und Weise HTML Dokumente werden organisiert. 1030 00:50:47,700 --> 00:50:51,600 Und sie sind in einem Baum organisiert Struktur, die eine Hierarchie. 1031 00:50:51,600 --> 00:50:56,720 Wenn wir also den Zugang zu haben [unverständlich] Darstellung des Dokuments, 1032 00:50:56,720 --> 00:51:02,750 Wir können mit dem Dokument arbeiten, wie wir Objekte manipulieren, im Grunde. 1033 00:51:02,750 --> 00:51:06,630 >> Und diese eine zu machen wenig klarer, wenn 1034 00:51:06,630 --> 00:51:10,540 haben wir einen großen Teil unserer verschiedene Tags zu antworten 1035 00:51:10,540 --> 00:51:12,590 In den verschiedenen Routen in unserem Baum. 1036 00:51:12,590 --> 00:51:17,070 Und dann in diesem Beispiel wir haben die Startdokument Knoten. 1037 00:51:17,070 --> 00:51:20,010 Wir haben dann unseren HTML-Knoten dass spaltet sich in Kopf und Körper. 1038 00:51:20,010 --> 00:51:22,810 Kopf hat Titel und dann Titel enthält hallo, Welt. 1039 00:51:22,810 --> 00:51:24,860 Und unser Körper nur enthält Hallo, Welt als gut. 1040 00:51:24,860 --> 00:51:28,700 1041 00:51:28,700 --> 00:51:31,900 >> Also Fragen auf einer der Dinge, die wir bisher behandelt? 1042 00:51:31,900 --> 00:51:35,891 Und wenn nicht, wird Hannah übernimmt mit JavaScript. 1043 00:51:35,891 --> 00:51:36,390 Fantastisch. 1044 00:51:36,390 --> 00:51:37,473 >> HANNAH BLUMBERG: OK, cool. 1045 00:51:37,473 --> 00:51:40,980 Wenn etwas kommt mit PHP oder HTML, oder jede von dem Zeug Maria bedeckt, 1046 00:51:40,980 --> 00:51:42,700 wir können immer pausieren. 1047 00:51:42,700 --> 00:51:46,430 Wir sind besser tun Immer wieder, so genial. 1048 00:51:46,430 --> 00:51:48,770 Und nur um zurück zu gehen sehr schnell dazu, 1049 00:51:48,770 --> 00:51:51,010 wenn Sie bei jedem Blick vergangenen Jahres Prüfung dieses 1050 00:51:51,010 --> 00:51:54,120 kommt either-- hier einige HTML, machen dieses Diagramm. 1051 00:51:54,120 --> 00:51:58,380 Oder hier ist das Diagramm, stellen einige HTML, also auf jeden Fall, dass die Praxis. 1052 00:51:58,380 --> 00:52:01,500 Und dann ist man garantiert Frage, die Sie richtig machen können. 1053 00:52:01,500 --> 00:52:02,000 Cool. 1054 00:52:02,000 --> 00:52:04,510 Also lassen Sie uns über JavaScript sprechen und wie es ist ein bisschen 1055 00:52:04,510 --> 00:52:09,130 verschieden von Sprachen wie PHP und C, die beiden Sprachen, die wir vorher gesehen haben. 1056 00:52:09,130 --> 00:52:10,780 So Nummer eins, es ist schwach typisierte. 1057 00:52:10,780 --> 00:52:14,630 Das ist, wie PHP, aber im Gegensatz zu C. 1058 00:52:14,630 --> 00:52:15,890 >> Es ist eine interpretierte Sprache. 1059 00:52:15,890 --> 00:52:19,870 Auch das ist wie PHP im Gegensatz zu C. Und das 1060 00:52:19,870 --> 00:52:24,630 wird, damit wir es use-- funktioniert sehr gut mit Web-Seiten. 1061 00:52:24,630 --> 00:52:28,350 Das wird es uns ermöglichen, zu manipulieren Inhalt und wie es aussieht, 1062 00:52:28,350 --> 00:52:30,300 und was es tut. 1063 00:52:30,300 --> 00:52:32,330 >> Wir werden ein wenig von Ajax zu sehen. 1064 00:52:32,330 --> 00:52:36,140 Es ermöglicht uns, zu kommunizieren asynchron mit unterschiedlichen Servern 1065 00:52:36,140 --> 00:52:37,950 und erhalten Informationen. 1066 00:52:37,950 --> 00:52:42,820 Und das ist die Sache, die wirklich trennt JavaScript aus PHP und C 1067 00:52:42,820 --> 00:52:45,590 ist, dass er Client-Seite. 1068 00:52:45,590 --> 00:52:49,860 Beide PHP und C in der Regel Server-Side. 1069 00:52:49,860 --> 00:52:51,960 >> In den meisten Fällen und fast vollständig, was 1070 00:52:51,960 --> 00:52:53,900 die wir gesehen haben, zumindest in diese Klasse, JavaScript 1071 00:52:53,900 --> 00:52:57,040 wirkt auf Client-Seite, was bedeutet, dass der Browser tatsächlich 1072 00:52:57,040 --> 00:52:58,597 verantwortlich für sie auszuführen. 1073 00:52:58,597 --> 00:53:01,180 Und das bedeutet, dass wir nicht benötigen, um mit dem Server zu interagieren. 1074 00:53:01,180 --> 00:53:04,380 So ist es bedeutet, es kann viel schneller sein, denn es ist eigentlich nur, es ist Chrome, 1075 00:53:04,380 --> 00:53:10,420 es ist Safari, Firefox, es ist, was auch immer Sie tatsächlich nutzen laufen sie JavaScript. 1076 00:53:10,420 --> 00:53:12,290 >> ZIELGRUPPE: Was bedeutet asynchrone das? 1077 00:53:12,290 --> 00:53:13,620 >> HANNAH BLUMBERG: Ach, was ist asynchron das? 1078 00:53:13,620 --> 00:53:14,250 Gute Frage. 1079 00:53:14,250 --> 00:53:17,890 Asynchron means-- gut, der Inhalt, in dem 1080 00:53:17,890 --> 00:53:22,140 Wir verwenden es, OK, wir erstellen eine Web-Seite 1081 00:53:22,140 --> 00:53:23,860 und müssen wir ein paar Informationen zu erhalten. 1082 00:53:23,860 --> 00:53:28,250 So mit dem Beispiel des Mashup, einige Informationen, die wir vielleicht 1083 00:53:28,250 --> 00:53:30,580 ist Artikeltitel. 1084 00:53:30,580 --> 00:53:33,330 Nun, eine Möglichkeit could-- wir ist, es zu tun, synchron 1085 00:53:33,330 --> 00:53:37,940 und das bedeutet, ließ uns zu stoppen, gehen Sie den Artikel, 1086 00:53:37,940 --> 00:53:41,275 erhalten Sie den Artikel zurück, und dann zu machen, aber das wäre wirklich langsam. 1087 00:53:41,275 --> 00:53:44,150 Das wäre eine schlechte Benutzererfahrung sein weil Sie gerade sitzen 1088 00:53:44,150 --> 00:53:46,630 Es warten auf etwas zu reagieren. 1089 00:53:46,630 --> 00:53:50,020 >> Asynchron bedeutet, dass wir weiter gehen über unser Unternehmen, 1090 00:53:50,020 --> 00:53:52,529 Rendern der Seite, und wir abzuschicken eine Anfrage 1091 00:53:52,529 --> 00:53:54,570 Das ist nett, zu gehen, geschieht im Hintergrund. 1092 00:53:54,570 --> 00:53:57,610 Ich denke, dass wir das Beispiel in verwenden Vortrag des Aufrufs Rob und sprach: 1093 00:53:57,610 --> 00:53:59,980 hey, können Sie dies nachschlagen für mich und zurück zu mir, 1094 00:53:59,980 --> 00:54:02,870 im Gegensatz zu nur mir wartet am Telefon. 1095 00:54:02,870 --> 00:54:07,020 So asynchron bedeutet es passiert im Hintergrund von uns entfernt 1096 00:54:07,020 --> 00:54:08,676 parallel. 1097 00:54:08,676 --> 00:54:10,400 >> Gute Frage. 1098 00:54:10,400 --> 00:54:11,830 Noch etwas? 1099 00:54:11,830 --> 00:54:12,330 Groß. 1100 00:54:12,330 --> 00:54:15,020 Wir werden eine Menge mehr zu springen asynchrone Anforderungen mit Ajax. 1101 00:54:15,020 --> 00:54:18,287 >> ZIELGRUPPE: Funktioniert JavaScript-- woher kommt mit Model-View-Controller fallen? 1102 00:54:18,287 --> 00:54:19,620 HANNAH BLUMBERG: Gute Frage. 1103 00:54:19,620 --> 00:54:23,320 Woher kommt JavaScript Herbst mit Model-View-Controller? 1104 00:54:23,320 --> 00:54:23,930 Hm. 1105 00:54:23,930 --> 00:54:28,350 Ich denke, es kann fall-- so dass wir in der Regel nicht 1106 00:54:28,350 --> 00:54:31,340 gerne, um es in die squish Paradigma, aber ich denke, ich würde sagen, 1107 00:54:31,340 --> 00:54:34,280 OK, so dass Sie JavaScript eigentlich los ist, damit 1108 00:54:34,280 --> 00:54:37,587 uns um Daten zu sammeln, interpretieren Daten tatsächlich tun 1109 00:54:37,587 --> 00:54:38,920 sinnvolle Dinge mit den Daten. 1110 00:54:38,920 --> 00:54:41,100 Auf diese Weise ist es sehr Steuerungs-like. 1111 00:54:41,100 --> 00:54:43,900 >> Aber es ist auch gehen, um uns zu erlauben, Anzeigen Dinge und Druck Dinge. 1112 00:54:43,900 --> 00:54:47,021 Auf diese Weise ist es sehr view-like. 1113 00:54:47,021 --> 00:54:47,520 Ja. 1114 00:54:47,520 --> 00:54:51,710 Also ist es ein bisschen wie in PHP wo es Art beides sein. 1115 00:54:51,710 --> 00:54:53,330 Gute Frage. 1116 00:54:53,330 --> 00:54:55,209 Noch etwas? 1117 00:54:55,209 --> 00:54:56,000 Also gut, genial. 1118 00:54:56,000 --> 00:54:57,120 Rechts entlang zu bewegen. 1119 00:54:57,120 --> 00:54:59,110 >> Also mal sehen, ein Beispiel wie wir verwenden können, 1120 00:54:59,110 --> 00:55:02,250 JavaScript in einem unserer Web-Programme. 1121 00:55:02,250 --> 00:55:05,680 Also werde ich diese betrachten index.html mit einem Bündel von HTML. 1122 00:55:05,680 --> 00:55:08,800 Und das, was ich möchte, dass Sie konzentrieren sich auf ist dieses Skript-Tag. 1123 00:55:08,800 --> 00:55:13,280 Und das sagt, OK, ich möchte einige laufen JavaScript und hier ist, wo sie lebt. 1124 00:55:13,280 --> 00:55:15,400 Er lebt in hello.js. 1125 00:55:15,400 --> 00:55:21,120 >> Und sehr viel wie CSS, konnten wir setzen JavaScript im HTML. 1126 00:55:21,120 --> 00:55:24,000 Warum könnten wir wollen es trennen? 1127 00:55:24,000 --> 00:55:24,500 Ja. 1128 00:55:24,500 --> 00:55:25,486 >> ZIELGRUPPE: Einfacher zu umschreiben? 1129 00:55:25,486 --> 00:55:26,402 >> HANNAH BLUMBERG: Ja. 1130 00:55:26,402 --> 00:55:28,450 Es ist einfacher zu bedienen über verschiedene Web-Seiten. 1131 00:55:28,450 --> 00:55:29,980 Es hält die Dinge sauberer. 1132 00:55:29,980 --> 00:55:32,090 Es ist nur gute Praxis. 1133 00:55:32,090 --> 00:55:32,590 Fantastisch. 1134 00:55:32,590 --> 00:55:33,930 Gute Antwort. 1135 00:55:33,930 --> 00:55:36,690 So gut, so das wird unsere index.html sein. 1136 00:55:36,690 --> 00:55:39,430 Und dann hier unten ist unsere winzig kleine JavaScript-Datei. 1137 00:55:39,430 --> 00:55:42,410 >> Und alles was man sagt, ist alert Hallo, Welt. 1138 00:55:42,410 --> 00:55:46,040 Also, was passiert ist, wenn Diese Seite renders-- 1139 00:55:46,040 --> 00:55:49,680 Wenn Sie also zu, was eine Website zu gehen Dies ist-- alles, was passieren wird 1140 00:55:49,680 --> 00:55:53,330 wird, es wird sagen: OK, ich bin werde diesen JavaScript-Code auszuführen. 1141 00:55:53,330 --> 00:55:56,370 Und das JavaScript-Code sagt nur alert Hallo, Welt. 1142 00:55:56,370 --> 00:55:59,090 Also werde ich, dieses zu erhalten freundliches kleines Pop-up. 1143 00:55:59,090 --> 00:56:00,360 >> Cool? 1144 00:56:00,360 --> 00:56:04,746 Das ist eine Art, wie unser allererstes JavaScript-Programm, unsere Hallo, Welt. 1145 00:56:04,746 --> 00:56:07,690 1146 00:56:07,690 --> 00:56:12,190 Lassen Sie uns ein wenig mehr über das, was die Syntax JavaScript aussieht. 1147 00:56:12,190 --> 00:56:16,330 Und gesagt, lassen Sie uns vergleichen Sie es mit C und PHP, die wir bisher gesehen haben. 1148 00:56:16,330 --> 00:56:20,610 >> In JavaScript, wir gehen zu müssen, var, den Namen der Variablen, und 1149 00:56:20,610 --> 00:56:21,690 den tatsächlichen Wert. 1150 00:56:21,690 --> 00:56:26,170 Und wir haben einen Typ angeben, nur wie in PHP, aber sehr anders als in C. 1151 00:56:26,170 --> 00:56:28,850 So zum Beispiel, wenn man wollte, um den Wert 50 zu speichern, 1152 00:56:28,850 --> 00:56:32,490 in C, würden wir zu sagen haben, hey, C, ich möchte eine ganze Zahl, 1153 00:56:32,490 --> 00:56:35,076 Ich werde es nennen i, und sein Wert ist 50. 1154 00:56:35,076 --> 00:56:36,450 In PHP ist es ein wenig einfacher. 1155 00:56:36,450 --> 00:56:41,880 Wir sagen, hey, ich will eine variable rief ich und sein Wert ist 50. 1156 00:56:41,880 --> 00:56:45,890 Sehr ähnlich, in JavaScript, die wir sagen, hey, ich will eine Variable namens i, 1157 00:56:45,890 --> 00:56:47,080 sein Wert ist 50. 1158 00:56:47,080 --> 00:56:52,140 Jede nachfolgende Zeit, die ich benutze i, ich brauche nicht zu var schreiben. 1159 00:56:52,140 --> 00:56:53,810 Es ist nur, ich von diesem Punkt an. 1160 00:56:53,810 --> 00:56:58,660 In der gleichen Weise, in C, wobei wenn wir sagen, int i, wir benutzen Sie einfach i. 1161 00:56:58,660 --> 00:57:00,340 Cool? 1162 00:57:00,340 --> 00:57:01,800 Gut. 1163 00:57:01,800 --> 00:57:03,710 >> Bewegen Sie sich auf Loops, Zum Glück sind diese fast 1164 00:57:03,710 --> 00:57:06,720 schauen exactly-- Ich denke, sie sind genau das gleiche wie das, was 1165 00:57:06,720 --> 00:57:09,799 Schleifen gehen, um wie in aussehen so etwas wie C, wo Ihre for-Schleife 1166 00:57:09,799 --> 00:57:11,840 wird zu drei haben parts-- eine Initialisierung, 1167 00:57:11,840 --> 00:57:13,640 ein Zustand, und eine Aktualisierung. 1168 00:57:13,640 --> 00:57:15,340 Eine while-Schleife, sieht es genau das gleiche. 1169 00:57:15,340 --> 00:57:16,390 Wir geben es nur eine Bedingung. 1170 00:57:16,390 --> 00:57:18,264 >> Und ein Do While-Schleife, wieder genau das gleiche. 1171 00:57:18,264 --> 00:57:20,190 Wir geben es eine Bedingung. 1172 00:57:20,190 --> 00:57:24,510 Sagen wir, ich wollte laufen over-- Ich wollte etwas tun, das Fünffache. 1173 00:57:24,510 --> 00:57:27,840 In C, könnten wir schreiben für init i gleich 0 ist. 1174 00:57:27,840 --> 00:57:30,480 i kleiner als 5 ist, ++ i. 1175 00:57:30,480 --> 00:57:34,240 Der einzige Unterschied, in JavaScript, anstatt zu sagen, int i gleich 0 ist, 1176 00:57:34,240 --> 00:57:36,820 wir sagen var i gleich 0 ist. 1177 00:57:36,820 --> 00:57:38,370 Schön. 1178 00:57:38,370 --> 00:57:41,320 Das ist der einzige Unterschied. 1179 00:57:41,320 --> 00:57:43,200 Sie haben Fragen zu einem der das? 1180 00:57:43,200 --> 00:57:44,160 Ja. 1181 00:57:44,160 --> 00:57:48,480 >> ZIELGRUPPE: Also in PHP, ist es das gleiche Sache, mit der Ausnahme, aber wie eine Variable? 1182 00:57:48,480 --> 00:57:49,564 Oder war das ein var Beispiel? 1183 00:57:49,564 --> 00:57:50,480 HANNAH BLUMBERG: Ja. 1184 00:57:50,480 --> 00:57:52,310 Also in PHP, es geht um ein Dollarzeichen sein. 1185 00:57:52,310 --> 00:57:59,450 So ist es bis $ i gleich gehen 0, $ i kleiner als 5, $ i ++. 1186 00:57:59,450 --> 00:58:02,490 Gute Frage. 1187 00:58:02,490 --> 00:58:04,570 >> Jetzt lassen Sie uns darüber reden Funktionsdeklarationen. 1188 00:58:04,570 --> 00:58:07,010 In C, wenn wir erklärten ein Funktion, gaben wir ihm einen Namen 1189 00:58:07,010 --> 00:58:08,490 und wir gaben es einige Parameter. 1190 00:58:08,490 --> 00:58:10,670 Und zu Beginn schrieben wir den Typ. 1191 00:58:10,670 --> 00:58:12,440 In JavaScript, alles, was wir tun müssen, ist zu schreiben 1192 00:58:12,440 --> 00:58:15,080 das Schlüsselwort Funktion, sagt, hey, JavaScript, 1193 00:58:15,080 --> 00:58:16,570 Ich freue mich über eine Funktion zu definieren. 1194 00:58:16,570 --> 00:58:18,520 >> In diesem Fall hat sie Namen Summe. 1195 00:58:18,520 --> 00:58:20,820 Und es nimmt zwei Argumente x und y. 1196 00:58:20,820 --> 00:58:23,280 Beachten Sie, dass wir kümmern uns nicht über die Arten von x und y. 1197 00:58:23,280 --> 00:58:26,280 Und genau wie C, haben wir Dieses Schlüsselwort Rückkehr 1198 00:58:26,280 --> 00:58:29,140 also können wir etwas tun, wie Rück x und y. 1199 00:58:29,140 --> 00:58:32,540 >> Und jetzt, wenn wir diese erste geschrieben habe Funktion, können wir Summe überall verwenden. 1200 00:58:32,540 --> 00:58:34,740 Und das ist völlig in Ordnung. 1201 00:58:34,740 --> 00:58:37,530 Eine wirklich coole Sache über JavaScript, die sehr ist im Gegensatz zu C 1202 00:58:37,530 --> 00:58:40,770 ist, dass Funktionen wie Werte behandelt werden. 1203 00:58:40,770 --> 00:58:43,895 So können wir so etwas wie hier zu tun wo ich glaube, ich decken diese up-- 1204 00:58:43,895 --> 00:58:46,400 Ich überdachte die var sum part-- und wir gerade gesagt, 1205 00:58:46,400 --> 00:58:49,850 Funktion xy gleich x plus y Rückkehr. 1206 00:58:49,850 --> 00:58:52,140 >> Das ist, was heißen würde, eine anonyme Funktion. 1207 00:58:52,140 --> 00:58:53,920 Es ist eine Funktion ohne Namen. 1208 00:58:53,920 --> 00:58:56,290 Während dies sagt Funktion Summe, blah, blah, blah, 1209 00:58:56,290 --> 00:58:59,340 dies würde einfach sagen Funktion. 1210 00:58:59,340 --> 00:59:02,020 Aber jetzt, obwohl ich Diese anonyme Funktion, 1211 00:59:02,020 --> 00:59:03,630 diese Funktion ist eigentlich nur ein Wert. 1212 00:59:03,630 --> 00:59:05,160 Wir können es wie ein Wert zu behandeln. 1213 00:59:05,160 --> 00:59:10,180 >> So können wir in einer Variablen die gleiche sparen wie wir 50 in einer Variablen speichern könnte. 1214 00:59:10,180 --> 00:59:13,870 So können wir sagen, OK, ich möchte ein variabel, es heißt Summe, 1215 00:59:13,870 --> 00:59:16,011 und es ist diese Funktion. 1216 00:59:16,011 --> 00:59:18,760 Also diese beiden Dinge sind wirklich gehen, um genau dasselbe zu tun, 1217 00:59:18,760 --> 00:59:21,576 aber die Syntax ist ein wenig anders und eine Art Spaß Note. 1218 00:59:21,576 --> 00:59:22,076 Ja. 1219 00:59:22,076 --> 00:59:25,548 >> Publikum: So anruft könnte ein Funktion, die mit den Worten anonym war, 1220 00:59:25,548 --> 00:59:28,244 Summe Klammern 2, 5? 1221 00:59:28,244 --> 00:59:29,160 HANNAH BLUMBERG: Ja. 1222 00:59:29,160 --> 00:59:32,280 Sie können diese anonymen Anruf Funktion in der gleichen Weise. 1223 00:59:32,280 --> 00:59:33,350 Sie würden Summe zu tun (2, 5) ;. 1224 00:59:33,350 --> 00:59:36,180 1225 00:59:36,180 --> 00:59:38,200 Das wäre völlig in Ordnung sein. 1226 00:59:38,200 --> 00:59:41,575 >> Wenn ich es nicht tun var Summe gleich Funktion, wenn ich einfach gelöscht 1227 00:59:41,575 --> 00:59:45,480 this-- Ich weiß, dass es auf der Hand, aber so tun, als ich dann gelöscht this-- 1228 00:59:45,480 --> 00:59:46,964 diese Funktion Art von einfach weg. 1229 00:59:46,964 --> 00:59:49,630 Man kann nie wieder verwenden, da Sie haben keinen Namen dafür. 1230 00:59:49,630 --> 00:59:53,497 Es ist schwer, etwas zu finden Sie wissen nicht, was zu nennen. 1231 00:59:53,497 --> 00:59:54,080 Gute Frage. 1232 00:59:54,080 --> 00:59:54,580 Ja. 1233 00:59:54,580 --> 00:59:59,580 >> ZIELGRUPPE: Können Sie Summe in Referenz anderen Orten mit dem Wert von x plus y? 1234 00:59:59,580 --> 01:00:01,940 >> HANNAH BLUMBERG: Können Sie Referenzbetrag in anderen Orten 1235 01:00:01,940 --> 01:00:03,360 mit dem Wert x plus y? 1236 01:00:03,360 --> 01:00:05,130 Ich bin mir nicht ganz sicher, was du meinst. 1237 01:00:05,130 --> 01:00:10,582 >> Publikum: So Ihre letzten semi-anonym Funktion ist Summe, das ist 1238 01:00:10,582 --> 01:00:14,452 anonyme Funktion, so Summe Jetzt eine Variable, die Sie can-- 1239 01:00:14,452 --> 01:00:15,410 HANNAH BLUMBERG: Richtig. 1240 01:00:15,410 --> 01:00:18,980 So Summe ist die Variable, aber es ist actually-- 1241 01:00:18,980 --> 01:00:23,770 so Summe ist eine Variable, deren Wert ist die Funktion. 1242 01:00:23,770 --> 01:00:27,030 So ist es eine Funktion, die Art ist eine seltsame Sache, um Ihren Kopf wickeln um 1243 01:00:27,030 --> 01:00:29,880 seit wir mit gespielt C und man kann nicht in C tun, 1244 01:00:29,880 --> 01:00:32,679 Aber jetzt können wir nennen die Summe Ebenso konnten wir hier Summe nennen. 1245 01:00:32,679 --> 01:00:33,220 ZIELGRUPPE: OK. 1246 01:00:33,220 --> 01:00:33,970 HANNAH BLUMBERG: Ja. 1247 01:00:33,970 --> 01:00:34,553 Gute Frage. 1248 01:00:34,553 --> 01:00:35,438 Ja. 1249 01:00:35,438 --> 01:00:39,862 >> Publikum: So nutzen wir nicht die Prototypen in PHP oder JavaScript? 1250 01:00:39,862 --> 01:00:42,070 HANNAH BLUMBERG: Nein, wir müssen nicht Prototypen zu verwenden, 1251 01:00:42,070 --> 01:00:43,880 insbesondere in JavaScript. 1252 01:00:43,880 --> 01:00:49,380 So eine schlechte Praxis, was ich bin gehen zu sagen, dass Sie nicht tun sollten 1253 01:00:49,380 --> 01:00:52,620 ist, dass Sie nicht haben, um var i = 50 schreiben. 1254 01:00:52,620 --> 01:00:54,840 Sie könnten einfach angefangen zu i = 50. 1255 01:00:54,840 --> 01:00:57,490 Und würde nur machen i eine globale Variable. 1256 01:00:57,490 --> 01:01:00,550 >> Es ist sehr schlechte Praxis, nie sagen ausdrücklich var i, 1257 01:01:00,550 --> 01:01:01,800 aber es ist etwas, was Sie tun können. 1258 01:01:01,800 --> 01:01:03,591 Der Dolmetscher ist nicht werde dich schreien. 1259 01:01:03,591 --> 01:01:05,920 JavaScript ist ziemlich ähnlich, Du kannst machen was du willst. 1260 01:01:05,920 --> 01:01:09,301 1261 01:01:09,301 --> 01:01:09,800 Oh, das tut mir leid. 1262 01:01:09,800 --> 01:01:10,300 Es gibt zwei. 1263 01:01:10,300 --> 01:01:12,150 In der orangefarbenen Hose. 1264 01:01:12,150 --> 01:01:13,190 Gehen Sie geradeaus. 1265 01:01:13,190 --> 01:01:14,390 >> ZIELGRUPPE: Nein, gehen Sie zuerst. 1266 01:01:14,390 --> 01:01:16,765 >> ZIELGRUPPE: Nein, ich war nur sagen Ich habe nicht meine Hand. 1267 01:01:16,765 --> 01:01:20,248 1268 01:01:20,248 --> 01:01:20,748 OK. 1269 01:01:20,748 --> 01:01:26,604 Also, wenn Sie anrufen waren , dass erste Mal, nun zusammenfassen, 1270 01:01:26,604 --> 01:01:29,864 Wir nennen es die gleiche Art und Weise, x, y, wie jedes einzelne Mal? 1271 01:01:29,864 --> 01:01:30,780 HANNAH BLUMBERG: Ja. 1272 01:01:30,780 --> 01:01:32,572 So dass diese beiden wesentlichen das gleiche tun. 1273 01:01:32,572 --> 01:01:35,113 Publikum: Und was ist der Vorteil, der mit der einen oder anderen? 1274 01:01:35,113 --> 01:01:37,500 HANNAH BLUMBERG: Kein Vorteil der Verwendung der einen oder der anderen Seite. 1275 01:01:37,500 --> 01:01:40,080 Ich wollte dir nur zeigen zwei verschiedene Teile der Syntax. 1276 01:01:40,080 --> 01:01:42,770 Eine Menge Zeit, wo anonyme Funktionen zu tun haben einen Zweck 1277 01:01:42,770 --> 01:01:48,220 ist, wenn das Argument in eine andere Funktion sollte eine Funktion sein. 1278 01:01:48,220 --> 01:01:50,600 Und wir werden sehen, dass in nur eine Sekunde mit Ajax. 1279 01:01:50,600 --> 01:01:53,577 >> Also, wenn das hat keinen Sinn, speichern sie in der Rückseite des Kopfes. 1280 01:01:53,577 --> 01:01:55,660 Das ist, wo ein anonymer Funktion kann nützlich sein, 1281 01:01:55,660 --> 01:01:58,284 denn es ist nicht wirklich wert ihm einen Namen, da wir gerade sind 1282 01:01:58,284 --> 01:01:59,443 gehen, um es wieder zu verwenden. 1283 01:01:59,443 --> 01:02:00,370 Ja. 1284 01:02:00,370 --> 01:02:03,635 >> Publikum: Wenn x und y Wechsel später an wird Fassend ändern, wie gut? 1285 01:02:03,635 --> 01:02:06,510 HANNAH BLUMBERG: Wenn x und y Wechsel Später werden Fassend ändern, wie gut? 1286 01:02:06,510 --> 01:02:08,840 So ist dies tatsächlich I denken, etwas, das ist, 1287 01:02:08,840 --> 01:02:12,260 wieder, es fühlt sich einfach sehr unterschiedlich von C. Dies ist kein Wert. 1288 01:02:12,260 --> 01:02:13,620 Es ist nicht 5. 1289 01:02:13,620 --> 01:02:15,550 Es ist nur die Funktion selbst. 1290 01:02:15,550 --> 01:02:19,110 So, sobald Sie es Parameter zu geben, dann werden Sie tatsächlich einen Wert berechnen. 1291 01:02:19,110 --> 01:02:21,193 >> MARIA Zlatkova: Und dann können Sie die Funktion aufrufen, 1292 01:02:21,193 --> 01:02:23,272 und es verwenden, um einen Wert zu erhalten. 1293 01:02:23,272 --> 01:02:24,230 HANNAH BLUMBERG: Richtig. 1294 01:02:24,230 --> 01:02:25,250 Genau. 1295 01:02:25,250 --> 01:02:25,863 Ja. 1296 01:02:25,863 --> 01:02:27,946 >> ZIELGRUPPE: Also, wenn Sie nur speichern sie in der Variablen, 1297 01:02:27,946 --> 01:02:31,430 wie var x gleich Summe zweier values-- 1298 01:02:31,430 --> 01:02:32,420 >> HANNAH BLUMBERG: Ja. 1299 01:02:32,420 --> 01:02:35,320 So könnten Sie einfach var sum tun ist gleich Summe der beiden Werte. 1300 01:02:35,320 --> 01:02:37,670 Ja. 1301 01:02:37,670 --> 01:02:38,680 Noch mehr Fragen? 1302 01:02:38,680 --> 01:02:39,642 Ja. 1303 01:02:39,642 --> 01:02:42,047 >> ZIELGRUPPE: Aber würde, dass Verwechseln Summe und die Summe? 1304 01:02:42,047 --> 01:02:45,062 Wie, wenn Sie Ihren variablen Summe nennen, würden Sie die Funktion Summe anruft? 1305 01:02:45,062 --> 01:02:45,895 HANNAH BLUMBERG: Mm. 1306 01:02:45,895 --> 01:02:46,395 Mm. 1307 01:02:46,395 --> 01:02:51,253 Wenn Sie etwas haben wie, Summe gleich Summe 2, 5? 1308 01:02:51,253 --> 01:02:53,170 >> ZIELGRUPPE: Ja. 1309 01:02:53,170 --> 01:02:56,465 >> HANNAH BLUMBERG: Ich glaube, dass würde den Wert der Summe überschreibt. 1310 01:02:56,465 --> 01:02:59,290 Also ein weiterer interessanter Sache über JavaScript 1311 01:02:59,290 --> 01:03:02,950 ist, dass eine einzelne Variable annehmen kann auf eine Reihe von verschiedenen Arten. 1312 01:03:02,950 --> 01:03:03,790 Schlechte Praxis. 1313 01:03:03,790 --> 01:03:06,280 Sie sollten sich nicht etwas zu tun wie das, was Sie gerade gesagt haben. 1314 01:03:06,280 --> 01:03:10,240 >> Aber in C, wenn ich gesetzt gleich einer ganzen Zahl, 1315 01:03:10,240 --> 01:03:13,570 wir wissen, dass es nie gehen, um eine Zeichenfolge zu werden. 1316 01:03:13,570 --> 01:03:15,670 Dies ist nicht in JavaScript der Fall. 1317 01:03:15,670 --> 01:03:17,770 Ja, gute Frage. 1318 01:03:17,770 --> 01:03:20,151 Noch etwas? 1319 01:03:20,151 --> 01:03:20,650 Gut. 1320 01:03:20,650 --> 01:03:21,850 Tun alles zur rechten Zeit. 1321 01:03:21,850 --> 01:03:23,050 Halten werde. 1322 01:03:23,050 --> 01:03:25,200 Gut. 1323 01:03:25,200 --> 01:03:27,780 >> Wenn wir auf ein Array in JavaScript, hier ist 1324 01:03:27,780 --> 01:03:30,250 ein kurzes Beispiel aus einem Array von Zeichenfolgen. 1325 01:03:30,250 --> 01:03:31,967 Und Arrays dynamisch wachsen. 1326 01:03:31,967 --> 01:03:33,675 Sie haben nicht ein feste Größe auf die gleiche Weise 1327 01:03:33,675 --> 01:03:37,990 dass sie in C tun Wir können auf die Elemente nur mit den eckigen Klammern. 1328 01:03:37,990 --> 01:03:41,720 >> Das sieht viel wie PHP und eine Menge wie C, wo wir uns in diesem Fall sagen, 1329 01:03:41,720 --> 01:03:48,360 wenn ich wollte das Wort JavaScript, würde ich Sie arr eckigen Klammern mit einer 0, 1, 2. 1330 01:03:48,360 --> 01:03:51,450 1331 01:03:51,450 --> 01:03:55,390 Und dann, wenn Sie in C erinnere mich, als wir gesucht, um die Länge eines Arrays zu erhalten, 1332 01:03:55,390 --> 01:03:56,820 es war wirklich ärgerlich. 1333 01:03:56,820 --> 01:03:58,460 Aber in JavaScript, super einfach. 1334 01:03:58,460 --> 01:03:59,910 Alles was wir tun, .length. 1335 01:03:59,910 --> 01:04:01,120 Gibt es die Längen. 1336 01:04:01,120 --> 01:04:01,892 Das ist es. 1337 01:04:01,892 --> 01:04:03,140 >> ZIELGRUPPE: Das ist einfach. 1338 01:04:03,140 --> 01:04:05,306 >> HANNAH BLUMBERG: Ja, das macht Ihr Leben viel einfacher. 1339 01:04:05,306 --> 01:04:08,950 1340 01:04:08,950 --> 01:04:11,560 OK, object-- nicht da. 1341 01:04:11,560 --> 01:04:15,480 Objekte in JavaScript Gefühl eine Menge, wie Strukturen in C 1342 01:04:15,480 --> 01:04:18,280 und assoziative Arrays in PHP. 1343 01:04:18,280 --> 01:04:20,270 Also, was wir gesehen haben, ein viel ist JSON, die 1344 01:04:20,270 --> 01:04:23,150 steht für JavaScript Object Notation. 1345 01:04:23,150 --> 01:04:25,550 Und es ist im Grunde ein Weg der Strukturierung unserer Daten. 1346 01:04:25,550 --> 01:04:27,880 >> Also mal sehen, ein Beispiel, wahrscheinlich die einfachste. 1347 01:04:27,880 --> 01:04:32,540 Also hier ist ein Beispiel für ein Objekt dass speichert die Klasse, CS50. 1348 01:04:32,540 --> 01:04:37,790 Und wenn ich sage Klasse, ich meine natürlich, nicht like-- ja, den Kurs, CS50. 1349 01:04:37,790 --> 01:04:40,730 Und Sie, denn alles, was in dem Objekt 1350 01:04:40,730 --> 01:04:43,526 wird sich enthalten sein in geschweiften Klammern. 1351 01:04:43,526 --> 01:04:48,260 >> Und wir beginnen, Feldnamen assoziieren Tasten oder mit den verschiedenen Werten. 1352 01:04:48,260 --> 01:04:52,920 So können Sie beginnen zu sehen, wie diese Art von fühlt sich an wie ein assoziatives Array in PHP. 1353 01:04:52,920 --> 01:04:57,450 Also werden wir, um das Feld zu verknüpfen oder der Schlüssel Namen, natürlich mit der Zeichenfolge, 1354 01:04:57,450 --> 01:04:58,510 CS50. 1355 01:04:58,510 --> 01:04:59,940 >> Wir werden einen Lehrer zu haben. 1356 01:04:59,940 --> 01:05:00,940 Wir werden TFs haben. 1357 01:05:00,940 --> 01:05:05,240 Wir werden Anzahl der psets haben und wir werden aufgezeichnet haben. 1358 01:05:05,240 --> 01:05:10,720 Und eine coole Sache zu beachten ist, alle diese Dinge haben verschiedene Arten, 1359 01:05:10,720 --> 01:05:12,020 und das ist völlig in Ordnung. 1360 01:05:12,020 --> 01:05:15,330 >> Es ist in Ordnung für ein Objekt in der Tat, ist es wahrscheinlich für ein Objekt erwartet 1361 01:05:15,330 --> 01:05:19,620 um eine Kombination von Saiten und Zahlen und Boolesche Werte und Arrays 1362 01:05:19,620 --> 01:05:23,420 und was Sie sonst noch wollen in Ihrem Objekt haben. 1363 01:05:23,420 --> 01:05:28,570 Und beachten Sie, dass diese sein werden, die Namen oder die Tasten, und dann werden wir nur 1364 01:05:28,570 --> 01:05:30,300 stellen Sie es gleich mit einem kleinen Doppelpunkt. 1365 01:05:30,300 --> 01:05:32,015 >> Publikum: Was genau macht JSON das? 1366 01:05:32,015 --> 01:05:33,890 HANNAH BLUMBERG: Was genau bedeutet JSON das? 1367 01:05:33,890 --> 01:05:36,470 JSON steht gerade für JavaScript Object Notation. 1368 01:05:36,470 --> 01:05:38,430 Es ist nur ein Weg, der Formatierung. 1369 01:05:38,430 --> 01:05:40,040 Ja. 1370 01:05:40,040 --> 01:05:41,800 Es ist ein Weg der Formatierung unsere Daten. 1371 01:05:41,800 --> 01:05:43,620 >> In C ist es Strukturen. 1372 01:05:43,620 --> 01:05:45,800 In PHP ist es assoziative Arrays. 1373 01:05:45,800 --> 01:05:47,120 In JavaScript gibt es Objekte. 1374 01:05:47,120 --> 01:05:48,969 >> Publikum: So CS50 ist ein Objekt? 1375 01:05:48,969 --> 01:05:51,010 HANNAH BLUMBERG: CS50 ist das Objekt in diesem Fall. 1376 01:05:51,010 --> 01:05:54,830 1377 01:05:54,830 --> 01:05:57,880 Nun, wie wir tatsächlich Zugang diese Felder oder ändern Sie die Felder. 1378 01:05:57,880 --> 01:06:03,920 Angenommen, wir beschlossen, dass Sie wollte einen weniger pset in diesem Semester. 1379 01:06:03,920 --> 01:06:06,300 Statt neun, wir sind gerade dabei, acht haben. 1380 01:06:06,300 --> 01:06:08,240 Wie würden wir das ändern? 1381 01:06:08,240 --> 01:06:09,436 >> Oh, falsche Weg. 1382 01:06:09,436 --> 01:06:11,060 Es gibt zwei Möglichkeiten, dass wir das tun. 1383 01:06:11,060 --> 01:06:13,490 Nummer eins ist mit dem Punkt Notation und Nummer zwei 1384 01:06:13,490 --> 01:06:15,750 ist mit der eckigen Klammern. 1385 01:06:15,750 --> 01:06:19,720 So, zum Beispiel, wenn I wollte zu ändern oder Zugang 1386 01:06:19,720 --> 01:06:26,820 das Feld psets in unserer CS50-Objekt, was ich tun würde, ist CS50.psets, 1387 01:06:26,820 --> 01:06:30,770 so dass der Name des Objekts Punkt der Name des Feldes oder des Schlüssels. 1388 01:06:30,770 --> 01:06:37,120 >> Sehr ähnlich, es ist genau entspricht CS50 tun, und dann 1389 01:06:37,120 --> 01:06:42,050 in eckigen Klammern, psets. 1390 01:06:42,050 --> 01:06:42,837 Cool? 1391 01:06:42,837 --> 01:06:44,298 Ja. 1392 01:06:44,298 --> 01:06:47,707 >> Publikum: So ist JSON technisch JavaScript noch, 1393 01:06:47,707 --> 01:06:51,814 auch wenn in den psets wir trennen Sie es aus [unverständlich]? 1394 01:06:51,814 --> 01:06:52,730 HANNAH BLUMBERG: Sicher. 1395 01:06:52,730 --> 01:06:56,290 Die Frage ist also, sind JavaScript und JSON Äquivalent? 1396 01:06:56,290 --> 01:07:00,750 So JSON-Notation ist, im Grunde die Art und Weise, die wir schreiben, 1397 01:07:00,750 --> 01:07:02,700 ein Objekt von JavaScript. 1398 01:07:02,700 --> 01:07:05,190 So sind sie nicht genau das gleiche. 1399 01:07:05,190 --> 01:07:08,950 >> Ich würde sagen, JavaScript, gibt sind Objekte in JavaScript. 1400 01:07:08,950 --> 01:07:12,590 JSON nimmt diese Objekte und druckt sie und zeigt sie 1401 01:07:12,590 --> 01:07:15,160 oder speichert sie auf eine nette Art. 1402 01:07:15,160 --> 01:07:18,110 So JSON ist keine Programmiersprache Sprache die Art und Weise, dass Javascript. 1403 01:07:18,110 --> 01:07:20,900 Es ist nur die Notation für unsere Objekte in JavaScript. 1404 01:07:20,900 --> 01:07:21,400 Ja. 1405 01:07:21,400 --> 01:07:24,144 >> Publikum: Was genau [Unverständlich] abzuschließen? 1406 01:07:24,144 --> 01:07:25,060 HANNAH BLUMBERG: Sicher. 1407 01:07:25,060 --> 01:07:27,727 So dies tatsächlich tut nichts. 1408 01:07:27,727 --> 01:07:28,935 Dies ist nur ein Weg, um zuzugreifen. 1409 01:07:28,935 --> 01:07:31,393 Also lassen Sie uns sagen, wir ändern wollten die Zahl der Problemstellungen 1410 01:07:31,393 --> 01:07:32,450 von neun auf acht. 1411 01:07:32,450 --> 01:07:34,383 Was wir tun, ist etwas zu tun wie CS50.psets = 8 ;. 1412 01:07:34,383 --> 01:07:38,500 1413 01:07:38,500 --> 01:07:39,400 >> Ja, gute Frage. 1414 01:07:39,400 --> 01:07:40,733 Dies ist nur, um Sie Syntax zu zeigen. 1415 01:07:40,733 --> 01:07:43,620 Nicht wirklich etwas Sinnvolles zu tun. 1416 01:07:43,620 --> 01:07:46,085 Irgendwelche Fragen? 1417 01:07:46,085 --> 01:07:48,210 Rechts entlang zu bewegen. 1418 01:07:48,210 --> 01:07:51,960 >> Also lassen Sie uns ein kurzes Beispiel, wie JavaScript funktioniert, weil ich Ihnen sagte, es 1419 01:07:51,960 --> 01:07:55,170 tut all diese coolen Sachen und ermöglicht es uns, Web-Seiten zu ändern. 1420 01:07:55,170 --> 01:07:56,970 Lassen Sie uns in Aktion tatsächlich sehen. 1421 01:07:56,970 --> 01:07:59,850 So nehmen beispielsweise diese HTML-Datei. 1422 01:07:59,850 --> 01:08:04,350 >> Und das, was ich möchte, dass Sie konzentrieren sich auf ist dieser besondere Tag, der ein Knopf ist, 1423 01:08:04,350 --> 01:08:06,182 mit id search_button. 1424 01:08:06,182 --> 01:08:08,670 Es ist nur auf der Seite. 1425 01:08:08,670 --> 01:08:10,690 So, jetzt wollen wir mal sehen, was können wir tatsächlich tun. 1426 01:08:10,690 --> 01:08:12,560 >> Nun, angenommen, wenn Sie klicken Sie auf diese Schaltfläche, 1427 01:08:12,560 --> 01:08:16,010 wir eine alert-- machen wollen Sie geklickt haben, auf die Schaltfläche. 1428 01:08:16,010 --> 01:08:17,840 Mal sehen, wie wir das tun können. 1429 01:08:17,840 --> 01:08:23,869 So window.onload-- dies nicht etwas, dass Sie in der Klasse gesehen habe, also 1430 01:08:23,869 --> 01:08:26,180 nicht brauchen, um es für das Quiz zu kennen. 1431 01:08:26,180 --> 01:08:33,660 Aber dies im Grunde sagt, OK, Anruf diese Funktion, wenn das Fenster Lasten. 1432 01:08:33,660 --> 01:08:35,080 >> Also das ist nur eine Art Setup-Code. 1433 01:08:35,080 --> 01:08:36,390 Nicht so viel Sorgen machen. 1434 01:08:36,390 --> 01:08:39,170 Was ich möchte, dass Sie konzentrieren sich auf die in hier. 1435 01:08:39,170 --> 01:08:44,020 Wir sagen var search gleich document.getElementById search_button. 1436 01:08:44,020 --> 01:08:46,450 >> So wie Sie sich vorstellen können, Was das bedeutet ist, heißt es, 1437 01:08:46,450 --> 01:08:50,920 OK, gehen Sie finden das Element mit ID search_button. 1438 01:08:50,920 --> 01:08:52,790 Und jetzt haben wir, dass eigentliche Element, und ich bin 1439 01:08:52,790 --> 01:08:56,279 gehen, um es in einem Geschäft variable search. 1440 01:08:56,279 --> 01:09:00,651 Und jetzt können wir tatsächlich nutzen dieses Element und ändern Sie es, oder Zugriff auf ihre Werte, 1441 01:09:00,651 --> 01:09:01,359 Sachen wie diese. 1442 01:09:01,359 --> 01:09:04,649 Wir können tatsächlich zu starten greifen in die Web-Seite. 1443 01:09:04,649 --> 01:09:10,330 >> Also hier sagen, dass ich, OK, jetzt, wo ich daß Schaltfläche, wenn darauf geklickt wird, 1444 01:09:10,330 --> 01:09:12,859 nennen diese anonyme Funktion. 1445 01:09:12,859 --> 01:09:16,811 Also das ist, wo anonyme Funktionen nützlich werden. 1446 01:09:16,811 --> 01:09:18,060 Und was bedeutet die Funktion zu tun? 1447 01:09:18,060 --> 01:09:20,529 Nun, es ist nur nennt dies Alarm-Funktion, und es sagt, 1448 01:09:20,529 --> 01:09:22,910 Sie klickte auf die Schaltfläche Suchen. 1449 01:09:22,910 --> 01:09:29,670 >> Also, was passiert, wenn ich gehen, um überall dort, wo Diese HTML lebt und ich auf die Schaltfläche, 1450 01:09:29,670 --> 01:09:33,729 Ich werde ein wenig Phantasie Benachrichtigung erhalten die sagt, Sie auf die Schaltfläche geklickt wird. 1451 01:09:33,729 --> 01:09:40,710 Also die Dinge zu konzentrieren, hier-- document.getElementById 1452 01:09:40,710 --> 01:09:44,960 bekommt eine bestimmte HTML Element mit der gegebenen ID. 1453 01:09:44,960 --> 01:09:48,529 Und jetzt setzen wir können was passieren soll, wenn 1454 01:09:48,529 --> 01:09:50,702 dass bestimmtes Element angeklickt wird. 1455 01:09:50,702 --> 01:09:52,670 >> Publikum: Wir müssen alles in zu setzen? 1456 01:09:52,670 --> 01:09:53,162 >> HANNAH BLUMBERG: Es tut uns leid? 1457 01:09:53,162 --> 01:09:55,130 >> Publikum: Müssen wir körperlich codieren all das? 1458 01:09:55,130 --> 01:09:56,340 >> HANNAH BLUMBERG: Müssen wir körperlich codieren all das? 1459 01:09:56,340 --> 01:09:56,839 Ja. 1460 01:09:56,839 --> 01:09:58,120 Ist nicht diese Art von lästigen? 1461 01:09:58,120 --> 01:10:00,032 Dies ist ein viel Code. 1462 01:10:00,032 --> 01:10:01,574 >> Publikum: Sie könnten etwas zu importieren. 1463 01:10:01,574 --> 01:10:02,532 HANNAH BLUMBERG: Richtig. 1464 01:10:02,532 --> 01:10:03,610 Wir könnten etwas zu verwenden. 1465 01:10:03,610 --> 01:10:08,140 Und in particular-- Oh, es ist sagen mir, ich muss Bereich unterrichten. 1466 01:10:08,140 --> 01:10:11,061 Insbesondere lassen die Bibliothek jQuery, 1467 01:10:11,061 --> 01:10:13,060 denn das war wirklich lang und wirklich ärgerlich 1468 01:10:13,060 --> 01:10:16,860 und ich möchte in der Lage, es zu vereinfachen und machen es kürzer und einfacher zu schreiben. 1469 01:10:16,860 --> 01:10:19,810 >> So jQuery ist eine JavaScript-Bibliothek. 1470 01:10:19,810 --> 01:10:24,930 So JavaScript-Programmierung Sprache; jQuery ist eine Bibliothek. 1471 01:10:24,930 --> 01:10:27,190 Und es macht eine Menge Dinge einfacher. 1472 01:10:27,190 --> 01:10:33,230 Es macht Ändern und gehen über ein HTML-Dokument, viel einfacher. 1473 01:10:33,230 --> 01:10:35,030 >> Es macht Handling Veranstaltungen einfacher. 1474 01:10:35,030 --> 01:10:37,580 Es macht Animation einfacher und es macht Ajax einfacher. 1475 01:10:37,580 --> 01:10:40,140 Lassen Sie uns also in zwei von springen diese Dinge jetzt. 1476 01:10:40,140 --> 01:10:40,900 Entschuldigen Sie. 1477 01:10:40,900 --> 01:10:42,620 Bevor wir das tun, einige grundlegende Syntax. 1478 01:10:42,620 --> 01:10:46,870 >> Dies ist, was die meisten Anrufe die jQuery-Bibliothek aussehen. 1479 01:10:46,870 --> 01:10:50,520 Wir verwenden diese Dollar sign-- keine Verbindung Zeichen PHP, 1480 01:10:50,520 --> 01:10:56,030 nur inconvenient-- den Namen ein Wahl, Punkt, und dann eine Aktion. 1481 01:10:56,030 --> 01:10:58,860 Lassen Sie uns also etwas zu sehen konkrete Beispiele dafür. 1482 01:10:58,860 --> 01:11:02,980 >> Also das ist eigentlich die gleichen Code aus dem Ereignis Rutsche. 1483 01:11:02,980 --> 01:11:08,740 Also das lange, hässliche Ding wird dies viel schöner, kleiner Sache. 1484 01:11:08,740 --> 01:11:10,370 So wollen wir versuchen, diese zu brechen. 1485 01:11:10,370 --> 01:11:17,090 Dieses sagt, OK, jQuery-- diese Dollar- sign-- jQuery, finden Sie mich das Fenster. 1486 01:11:17,090 --> 01:11:18,480 Das ist also der Wahlschalter. 1487 01:11:18,480 --> 01:11:21,800 >> Wenn es lädt, rufen Sie diese Funktion. 1488 01:11:21,800 --> 01:11:23,880 Also das ist alles, was im Inneren. 1489 01:11:23,880 --> 01:11:24,380 OK. 1490 01:11:24,380 --> 01:11:25,740 So weit, ist es gut? 1491 01:11:25,740 --> 01:11:26,750 Gut. 1492 01:11:26,750 --> 01:11:32,970 >> Nun, jQuery, finden Sie mich das Sache mit ID search_button. 1493 01:11:32,970 --> 01:11:36,090 Und was es angeklickt wird, rufen Sie diese Funktion. 1494 01:11:36,090 --> 01:11:37,900 Und dann diese Funktion genau die gleiche. 1495 01:11:37,900 --> 01:11:41,052 Just do ein wenig wachsam, Sie klickte auf die Schaltfläche Suchen. 1496 01:11:41,052 --> 01:11:42,650 >> Also es ist wirklich schön. 1497 01:11:42,650 --> 01:11:46,260 Es ist wirklich kondensiert und vereinfacht unseren Code. 1498 01:11:46,260 --> 01:11:49,030 Wie habe ich wissen, dass es ist ID search_button 1499 01:11:49,030 --> 01:11:50,960 und nicht wie Klasse search_button? 1500 01:11:50,960 --> 01:11:52,024 >> ZIELGRUPPE: Hashtag? 1501 01:11:52,024 --> 01:11:52,940 HANNAH BLUMBERG: Ja. 1502 01:11:52,940 --> 01:11:56,450 Dieser Hash-Symbol, es ist nur wie CSS. 1503 01:11:56,450 --> 01:12:00,080 Also denken Sie daran, mit CSS, wenn wir wollte etwas von ID auszuwählen, 1504 01:12:00,080 --> 01:12:01,590 wir haben das Pfund-Zeichen. 1505 01:12:01,590 --> 01:12:05,400 Und wenn wir die Option wollte etwas nach Klasse, verwenden wir den Punkt. 1506 01:12:05,400 --> 01:12:06,870 Groß. 1507 01:12:06,870 --> 01:12:08,230 Sinn ergeben? 1508 01:12:08,230 --> 01:12:11,500 So jQuery ist anzunehmen, nur unser Leben einfacher machen. 1509 01:12:11,500 --> 01:12:12,000 Ja. 1510 01:12:12,000 --> 01:12:15,660 >> ZIELGRUPPE: Also ich bin ein wenig verwirrt, wie , wie die anonyme Funktion arbeitet. 1511 01:12:15,660 --> 01:12:19,027 Wollen Sie dieses anonymouse nennen Funktion, funktionieren? 1512 01:12:19,027 --> 01:12:20,594 Wie heißt es? 1513 01:12:20,594 --> 01:12:21,510 HANNAH BLUMBERG: Sicher. 1514 01:12:21,510 --> 01:12:25,812 So Funktion ist nur ein Schlüsselwort, sagt, ich bin zu einer Funktion zu definieren. 1515 01:12:25,812 --> 01:12:26,520 ZIELGRUPPE: Oh, OK. 1516 01:12:26,520 --> 01:12:27,353 HANNAH BLUMBERG: OK? 1517 01:12:27,353 --> 01:12:32,120 Und dann haben wir es passieren, wie ein Argument zu-- nehmen lassen 1518 01:12:32,120 --> 01:12:37,040 diese innere one-- auf die Klick-Funktion. 1519 01:12:37,040 --> 01:12:39,420 Also ja, so dass die Funktion, Diese anonyme Funktion, 1520 01:12:39,420 --> 01:12:40,910 wird eine tatsächliche Argument. 1521 01:12:40,910 --> 01:12:43,632 Also denken Sie daran in JavaScript, die wir können Funktionen als Werte zu behandeln. 1522 01:12:43,632 --> 01:12:44,340 ZIELGRUPPE: Oh, OK. 1523 01:12:44,340 --> 01:12:45,256 HANNAH BLUMBERG: Ja. 1524 01:12:45,256 --> 01:12:46,035 Ich mag, dass "Oh." 1525 01:12:46,035 --> 01:12:47,490 Nett. 1526 01:12:47,490 --> 01:12:49,915 Andere Fragen? 1527 01:12:49,915 --> 01:12:50,505 Zeit? 1528 01:12:50,505 --> 01:12:51,380 MARIA Zlatkova: Good. 1529 01:12:51,380 --> 01:12:52,760 Gut. 1530 01:12:52,760 --> 01:12:54,210 >> HANNAH BLUMBERG: Awesome. 1531 01:12:54,210 --> 01:12:55,720 Einige schnelle nützliche jQuery. 1532 01:12:55,720 --> 01:12:57,559 Ich werde nicht gehen durch alle diese. 1533 01:12:57,559 --> 01:12:59,350 Diese Folien werden up-online ein wenig 1534 01:12:59,350 --> 01:13:02,040 später, so dass Sie überprüfen können, es ein wenig später. 1535 01:13:02,040 --> 01:13:07,120 Aber im Grunde, die allgemeine Muster hält, wo wir sagen, 1536 01:13:07,120 --> 01:13:11,510 OK, hey, jQuery, hier ist mein Wahlschalter und dann ist hier eine Aktion. 1537 01:13:11,510 --> 01:13:15,940 Und man Dinge wie den Zugang der tun kann, Wert einer Form, zugreifen etwas HTML, 1538 01:13:15,940 --> 01:13:19,195 Steuer was passiert, wenn der Benutzer ein Formular, solche Dinge. 1539 01:13:19,195 --> 01:13:20,106 Ja. 1540 01:13:20,106 --> 01:13:22,090 >> Publikum: So in der Prüfung, wir gehen zu müssen, 1541 01:13:22,090 --> 01:13:25,066 eine ganze Menge von weiß die jQuery-Dokumentation. 1542 01:13:25,066 --> 01:13:31,018 Also da wir copy / paste die jQuery Dokumentation in unseren Spickzettel, 1543 01:13:31,018 --> 01:13:32,506 wo ist die Grenze gezogen? 1544 01:13:32,506 --> 01:13:33,957 Wie zB wie viele brauchen wir das wissen? 1545 01:13:33,957 --> 01:13:35,290 HANNAH BLUMBERG: Gute Frage. 1546 01:13:35,290 --> 01:13:37,765 Die Frage ist im Wesentlichen, dass Sie gegeben 1547 01:13:37,765 --> 01:13:41,330 können die jQuery-Dokumentation nicht zugreifen während des Tests, wie viel Sie 1548 01:13:41,330 --> 01:13:41,830 kennt? 1549 01:13:41,830 --> 01:13:45,540 Wir würden nicht erwarten, dass Sie kommen, mit einigen Zufallsfunktion 1550 01:13:45,540 --> 01:13:47,240 dass wir Sie Google erwartet. 1551 01:13:47,240 --> 01:13:52,930 >> Dinge, die Freiwild sind, würde ich sagen, nur irgendwie die allgemeine Syntax, 1552 01:13:52,930 --> 01:13:58,310 in der Lage, durch ID auswählen und von class-- so genau wie CSS. 1553 01:13:58,310 --> 01:14:01,876 Und dann die eigentlichen Funktionen them, werden wir wahrscheinlich sagen. 1554 01:14:01,876 --> 01:14:02,376 Ja. 1555 01:14:02,376 --> 01:14:05,591 >> Publikum: So, wenn Sie wählen Sie nach Klasse würde dot bedeuten. 1556 01:14:05,591 --> 01:14:06,840 HANNAH BLUMBERG: Ja, genau. 1557 01:14:06,840 --> 01:14:07,340 Gut. 1558 01:14:07,340 --> 01:14:10,461 Wenn Sie nach Klasse wählen, wird es anstelle des Nummernzeichen dot werden. 1559 01:14:10,461 --> 01:14:10,960 Ja. 1560 01:14:10,960 --> 01:14:12,710 >> ZIELGRUPPE: Würden Sie gehen Sie über den Unterschied 1561 01:14:12,710 --> 01:14:14,310 zwischen der Auswahl von ID und Klasse? 1562 01:14:14,310 --> 01:14:14,560 >> HANNAH BLUMBERG: Sicher. 1563 01:14:14,560 --> 01:14:17,510 Der Unterschied zwischen Auswahl ID und Auswahl von Klasse. 1564 01:14:17,510 --> 01:14:20,685 So wie Maria, sagte ein etwas früher, gibt 1565 01:14:20,685 --> 01:14:26,280 kann nur ein HTML-Element sein, mit einer bestimmten ID, während Klasse 1566 01:14:26,280 --> 01:14:29,740 es erlaubt uns, Gruppe, ein Haufen der verschiedenen Elemente, 1567 01:14:29,740 --> 01:14:34,300 so Dinge, die miteinander verbunden sind, aber nicht genau gleich sind. 1568 01:14:34,300 --> 01:14:35,685 Heißt das, die Frage zu beantworten? 1569 01:14:35,685 --> 01:14:36,200 Fantastisch. 1570 01:14:36,200 --> 01:14:37,194 Ja. 1571 01:14:37,194 --> 01:14:40,680 >> Publikum: Was ist, wenn Sie über mehrere Dinge, die in der gleichen Klasse sind? 1572 01:14:40,680 --> 01:14:42,150 >> HANNAH BLUMBERG: Was passiert wenn Sie mehrere Dinge haben, dass 1573 01:14:42,150 --> 01:14:43,280 sind die gleichen Klasse? 1574 01:14:43,280 --> 01:14:45,829 So, zum Beispiel, wenn wir nur mit reinem JavaScript, 1575 01:14:45,829 --> 01:14:48,120 wir würden etwas tun document.getElementsByClass. 1576 01:14:48,120 --> 01:14:52,280 1577 01:14:52,280 --> 01:14:56,320 Und dann, was das tatsächlich tut ist gibt ein Array von Elementen. 1578 01:14:56,320 --> 01:14:59,517 >> Und man muss entweder laufen sie oder finden Sie, welches wünschen Sie. 1579 01:14:59,517 --> 01:15:01,350 Es wird nicht zu geben, Sie ein einzelnes Element. 1580 01:15:01,350 --> 01:15:03,450 Es wird Ihnen ein Array von Elementen. 1581 01:15:03,450 --> 01:15:05,280 Gute Frage. 1582 01:15:05,280 --> 01:15:07,700 Noch etwas? 1583 01:15:07,700 --> 01:15:09,520 Fantastisch. 1584 01:15:09,520 --> 01:15:12,860 >> Ich denke also, wenn Sie mit vertraut sind beliebige jQuery Sie sah in der pset, 1585 01:15:12,860 --> 01:15:15,600 Sie sollten gut zu gehen. 1586 01:15:15,600 --> 01:15:16,325 Frage? 1587 01:15:16,325 --> 01:15:17,610 Ach nein. 1588 01:15:17,610 --> 01:15:18,859 Ich muss wirklich zu lehren. 1589 01:15:18,859 --> 01:15:19,358 Entspannen Sie sich. 1590 01:15:19,358 --> 01:15:20,035 Es wird gut sein. 1591 01:15:20,035 --> 01:15:20,660 Ich komme dorthin. 1592 01:15:20,660 --> 01:15:24,670 1593 01:15:24,670 --> 01:15:26,870 >> Lassen Sie uns über Ajax sprechen. 1594 01:15:26,870 --> 01:15:31,350 So Ajax wird sich a-- durchaus sein, lassen Sie uns mit, wofür es steht zu starten. 1595 01:15:31,350 --> 01:15:32,350 Es ist ein Akronym. 1596 01:15:32,350 --> 01:15:35,855 Es steht für Asynchronous JavaScript and XML. 1597 01:15:35,855 --> 01:15:39,800 Und XML ist im Grunde sein wird [Unverständlich] mit einer Art unserer Daten. 1598 01:15:39,800 --> 01:15:42,100 Aber wir haben nicht wirklich benutzt XML. 1599 01:15:42,100 --> 01:15:43,430 Stattdessen haben wir einfach verwenden JSON. 1600 01:15:43,430 --> 01:15:48,350 >> Also im Grunde ist es ein paar data-- asynchrone, JavaScript, und Daten, 1601 01:15:48,350 --> 01:15:50,040 in diesem Fall JSON. 1602 01:15:50,040 --> 01:15:52,820 Und unser Ziel, wie schon erwähnt ein bisschen früher, 1603 01:15:52,820 --> 01:15:56,880 ist in der Lage, eine zu machen Wunsch haben, dass der Antrag zu tun 1604 01:15:56,880 --> 01:16:00,700 seine Sache in der Hintergrund, aber weiterhin 1605 01:16:00,700 --> 01:16:02,550 tun, was wir beabsichtigen, zu tun. 1606 01:16:02,550 --> 01:16:06,650 Und dann, wenn diese Informationen bereit, dann werden wir es übernehmen. 1607 01:16:06,650 --> 01:16:08,470 >> Also mal sehen, was diese tatsächlich aussieht. 1608 01:16:08,470 --> 01:16:11,210 Und das sollten Sie sein, ein wenig vertraut 1609 01:16:11,210 --> 01:16:13,680 von pset8, die, die Sie gerade eingeschaltet. 1610 01:16:13,680 --> 01:16:16,200 Also hier ist ein gültiger jQuery Funktion, dass wir vielleicht 1611 01:16:16,200 --> 01:16:18,250 wollen about-- dieser Dollarzeichen kennen. 1612 01:16:18,250 --> 01:16:21,500 Sagt, dass es so jQuery-Funktion, .getJSON. 1613 01:16:21,500 --> 01:16:25,020 >> Und was diese Funktion tut, ist es nimmt eine URL und einige parameters-- 1614 01:16:25,020 --> 01:16:28,000 also denke ich, im Fall von pset8, es war wie, 1615 01:16:28,000 --> 01:16:33,520 Die URL war articles.php und die Parameter war go = eine Postleitzahl. 1616 01:16:33,520 --> 01:16:41,580 Und er sagt, OK, machen Sie eine Anfrage an diese URL mit den angegebenen Parametern. 1617 01:16:41,580 --> 01:16:43,480 Und das passiert einfach. 1618 01:16:43,480 --> 01:16:47,730 >> Wenn es fertig ist, ist es entweder gehen, um erfolgreich abgeschlossen 1619 01:16:47,730 --> 01:16:49,370 oder es wird scheitern. 1620 01:16:49,370 --> 01:16:53,480 Das ist also das Äquivalent von Anruf Rob und ihn bitten, etwas zu tun. 1621 01:16:53,480 --> 01:17:00,260 Und dann, wenn er zurück ruft, er ist entweder sagen ich fertig bin, oder ich gescheitert. 1622 01:17:00,260 --> 01:17:04,030 >> Also in dem Fall, wo du bist getan, Sie sagen, OK, ich bin fertig. 1623 01:17:04,030 --> 01:17:05,980 Und dann haben Sie diese Funktion aufrufen. 1624 01:17:05,980 --> 01:17:08,915 In diesem Fall, es geht um eine sein Funktion, die einige Informationen übernimmt. 1625 01:17:08,915 --> 01:17:12,890 Der, den wir normalerweise beruecksichtigen sind Daten, die Daten, die wir tatsächlich zurückgegeben wurden 1626 01:17:12,890 --> 01:17:15,900 als Ergebnis des Aufrufs .getJSON. 1627 01:17:15,900 --> 01:17:17,470 >> Und Sie können etwas mit ihm zu tun. 1628 01:17:17,470 --> 01:17:23,670 Also im Falle pset8, wir angezeigt es als eine Liste. 1629 01:17:23,670 --> 01:17:29,050 Ausfallen wird eine Funktion sein dass heißt, wenn die Anforderung fehlschlägt 1630 01:17:29,050 --> 01:17:30,450 aus welchem ​​Grund auch immer. 1631 01:17:30,450 --> 01:17:35,104 Und im Fall von pset8, wir console.log es einfach. 1632 01:17:35,104 --> 01:17:36,020 Haben Sie Fragen dazu? 1633 01:17:36,020 --> 01:17:36,300 Ja. 1634 01:17:36,300 --> 01:17:39,633 >> ZIELGRUPPE: Können wir nur Funktions Theta statt der Funktion textStatus, jqHXR. 1635 01:17:39,633 --> 01:17:43,464 1636 01:17:43,464 --> 01:17:44,380 HANNAH BLUMBERG: Sicher. 1637 01:17:44,380 --> 01:17:46,713 Also ja, ich denke, im PSET, wir gerade gesehen haben Funktionsdaten. 1638 01:17:46,713 --> 01:17:48,700 So ist es nur the-- ja, OK. 1639 01:17:48,700 --> 01:17:50,510 Das ist, was wir in der pset sah. 1640 01:17:50,510 --> 01:17:51,480 Das ist völlig in Ordnung. 1641 01:17:51,480 --> 01:17:54,210 >> Dies sind nur, wenn man wollte mehr Informationen herausziehen, 1642 01:17:54,210 --> 01:17:57,190 das sind die Dinge, die Sie .getJSON bekommen konnte. 1643 01:17:57,190 --> 01:17:59,040 Gute Frage. 1644 01:17:59,040 --> 01:17:59,706 Noch etwas? 1645 01:17:59,706 --> 01:18:00,206 Ja. 1646 01:18:00,206 --> 01:18:01,787 >> Publikum: So .getJSON ist Ajax? 1647 01:18:01,787 --> 01:18:02,620 HANNAH BLUMBERG: OK. 1648 01:18:02,620 --> 01:18:05,700 Das ist also die Art der schwierige Teil. 1649 01:18:05,700 --> 01:18:12,390 Es ist ein jQuery-Funktion, die ermöglicht Sie asynchrone Aufrufe zu tun. 1650 01:18:12,390 --> 01:18:16,080 Und die asynchrone Aufrufe, das ist, was wir zu beziehen ist, wie Ajax. 1651 01:18:16,080 --> 01:18:16,850 Ja. 1652 01:18:16,850 --> 01:18:20,185 Das dauerte eine wirklich lange Zeit, auseinander ziehen, als ich noch Student war. 1653 01:18:20,185 --> 01:18:21,560 ZIELGRUPPE: Können Sie noch einmal sagen, dass? 1654 01:18:21,560 --> 01:18:22,476 HANNAH BLUMBERG: Ja. 1655 01:18:22,476 --> 01:18:23,630 Kann ich sagen, dass wieder? 1656 01:18:23,630 --> 01:18:29,010 Diese .getJSON Funktion, es ist ein jQuery-Funktion. 1657 01:18:29,010 --> 01:18:31,970 Und es geht um Sie ein asynchroner Aufruf. 1658 01:18:31,970 --> 01:18:35,700 Und diese asynchrone Aufrufe, haben wir worden, um diejenigen, die als Ajax Bezug. 1659 01:18:35,700 --> 01:18:39,610 1660 01:18:39,610 --> 01:18:41,872 >> Noch mehr Fragen? 1661 01:18:41,872 --> 01:18:43,330 Wir haben nur ein paar Minuten. 1662 01:18:43,330 --> 01:18:45,080 Und Marias zu gehen wrap up mit Sicherheits 1663 01:18:45,080 --> 01:18:47,464 und dann werden wir gerade über durchgeführt werden. 1664 01:18:47,464 --> 01:18:48,630 MARIA Zlatkova: Awesome, OK. 1665 01:18:48,630 --> 01:18:54,030 Also das ist-- nehmen Sie nur ein paar Sekunden, um über so aussehen. 1666 01:18:54,030 --> 01:18:56,750 Und das ist nicht etwas, was wirklich toll. 1667 01:18:56,750 --> 01:18:59,430 Und kann mir jemand sagen, warum? 1668 01:18:59,430 --> 01:19:05,650 Was ist los in foo und können konnten möglicherweise in etwas Schlimmes führen, 1669 01:19:05,650 --> 01:19:06,770 und was das heißt? 1670 01:19:06,770 --> 01:19:07,270 Ja. 1671 01:19:07,270 --> 01:19:10,391 Publikum: Wenn das Argument, das ist bestanden in mehr als 12 Zeichen, 1672 01:19:10,391 --> 01:19:11,454 es könnte überlaufen. 1673 01:19:11,454 --> 01:19:12,370 MARIA Zlatkova: Richtig. 1674 01:19:12,370 --> 01:19:14,180 Perfekt. 1675 01:19:14,180 --> 01:19:15,384 Was heißt es? 1676 01:19:15,384 --> 01:19:16,300 Sie erwähnten es einfach. 1677 01:19:16,300 --> 01:19:16,840 >> ZIELGRUPPE: Pufferüberlauf. 1678 01:19:16,840 --> 01:19:18,381 >> MARIA Zlatkova: Yup, Pufferüberlauf. 1679 01:19:18,381 --> 01:19:21,230 Also das ist etwas, das wir zu beziehen, wie Pufferüberlauf. 1680 01:19:21,230 --> 01:19:25,500 Und wir sehen, dass im Inneren des foo, wir unser Puffer, c definiert haben, 1681 01:19:25,500 --> 01:19:27,240 mit einer Größe von 12. 1682 01:19:27,240 --> 01:19:32,680 Im wichtigsten, wir tun, ist jedoch nicht Check-in irgendeiner Weise 1683 01:19:32,680 --> 01:19:36,480 ob die argv1-- sodass war das zweite Argument. 1684 01:19:36,480 --> 01:19:39,630 Wir wissen nicht, ob der Größe ist angemessen. 1685 01:19:39,630 --> 01:19:43,380 >> Also, wenn wir hatten ein besonders böswillige Benutzer 1686 01:19:43,380 --> 01:19:47,170 die in irgendeiner Argument, das war gelegt länger als 12, und dann potentiell 1687 01:19:47,170 --> 01:19:50,850 jenseits der Grenzen, dass Argument, hatte einige ausführbaren Code 1688 01:19:50,850 --> 01:19:55,570 , dass er versuchte, etwas Schlechtes zu tun damit; dann ist dies, was passieren würde, 1689 01:19:55,570 --> 01:19:59,310 würde die Rückkehr zu überschreiben Adresse des foo-Funktion, 1690 01:19:59,310 --> 01:20:04,370 wodurch die Funktion, wenn Rückkehr in diesen Code ausführen. 1691 01:20:04,370 --> 01:20:07,540 Und dann schlechte Dinge passieren könnte. 1692 01:20:07,540 --> 01:20:09,850 Macht das Sinn für jedermann? 1693 01:20:09,850 --> 01:20:12,424 >> Und wie können wir zum Schutz gegen das? 1694 01:20:12,424 --> 01:20:13,090 Irgendwelche Vorschläge? 1695 01:20:13,090 --> 01:20:16,480 1696 01:20:16,480 --> 01:20:21,890 Grundsätzlich Innenseite potenziell foo, how 1697 01:20:21,890 --> 01:20:28,294 können wir überprüfen, ob dass diese nicht passieren kann? 1698 01:20:28,294 --> 01:20:33,879 >> Publikum: Wenn die Größe 12 überschritten, Sie zusätzlichen Speicher zuweisen? 1699 01:20:33,879 --> 01:20:37,170 MARIA Zlatkova: Vorschlag ist, zuzuweisen zusätzlicher Speicher für die Größe überschritten. 1700 01:20:37,170 --> 01:20:39,800 Eigentlich haben wir etwas tun können, ein viel einfacher als das auch. 1701 01:20:39,800 --> 01:20:44,870 Wir können einfach die Länge der Zeichenfolge bekommen des Arguments, die eingegeben wird, 1702 01:20:44,870 --> 01:20:48,590 überprüfen Sie, ob, dass weniger oder gleich 12-- 1703 01:20:48,590 --> 01:20:50,790 das ist, was wir wollen zu sein, weil wir nicht wollen, 1704 01:20:50,790 --> 01:20:52,373 es um die Grenzen unserer Puffer überschreiten. 1705 01:20:52,373 --> 01:20:55,690 Und dann, wenn dies nicht der Fall, werden wir kann mit dem Argument zu arbeiten. 1706 01:20:55,690 --> 01:21:00,296 Und dann, wenn es funktioniert, haben wir eigentlich wollen potentiell an der Benutzer yello. 1707 01:21:00,296 --> 01:21:01,670 Aber das ist, wie wir das tun würde. 1708 01:21:01,670 --> 01:21:02,443 Ja. 1709 01:21:02,443 --> 01:21:04,360 >> ZIELGRUPPE: Können Sie erklären memcpy ganz schnell? 1710 01:21:04,360 --> 01:21:05,443 MARIA Zlatkova: Oh, sorry. 1711 01:21:05,443 --> 01:21:06,040 Ja. 1712 01:21:06,040 --> 01:21:11,290 Memcpy nimmt, was auch immer ist-- sorry, OK. 1713 01:21:11,290 --> 01:21:15,850 Memcpy nimmt, was auch immer in bar, was auch immer passiert 1714 01:21:15,850 --> 01:21:18,050 auf foo als Befehlszeilenargument. 1715 01:21:18,050 --> 01:21:19,440 Also, es wird argv1 zu nehmen. 1716 01:21:19,440 --> 01:21:21,420 Argv1 wird bar hier genannt. 1717 01:21:21,420 --> 01:21:24,453 Also es geht um bar zu nehmen und es geht um sie in c kopieren. 1718 01:21:24,453 --> 01:21:25,402 >> ZIELGRUPPE: OK. 1719 01:21:25,402 --> 01:21:28,360 MARIA Zlatkova: Und es ist zu gehen copy-- das dritte Argument bezieht sich nur 1720 01:21:28,360 --> 01:21:30,601 um wie viel es wird in c kopieren. 1721 01:21:30,601 --> 01:21:31,142 ZIELGRUPPE: Ah. 1722 01:21:31,142 --> 01:21:33,030 Also das hier ist das Kopieren all das dann. 1723 01:21:33,030 --> 01:21:34,310 >> MARIA Zlatkova: Ja, es ist das Kopieren von alles. 1724 01:21:34,310 --> 01:21:34,810 Ja. 1725 01:21:34,810 --> 01:21:38,400 1726 01:21:38,400 --> 01:21:41,910 Zunächst stellen wir sicher, die Bar ist nicht gleich null, denn es ist ein Zeiger. 1727 01:21:41,910 --> 01:21:44,680 Dann erhalten wir die Stringlänge der Bar. 1728 01:21:44,680 --> 01:21:47,530 Wir stellen sicher, dass es weniger als oder gleich 12 ist. 1729 01:21:47,530 --> 01:21:50,070 Und dann, weil wir sorgte dafür, wir können tatsächlich 1730 01:21:50,070 --> 01:21:53,122 memcpy und achten Sie darauf, dass das ist OK. 1731 01:21:53,122 --> 01:21:53,705 Irgendwelche Fragen? 1732 01:21:53,705 --> 01:21:56,280 1733 01:21:56,280 --> 01:21:58,690 Groß. 1734 01:21:58,690 --> 01:22:00,400 Ich habe zwei Fragen richtig oder falsch ist. 1735 01:22:00,400 --> 01:22:05,470 Kann mir jemand sagen sofort, wenn diese wahr oder falsch? 1736 01:22:05,470 --> 01:22:07,460 Ja, es ist falsch. 1737 01:22:07,460 --> 01:22:07,960 Genau. 1738 01:22:07,960 --> 01:22:09,330 Beide sind falsch. 1739 01:22:09,330 --> 01:22:12,682 Also mit einem einzigen Passwort ist nie wirklich gute Idee 1740 01:22:12,682 --> 01:22:14,890 denn wenn jemand weiß, Ihr Passwort vergessen, können sie nur 1741 01:22:14,890 --> 01:22:16,260 Zugriff auf alle Ihre anderen Konten. 1742 01:22:16,260 --> 01:22:19,260 Und dann icons nichts tun um Sicherheit zu gewährleisten. 1743 01:22:19,260 --> 01:22:24,900 Wir sollten in der Regel für HTTPS suchen anstelle von HTTP und der URL. 1744 01:22:24,900 --> 01:22:28,560 >> Und einige andere Arten von Angriffe, die wir bereits erwähnt haben, 1745 01:22:28,560 --> 01:22:31,390 dass David hat in den genannten Vorlesung, SQL-Injection-Angriffe. 1746 01:22:31,390 --> 01:22:37,310 Wir haben bereits gesehen, dass, wenn wir die don't-- CS50-Abfrage-Funktion stellt sicher, dass SQL 1747 01:22:37,310 --> 01:22:39,530 Injection-Angriffe können nicht auftreten. 1748 01:22:39,530 --> 01:22:42,640 Aber wenn wir nicht mit CS50, Zitat, Zitat Ende "in Abfrage" 1749 01:22:42,640 --> 01:22:46,830 wir müssen sicherstellen, dass die Benutzereingabe ist nicht wirklich einige SQL 1750 01:22:46,830 --> 01:22:49,670 Abfrage, die alle dazu führen wird unsere Tische fallen gelassen werden 1751 01:22:49,670 --> 01:22:54,070 oder etwas Schlimmes passieren, mit unserer Datenbank. 1752 01:22:54,070 --> 01:22:56,790 >> Session-Hijacking ist Eine andere Art von Angriff 1753 01:22:56,790 --> 01:23:05,940 Das geschieht, wenn eine schlechte Person verwendet Session irgend Opfer 1754 01:23:05,940 --> 01:23:08,740 ID, um die Login-Daten zuzugreifen. 1755 01:23:08,740 --> 01:23:13,620 Also ein sehr einfaches Beispiel dafür ist wie wenn wir einen öffentlichen Computer, 1756 01:23:13,620 --> 01:23:21,120 dann meldet sich der schlechte Person und dann sie haben Cookies, die gespeichert werden. 1757 01:23:21,120 --> 01:23:23,380 Und Cookies nicht zur Sitzung zu ändern. 1758 01:23:23,380 --> 01:23:27,620 >> Dann haben wir das Opfer gehen in und dann in der Webseite anzumelden. 1759 01:23:27,620 --> 01:23:30,290 Die Cookies nicht ändern für eine bestimmte Sitzung. 1760 01:23:30,290 --> 01:23:33,060 Und dann das Opfer meldet sich die Website und dann lässt. 1761 01:23:33,060 --> 01:23:36,190 Und dann die Person, die zurückgeht kann dann immer noch ihre Session-ID verwenden 1762 01:23:36,190 --> 01:23:37,430 ihre Informationen zuzugreifen. 1763 01:23:37,430 --> 01:23:40,050 Also das ist ein Beispiel dafür, wie das passieren könnte. 1764 01:23:40,050 --> 01:23:45,570 >> Und dann würde ich nicht zu viel Sorgen zu spezifischen Code oder irgendetwas 1765 01:23:45,570 --> 01:23:49,270 so, dass dies dazu führen könnte, aber mit einer Art von Ahnung, was 1766 01:23:49,270 --> 01:23:51,400 die Variablen hier einzubringen. 1767 01:23:51,400 --> 01:23:53,897 Und dann die Manipulation Kopf Daten ist eine andere Art des Angriffs 1768 01:23:53,897 --> 01:23:55,230 das hat David hat darüber gesprochen. 1769 01:23:55,230 --> 01:23:59,730 Und es einfach bezieht sich auf was passieren kann, wenn 1770 01:23:59,730 --> 01:24:04,300 die Antwort, die HTTP Antwort innerhalb unserer Kopf 1771 01:24:04,300 --> 01:24:05,720 ist nicht ausreichend bereinigt. 1772 01:24:05,720 --> 01:24:14,340 >> Und mit einer der fields-- B. wenn jemand überschreibt eine der Header- 1773 01:24:14,340 --> 01:24:18,860 Werte, etwas mehr als enthalten was sie contain-- sollte und tatsächlich 1774 01:24:18,860 --> 01:24:22,720 enthalten, zum Beispiel ein 200 OK Statuscode, dann 1775 01:24:22,720 --> 01:24:26,890 könnte möglicherweise gefährliche tun Dinge, wenn sie sollen nicht. 1776 01:24:26,890 --> 01:24:30,815 Aber ich würde nicht zu kümmern viel über die spezifischen Code 1777 01:24:30,815 --> 01:24:34,110 dass könnte dies dazu führen, gerade Art von Verständnis 1778 01:24:34,110 --> 01:24:37,290 High-Level-Sachen. 1779 01:24:37,290 --> 01:24:39,570 >> Ich denke, das ist alles, dass wir zu decken. 1780 01:24:39,570 --> 01:24:40,090 Erstaunlich. 1781 01:24:40,090 --> 01:24:43,310 Wer Fragen zu irgendwelchen haben der Dinge, die wir abgedeckt? 1782 01:24:43,310 --> 01:24:44,213 Ja. 1783 01:24:44,213 --> 01:24:48,077 >> Publikum: So eine Art von weitere logistische Frage. 1784 01:24:48,077 --> 01:24:53,400 Wird der Inhalt im Wesentlichen fokussiert auf die Dinge nach dem Quiz 1? 1785 01:24:53,400 --> 01:24:55,730 >> MARIA Zlatkova: So Frage ist, ist der Gehalt 1786 01:24:55,730 --> 01:24:59,720 vor allem auf die Dinge nach dem Quiz 1 fokussiert? 1787 01:24:59,720 --> 01:25:06,070 So liegt der Fokus auf nach Quiz 1, ausgenommen 1788 01:25:06,070 --> 01:25:10,914 dass wir uns auf die Dinge konzentrieren, in pset5 und eine Menge der Datenstrukturen 1789 01:25:10,914 --> 01:25:11,580 dass wir bedeckt. 1790 01:25:11,580 --> 01:25:14,300 Und wir können nicht sagen, dass wir kann alles vor zu ignorieren 1791 01:25:14,300 --> 01:25:17,120 dass, weil es baut auf sie als gut. 1792 01:25:17,120 --> 01:25:21,845 >> So konzentrieren sich auf das, zzgl pset5 Material wie auch verkettete Listen, Stacks, 1793 01:25:21,845 --> 01:25:23,720 Warteschlangen, und alles, dass Hannah ging. 1794 01:25:23,720 --> 01:25:24,050 >> HANNAH BLUMBERG: Richtig. 1795 01:25:24,050 --> 01:25:27,450 Ja, über die ganze C Sachen gingen wir ganz am sehr schnell ab. 1796 01:25:27,450 --> 01:25:29,090 Aber stellen Sie sicher, dass zu überprüfen. 1797 01:25:29,090 --> 01:25:32,700 Gehen Sie zurück und beobachten Sie das Quiz 0 Bewertung. 1798 01:25:32,700 --> 01:25:36,110 >> Ein paar weitere logistische Noten, gerade, während wir Ihre Aufmerksamkeit. 1799 01:25:36,110 --> 01:25:39,100 Wir werden die Bürozeiten haben sowohl am Montag und Dienstag Nacht. 1800 01:25:39,100 --> 01:25:41,540 Sie werden in MD 119 sein. 1801 01:25:41,540 --> 01:25:44,220 Das ist alles auf der Website, so dass wenn Sie nicht hört, keine Sorgen. 1802 01:25:44,220 --> 01:25:45,266 >> MARIA Zlatkova: 8.30 bis 11.00 Uhr. 1803 01:25:45,266 --> 01:25:46,260 >> HANNAH BLUMBERG: Ja, von 8.30 bis 11.00 Uhr. 1804 01:25:46,260 --> 01:25:46,910 Wir werden da sein. 1805 01:25:46,910 --> 01:25:48,368 Wir werden da sein, um Fragen zu beantworten. 1806 01:25:48,368 --> 01:25:49,480 Es ist ziemlich Chill und Spaß. 1807 01:25:49,480 --> 01:25:53,240 Ihr könnt Fragen stellen dass Sie am Quiz 1. 1808 01:25:53,240 --> 01:25:55,740 Und Quiz-1 auf Mittwoch, so viel Glück. 1809 01:25:55,740 --> 01:25:59,770 Wenn Sie irgendwelche Fragen haben, vielleicht kommen Sprechen Sie mit uns hier oben one-on-one. 1810 01:25:59,770 --> 01:26:00,880 Cool. 1811 01:26:00,880 --> 01:26:01,630 Vielen Dank. 1812 01:26:01,630 --> 01:26:02,880 >> MARIA Zlatkova: Vielen Dank, Jungs. 1813 01:26:02,880 --> 01:26:03,480 >> ZIELGRUPPE: Yay. 1814 01:26:03,480 --> 01:26:05,930 >> [BEIFALL] 1815 01:26:05,930 --> 01:26:07,530