1 00:00:00,000 --> 00:00:05,616 2 00:00:05,616 --> 00:00:07,030 >> ΧΑΝΑ Blumberg: Γεια σε όλους. 3 00:00:07,030 --> 00:00:09,530 Εμείς πάμε για να ξεκινήσετε μόλις δύο λεπτά νωρίτερα 4 00:00:09,530 --> 00:00:11,738 δεδομένου ότι έχουμε ένα σωρό του υλικού για να περάσει. 5 00:00:11,738 --> 00:00:12,790 Είμαι Χάνα. 6 00:00:12,790 --> 00:00:13,865 Είμαι TF. 7 00:00:13,865 --> 00:00:16,239 Μαρία πρόκειται να ενταχθεί μας σε μόλις δύο λεπτά. 8 00:00:16,239 --> 00:00:17,560 Διδάσκει ενότητα σωστά πριν. 9 00:00:17,560 --> 00:00:19,351 Διδάσκω σωστό τμήμα μετά, έτσι θα πάμε 10 00:00:19,351 --> 00:00:21,200 για να το κρατήσει στην ώρα και ένα μισό. 11 00:00:21,200 --> 00:00:25,490 >> Έτσι, όπως θα δείτε εδώ, έχουμε αρκετά λίγα θέματα που πρέπει να περάσει, 12 00:00:25,490 --> 00:00:27,200 έτσι θα πάμε λίγο γρήγορα. 13 00:00:27,200 --> 00:00:31,140 Αλλά αν κάποια στιγμή λέμε κάτι πάρα πολύ γρήγορα ή δεν καταλαβαίνετε, 14 00:00:31,140 --> 00:00:33,170 διστάσετε να διακόψει με τις ερωτήσεις. 15 00:00:33,170 --> 00:00:36,610 Θέλουμε να είμαστε σε θέση να κάνουν αυτό το ένα επανεξετάζει συνεδρία ως χρήσιμη για όλους εσάς 16 00:00:36,610 --> 00:00:37,973 όσο το δυνατόν. 17 00:00:37,973 --> 00:00:38,920 Φοβερός. 18 00:00:38,920 --> 00:00:41,650 >> Ας ξεκινήσετε αμέσως με κάποια θέματα τα οποία έχουμε στην πραγματικότητα 19 00:00:41,650 --> 00:00:46,980 πολύ, που πολύ σύντομα για το κουίζ 0 στην αναθεώρηση συνεδρία κουίζ 0. 20 00:00:46,980 --> 00:00:48,840 Έτσι, ξεκινώντας με συνδεδεμένες λίστες. 21 00:00:48,840 --> 00:00:52,090 Έτσι, απλά βεβαιωθείτε ότι έχετε κάποια βασικές γνώσεις σχετικά με συνδεδεμένες λίστες 22 00:00:52,090 --> 00:00:55,110 και είναι άνετα με αυτό ορισμένες από τις βασικές λειτουργίες. 23 00:00:55,110 --> 00:00:58,560 >> Έτσι απλά να αναθεωρήσει, συνδέεται καταλόγους είναι καλύτερα από συστοιχίες 24 00:00:58,560 --> 00:01:01,020 επειδή μπορούν να αναπτυχθούν δυναμικά. 25 00:01:01,020 --> 00:01:03,300 Έτσι, έχουμε αυτό το τεράστιο πλεονέκτημα. 26 00:01:03,300 --> 00:01:06,031 Έχουμε δει να χρησιμοποιείται σε πίνακες κατακερματισμού όταν 27 00:01:06,031 --> 00:01:08,280 Δεν ξέρω ακριβώς πόσες τα πράγματα θα πάμε να θέλουν 28 00:01:08,280 --> 00:01:10,900 για την εισαγωγή στη δομή των δεδομένων μας. 29 00:01:10,900 --> 00:01:15,700 Δυστυχώς, έχουμε κομμάτια η συνδεδεμένη λίστα σε όλη τη μνήμη, 30 00:01:15,700 --> 00:01:20,820 γι 'αυτό δεν θα είναι απαραίτητα είναι σε θέση να κάνει συνεχή πρόσβαση χρόνο 31 00:01:20,820 --> 00:01:22,502 σε οποιοδήποτε στοιχείο της συνδεδεμένης λίστας. 32 00:01:22,502 --> 00:01:24,210 Για να βρείτε μια συγκεκριμένο στοιχείο, εμείς 33 00:01:24,210 --> 00:01:26,510 πρέπει να επαναλάβει όλα τα τρόπο από την αρχή. 34 00:01:26,510 --> 00:01:30,610 Έτσι, έχετε κατά νου ότι τα περισσότερα από τα βασικές λειτουργίες είναι τα ω 1. 35 00:01:30,610 --> 00:01:32,130 Έτσι ένθετο είναι ακριβώς πρόκειται να πάρει 1. 36 00:01:32,130 --> 00:01:37,520 Διαγραφή πρόκειται να πάρει ν δεδομένου ότι πρέπει να πάει το βρείτε από τη λίστα. 37 00:01:37,520 --> 00:01:39,260 Και αναζήτηση θα μπορούσε να λάβει, στη χειρότερη περίπτωση, n. 38 00:01:39,260 --> 00:01:42,330 Δεν μπορούμε να κάνουμε κάτι σαν δυαδική αναζήτηση σε συνδεδεμένη λίστα 39 00:01:42,330 --> 00:01:45,101 Επειδή δεν μπορούμε απλά τυχαία άλμα στη μέση. 40 00:01:45,101 --> 00:01:45,600 Δροσερός. 41 00:01:45,600 --> 00:01:48,160 42 00:01:48,160 --> 00:01:48,960 Φοβερός. 43 00:01:48,960 --> 00:01:50,270 >> Ένα μικρό κομμάτι της στοίβες. 44 00:01:50,270 --> 00:01:53,980 Αυτό, πάλι, ήρθε σε ένα κουίζ 0, έτσι ώστε να θα πρέπει να είναι σούπερ άνετα με αυτό. 45 00:01:53,980 --> 00:01:57,210 Αλλά για στοίβες, σας ζητάμε να θυμηθούμε μια στοίβα των δίσκων. 46 00:01:57,210 --> 00:01:59,940 Και αυτό πρόκειται να είναι η πρώτη σε, διαρκούν έξω. 47 00:01:59,940 --> 00:02:02,272 Γι 'αυτό και πήγαν τα πράγματα στη στοίβα, και στη συνέχεια 48 00:02:02,272 --> 00:02:04,980 αν προσπαθούμε να πάρουμε κάτι off-- που ονομάζουμε σκάει από 49 00:02:04,980 --> 00:02:06,581 η stack-- ερχόμαστε από την κορυφή. 50 00:02:06,581 --> 00:02:09,289 Και αν θέλουμε να βάλουμε κάτι στη στοίβα, καλούμε πιέζει. 51 00:02:09,289 --> 00:02:13,170 Γι 'αυτό πάντα θα πρέπει να μεγαλώνουν από τον πυθμένα σαν μια στοίβα από δίσκους. 52 00:02:13,170 --> 00:02:14,540 Φοβερός. 53 00:02:14,540 --> 00:02:17,607 >> Έχουμε δει στοίβες εφαρμόζονται με δύο συνδεδεμένες λίστες και πίνακες. 54 00:02:17,607 --> 00:02:19,440 Αν είστε εφαρμογής με συστοιχίες, θέλετε 55 00:02:19,440 --> 00:02:22,350 να σιγουρευτείτε για να παρακολουθείτε τόσο το μέγεθος και η χωρητικότητα. 56 00:02:22,350 --> 00:02:27,540 Έτσι, το μέγεθος θα είναι η τρέχουσα διάφορα πράγματα στο stack σας, 57 00:02:27,540 --> 00:02:32,900 λαμβάνοντας υπόψη ότι η ικανότητα είναι ο συνολικός αριθμός πράγματα που μπορείτε να αποθηκεύσετε στη στοίβα σας. 58 00:02:32,900 --> 00:02:34,220 Δροσερός. 59 00:02:34,220 --> 00:02:35,767 >> Πολύ Ομοίως, έχουμε ουρές. 60 00:02:35,767 --> 00:02:38,850 Σε αυτήν την περίπτωση, αντί να σκεφτόμαστε μια στοίβα των δίσκων, σκεφτείτε μιας γραμμής. 61 00:02:38,850 --> 00:02:40,697 Αυτό πρόκειται να είναι η πρώτη in, first out. 62 00:02:40,697 --> 00:02:42,780 Έτσι, αν είστε στην ουρά για κάτι στο κατάστημα, 63 00:02:42,780 --> 00:02:46,920 ελπίζουμε ότι το πρόσωπο για πρώτη φορά το γραμμή πρόκειται να βοηθήσει πρώτα. 64 00:02:46,920 --> 00:02:49,350 >> Αντί να λέει ώθησης και ποπ όπως κάνουμε για την στοίβα, 65 00:02:49,350 --> 00:02:52,000 απλά λέμε Τοποθέτηση στην ουρά και dequeue. 66 00:02:52,000 --> 00:02:54,970 Και πάλι, αν είστε Εφαρμόζοντας αυτό με μια σειρά, 67 00:02:54,970 --> 00:02:56,720 θα πρέπει να παρακολουθείτε όχι μόνο το μέγεθος 68 00:02:56,720 --> 00:03:02,390 και την ικανότητα, αλλά και το κεφάλι, το οποίο πρόκειται να είναι η ουρά μπροστά μας. 69 00:03:02,390 --> 00:03:03,010 Δροσερός. 70 00:03:03,010 --> 00:03:05,770 Οποιεσδήποτε ερωτήσεις σχετικά με κάποιο από αυτά; 71 00:03:05,770 --> 00:03:06,320 Φοβερός. 72 00:03:06,320 --> 00:03:07,640 Μετακίνηση δεξιά κατά μήκος. 73 00:03:07,640 --> 00:03:08,564 >> Εντάξει, πίνακες κατακερματισμού. 74 00:03:08,564 --> 00:03:10,605 Εδώ είναι όπου αρχίζει να να πάρει πραγματικά ενδιαφέρουσα. 75 00:03:10,605 --> 00:03:14,150 Έτσι, ένας πίνακας κατακερματισμού είναι μια εφαρμογή από ένα συνδυαστικό πίνακα. 76 00:03:14,150 --> 00:03:16,700 Έτσι, βασικά, τι συνέβη Είναι όλοι έχουμε αυτή την είσοδο, 77 00:03:16,700 --> 00:03:18,750 και δίνουμε σε ένα hash λειτουργία που λέει, 78 00:03:18,750 --> 00:03:21,840 Εντάξει, αυτό είναι όπου στο hash πίνακα ανήκει. 79 00:03:21,840 --> 00:03:24,860 >> Έτσι, η απλούστερη συνάρτηση κατακερματισμού ότι έχουμε δει αυτό ακριβώς λέει, 80 00:03:24,860 --> 00:03:28,170 Εντάξει, ας υποθέσουμε ότι θέλετε να βάλετε χορδές σε πίνακα κατακερματισμού μας. 81 00:03:28,170 --> 00:03:30,870 Και μια πραγματικά απλή ιδέα θα μπορούσε να είναι να πούμε, εντάξει, 82 00:03:30,870 --> 00:03:34,350 ας λύσουμε από το πρώτο γράμμα της λέξης. 83 00:03:34,350 --> 00:03:37,570 Έτσι μπορείτε να δείτε εδώ, παίρνουμε μπανάνα, το βάζουμε μέσα από μια συνάρτηση κατακερματισμού, 84 00:03:37,570 --> 00:03:40,190 και λέει, hey, ότι θα πρέπει να πάτε στο ευρετήριο 1. 85 00:03:40,190 --> 00:03:45,120 >> Έτσι, μπορούμε να σκεφτούμε ουσιαστικά από ένα hash τραπέζι ως μια δέσμη των διαφορετικών κουβάδες. 86 00:03:45,120 --> 00:03:49,880 Και κάθε ένα από αυτά τα κάδων πρόκειται για να κρατήσει το κεφάλι του μια συνδεδεμένη λίστα. 87 00:03:49,880 --> 00:03:55,030 Και σε αυτή την συνδεδεμένη λίστα είναι όπου μπορούμε τίθενται ουσιαστικά διαφορετικά κομμάτια των δεδομένων. 88 00:03:55,030 --> 00:03:57,820 >> Έτσι, καταδύσεις λίγο περισσότερο σε συνάρτηση κατακερματισμού, είναι εδώ 89 00:03:57,820 --> 00:03:59,870 το παράδειγμα που μόλις όπου περιγράφεται απλά λέμε, 90 00:03:59,870 --> 00:04:02,460 Εντάξει, πάρτε το πρώτο γράμμα της λέξης και είμαστε 91 00:04:02,460 --> 00:04:03,990 πρόκειται να το λύσουμε μέσα στους κάδους. 92 00:04:03,990 --> 00:04:08,490 Έτσι, κατά πάσα πιθανότητα, θα είναι εκεί 26 κάδους, μία για κάθε γράμμα της αλφαβήτου. 93 00:04:08,490 --> 00:04:10,090 Γιατί δεν είναι αυτό μια μεγάλη συνάρτηση κατακερματισμού; 94 00:04:10,090 --> 00:04:13,461 Τι κάνει αυτό το μη ιδανικό; 95 00:04:13,461 --> 00:04:13,960 Ναι. 96 00:04:13,960 --> 00:04:15,790 >> Κοινό: Θα πάμε να έχουν συγκρούσεις. 97 00:04:15,790 --> 00:04:16,390 >> ΧΑΝΑ Blumberg: Ναι, ακριβώς. 98 00:04:16,390 --> 00:04:18,000 Θα πάμε να έχουν συγκρούσεις. 99 00:04:18,000 --> 00:04:18,954 Έτσι, αυτό είναι ένα πράγμα. 100 00:04:18,954 --> 00:04:21,620 Και θα μιλήσουμε για το πώς μπορούμε να καθορίσει συγκρούσεις σε μόλις ένα δευτερόλεπτο. 101 00:04:21,620 --> 00:04:23,980 Ένα άλλο πρόβλημα με αυτό Ειδικότερα συνάρτηση κατακερματισμού 102 00:04:23,980 --> 00:04:25,980 είναι ότι οι διαφορετικές μας Οι κάδοι θα είναι 103 00:04:25,980 --> 00:04:28,960 όμορφη δραστικά διαφορετικά μεγέθη. 104 00:04:28,960 --> 00:04:33,840 >> Γνωρίζουμε ότι υπάρχει ένα πάρα πολύ περισσότερες λέξεις που ξεκινούν με ένα από τα Χ, 105 00:04:33,840 --> 00:04:38,980 έτσι θα πάμε να έχουν πολύ ασύμμετρη κάδων σε πίνακα κατακερματισμού μας. 106 00:04:38,980 --> 00:04:40,050 Δροσερός. 107 00:04:40,050 --> 00:04:41,340 Οπότε ναι, ας πάμε πίσω στο το σημείο της σύγκρουσης. 108 00:04:41,340 --> 00:04:42,900 Τι θα κάνουμε αν υπάρχει μια σύγκρουση; 109 00:04:42,900 --> 00:04:44,490 >> Έχουμε ένα ζευγάρι διαφορετικές επιλογές. 110 00:04:44,490 --> 00:04:47,600 Έτσι ένα, έτσι ας υποθέσουμε ότι προσπαθούμε να θέσει μούρο σε πίνακα κατακερματισμού μας. 111 00:04:47,600 --> 00:04:50,370 Και βλέπουμε, ω, θέλουμε για να το θέσω στο δείκτη 1, 112 00:04:50,370 --> 00:04:52,070 αλλά μπανάνα ήδη ζει εκεί. 113 00:04:52,070 --> 00:04:53,110 Τι θα κάνουμε? 114 00:04:53,110 --> 00:04:54,560 Έχουμε δύο κύριες επιλογές. 115 00:04:54,560 --> 00:04:58,050 >> Νούμερο ένα είναι που μπορούμε να πούμε, εντάξει, δεν υπάρχει χώρος στο δείκτη 1, 116 00:04:58,050 --> 00:05:03,210 αλλά ας κρατήσει αναζητούν μέσα από μέχρι να βρούμε ένα άλλο ανοιχτό σημείο. 117 00:05:03,210 --> 00:05:08,490 Γι 'αυτό και θα πω, εντάξει, ας το βάλει στο σημείο 3. 118 00:05:08,490 --> 00:05:09,240 Αυτό είναι μια επιλογή. 119 00:05:09,240 --> 00:05:11,470 Αυτό ονομάζεται γραμμική σχολαστικά. 120 00:05:11,470 --> 00:05:15,500 >> Και μια δεύτερη επιλογή που λέει, εντάξει, καλά, ας κάνουν τον καθένα από αυτούς τους κάδους 121 00:05:15,500 --> 00:05:17,470 είναι επικεφαλής των συνδεδεμένων λιστών. 122 00:05:17,470 --> 00:05:21,910 Και είναι εντάξει, αν υπάρχουν και άλλα από ένα πράγμα σε έναν κάδο. 123 00:05:21,910 --> 00:05:23,820 Είμαστε ακριβώς πρόκειται να επισυνάπτει το πάνω στο μέτωπο. 124 00:05:23,820 --> 00:05:26,032 Έτσι, εδώ μπορείτε να δείτε, εντάξει, όταν θα εισαχθεί μούρο, εμείς 125 00:05:26,032 --> 00:05:28,240 μόλις πήρε μπανάνα, το είδος του έσπρωξε το πάνω από ένα λίγο 126 00:05:28,240 --> 00:05:29,842 και έριξε ένα μούρο εκεί. 127 00:05:29,842 --> 00:05:31,050 Και αυτό είναι επίσης μια χαρά. 128 00:05:31,050 --> 00:05:32,830 Αυτό ονομάζεται Ξεχωριστές αλυσίδες. 129 00:05:32,830 --> 00:05:38,100 Μπορείτε να σκεφτείτε αυτό ως κάτι σαν μια σειρά από κεφάλια με συνδεδεμένες λίστες. 130 00:05:38,100 --> 00:05:41,950 Οποιεσδήποτε ερωτήσεις σχετικά με χασίς πίνακες, συναρτήσεις κατακερματισμού; 131 00:05:41,950 --> 00:05:44,290 Φοβερός. 132 00:05:44,290 --> 00:05:45,470 >> Δέντρα και προσπαθεί. 133 00:05:45,470 --> 00:05:47,287 Έτσι, ένα δέντρο είναι οποιοδήποτε είδος της δομής των δεδομένων 134 00:05:47,287 --> 00:05:49,453 στις οποίες υπάρχει κάποιο είδος της ιεραρχίας ή κάποιου είδους 135 00:05:49,453 --> 00:05:51,247 κατάταξης σε διάφορα αντικείμενα σας. 136 00:05:51,247 --> 00:05:53,580 Και αυτό θα γίνει super σαφές όταν βλέπουμε ένα παράδειγμα. 137 00:05:53,580 --> 00:05:56,960 Και είδαμε προσπαθεί, μαζί με πίνακες κατακερματισμού, σε pset5-- 138 00:05:56,960 --> 00:06:00,700 το οποίο, και πάλι, εντελώς δίκαιο παιχνίδι γι 'αυτό quiz-- ως μια άλλη δεδομένα 139 00:06:00,700 --> 00:06:03,110 δομές που μπορούμε να αποθηκεύσει διαφορετικά πράγματα. 140 00:06:03,110 --> 00:06:06,782 Στην περίπτωση του λεξικού, θα αποθηκεύεται ένα μάτσο λέξεις. 141 00:06:06,782 --> 00:06:08,240 Έτσι, ας ρίξουμε μια ματιά σε μερικά δέντρα. 142 00:06:08,240 --> 00:06:10,190 Έτσι, αυτό είναι ένα παράδειγμα ενός δέντρου. 143 00:06:10,190 --> 00:06:13,105 Έχει ένα είδος δομής, ότι ιεραρχική δομή, 144 00:06:13,105 --> 00:06:15,920 όπου μπορείτε να δείτε πως Αυτό 1 κόμβος στην κορυφή 145 00:06:15,920 --> 00:06:20,750 έχει κάποιο είδος της τάξης άνω του 2 και 3, τα οποία είναι πάνω από 4, 5, και 6 και 7, 146 00:06:20,750 --> 00:06:22,860 η οποία είναι πάνω από 8 και 9. 147 00:06:22,860 --> 00:06:25,210 Έτσι ώστε να είναι όλα εννοούμε με τον όρο δέντρο, έτσι ώστε να μπορείτε ακριβώς το είδος 148 00:06:25,210 --> 00:06:26,660 της εικόνα αυτή στο μυαλό σας. 149 00:06:26,660 --> 00:06:29,050 >> Τώρα, έχουμε ένα ζευγάρι των πιο εξειδικευμένες δέντρα. 150 00:06:29,050 --> 00:06:31,070 Έτσι, ένα παράδειγμα είναι ένα δυαδικό δένδρο. 151 00:06:31,070 --> 00:06:33,290 Και ένα δυαδικό δέντρο είναι, και πάλι, ακριβώς πρόκειται να είναι 152 00:06:33,290 --> 00:06:37,040 μια δομή δεδομένων με κάποιο είδος του ιεραρχία, αλλά κάθε μία από τις κόμβων 153 00:06:37,040 --> 00:06:38,650 μπορεί να έχει το πολύ δύο παιδιά. 154 00:06:38,650 --> 00:06:41,530 Αυτός είναι όπου η λέξη προέρχεται από το δυαδικό. 155 00:06:41,530 --> 00:06:43,410 Έτσι, αυτό είναι ένα παράδειγμα ενός δυαδικού δένδρου. 156 00:06:43,410 --> 00:06:45,720 Έτσι, αυτό είναι μια μικρότερη κατηγορία των δέντρων. 157 00:06:45,720 --> 00:06:48,960 >> Τώρα ας πάμε ακόμη πιο συγκεκριμένες και μιλάμε για δυαδικό trees-- δυαδική αναζήτηση 158 00:06:48,960 --> 00:06:51,310 δέντρα, μάλλον. 159 00:06:51,310 --> 00:06:56,430 Μέχρι εδώ η ιδέα δεν είναι μόνο η κάθε κόμβος έχει το πολύ δύο παιδιά, 160 00:06:56,430 --> 00:07:00,300 αλλά όλα τα παιδιά να το αριστερά πρόκειται να είναι μικρότερη 161 00:07:00,300 --> 00:07:03,450 και όλα τα παιδιά για το το δικαίωμα πρόκειται να είναι μεγαλύτερο. 162 00:07:03,450 --> 00:07:05,890 Έτσι παρατηρήσετε σε μόλις μας δυαδικό δέντρο, υπάρχει 163 00:07:05,890 --> 00:07:08,650 καμία σχέση μεταξύ των αριθμών. 164 00:07:08,650 --> 00:07:12,990 Αλλά σε δυαδική αναζήτηση μας δέντρο, βλέπουμε, εντάξει, εδώ είναι 44. 165 00:07:12,990 --> 00:07:17,080 Και κάθε αριθμός στα αριστερά του 44 είναι μικρότερα και τα πάντα προς τα δεξιά 166 00:07:17,080 --> 00:07:17,920 είναι μεγαλύτερη. 167 00:07:17,920 --> 00:07:20,130 >> Και αυτό ισχύει σε κάθε επίπεδο του δέντρου. 168 00:07:20,130 --> 00:07:24,810 Έτσι εδώ, αυτό είναι μικρότερο από 22 και αυτό είναι μεγαλύτερο από 22. 169 00:07:24,810 --> 00:07:26,390 Και αυτό είναι δυαδικό δένδρο αναζήτησης. 170 00:07:26,390 --> 00:07:28,900 Γιατί νομίζω ότι λέγεται ένα δυαδικό δέντρο αναζήτησης; 171 00:07:28,900 --> 00:07:30,651 Τι αλγόριθμο αυτό σας θυμίζει; 172 00:07:30,651 --> 00:07:31,650 Κοινό: δυαδική αναζήτηση. 173 00:07:31,650 --> 00:07:32,480 ΧΑΝΑ Blumberg: δυαδική αναζήτηση. 174 00:07:32,480 --> 00:07:35,150 Διότι, αν ψάχνετε για ένα συγκεκριμένο αριθμό σε αυτό το δέντρο, 175 00:07:35,150 --> 00:07:38,800 σε κάθε σημείο, μπορείτε να χτυπήσει μόνο μακριά από το ήμισυ του δέντρου, η οποία είναι μεγάλη. 176 00:07:38,800 --> 00:07:43,800 Και έτσι αυτό πρόκειται να μας δώσει κάτι ότι μοιάζει πολύ με δυαδική αναζήτηση. 177 00:07:43,800 --> 00:07:45,870 Καμιά ερώτηση? 178 00:07:45,870 --> 00:07:47,570 Εντάξει, δροσερό. 179 00:07:47,570 --> 00:07:48,560 >> Εντάξει, προσπαθεί. 180 00:07:48,560 --> 00:07:49,657 Το αγαπημένο όλων. 181 00:07:49,657 --> 00:07:51,990 Έτσι, αυτό είναι το παράδειγμα που έχουμε δει ένα σωρό στην τάξη. 182 00:07:51,990 --> 00:07:54,710 Και πάλι, αυτό είναι ακριβώς ένα άλλο τρόπο που μπορεί να αποθηκεύσει δεδομένα. 183 00:07:54,710 --> 00:07:57,530 Στην περίπτωση του λεξικού, και πάλι, αυτό ακριβώς πρόκειται να είναι χορδές. 184 00:07:57,530 --> 00:08:00,870 Ας δούμε λοιπόν τι είναι αυτό που πράγματι μοιάζει σε ελαφρώς χαμηλότερο επίπεδο. 185 00:08:00,870 --> 00:08:03,690 >> Έτσι, ας ρίξουμε μια ματιά σε έναν κόμβο σε ένα trie. 186 00:08:03,690 --> 00:08:07,532 Και βλέπουμε, εντάξει, υπάρχει μετάβαση να είναι ένα Boolean και ένας κόμβος, 187 00:08:07,532 --> 00:08:09,170 ένα δείκτη σε έναν κόμβο. 188 00:08:09,170 --> 00:08:11,400 Και βλέπουμε ότι ο Boolean ονομάζεται is_word. 189 00:08:11,400 --> 00:08:13,490 Έτσι, κατ 'ουσίαν, ότι είναι πρόκειται να αντιστοιχούν 190 00:08:13,490 --> 00:08:16,750 σε αυτά τα μικρά τρίγωνα τα οποία λέει, αν έχετε πάρει εδώ, 191 00:08:16,750 --> 00:08:19,100 έχετε βρει μια ολόκληρη λέξη. 192 00:08:19,100 --> 00:08:23,670 >> Γνωρίζουμε ότι «αναδιάρθρωσης» πάνω εδώ είναι ένα πλήρες λέξη, 193 00:08:23,670 --> 00:08:28,030 λαμβάνοντας υπόψη ότι μόλις Τ-U-R δεν είναι μια λέξη γιατί δεν βλέπουμε αυτό το μικρό δέλτα. 194 00:08:28,030 --> 00:08:31,440 Και αυτό το μικρό δέλτα, και πάλι, αντιστοιχεί σε αυτό is_word, 195 00:08:31,440 --> 00:08:34,480 Αυτό Boolean is_word. 196 00:08:34,480 --> 00:08:36,320 Και τότε έχουμε μια σειρά από παιδιά. 197 00:08:36,320 --> 00:08:39,860 Έτσι, σε κάθε επίπεδο, θα έχουν ένα συγκεκριμένο κόμβο, 198 00:08:39,860 --> 00:08:42,470 και ότι τα σημεία κόμβου σε ένα συστοιχία ολόκληρου του αλφαβήτου. 199 00:08:42,470 --> 00:08:44,346 >> Έτσι μπορείτε να δείτε, και πάλι, σε αυτό το picture-- είμαι 200 00:08:44,346 --> 00:08:48,170 πρόκειται να κρατήσει το άλμα πίσω και forth-- ότι η σειρά στην κορυφή 201 00:08:48,170 --> 00:08:51,640 έχει μια δέσμη των διαφορετικών κόμβοι έρχεται από αυτό. 202 00:08:51,640 --> 00:08:57,140 Διαθέτει 26, 27 ή αν θέλετε να περιέχουν ένα επιπλέον χαρακτήρα. 203 00:08:57,140 --> 00:09:01,320 Και αυτό μας δίνει μια τρόπος για να αποθηκεύσετε τα δεδομένα μας 204 00:09:01,320 --> 00:09:04,450 με έναν τρόπο που μπορεί να εξεταστεί σε ότι μπορείτε να αναζητήσετε σούπερ γρήγορα. 205 00:09:04,450 --> 00:09:06,650 Ποιος είναι ο χρόνος αναζήτησης για ένα trie; 206 00:09:06,650 --> 00:09:07,970 >> Κοινό: [δεν ακούγεται]. 207 00:09:07,970 --> 00:09:08,300 >> ΧΑΝΑ Μπλούμπεργκ: Ναι. 208 00:09:08,300 --> 00:09:09,550 Στη θεωρία, είναι σταθερά χρόνου. 209 00:09:09,550 --> 00:09:13,230 Είναι μόνο πρόκειται να είναι το μέγεθος της η λέξη που θέλετε να αναζητήσετε. 210 00:09:13,230 --> 00:09:15,950 Ακόμα και αν προσθέσετε ένα zillion περισσότερες λέξεις στο Trie μας, 211 00:09:15,950 --> 00:09:18,160 δεν πρόκειται να μας πάρει πλέον να προσδιοριστεί 212 00:09:18,160 --> 00:09:19,690 εάν μια δεδομένη λέξη είναι στο Trie. 213 00:09:19,690 --> 00:09:21,412 Έτσι, αυτό είναι πραγματικά ωραίο. 214 00:09:21,412 --> 00:09:23,697 >> Κοινό: Μήπως απλά η προετοιμασία αυτής της διάταξης; 215 00:09:23,697 --> 00:09:24,780 Δεν προλάβατε ένα σημείο ή δύο. 216 00:09:24,780 --> 00:09:26,130 Μπορείς να μιλάμε μόνο για ότι για ένα δευτερόλεπτο; 217 00:09:26,130 --> 00:09:26,680 >> ΧΑΝΑ Blumberg: Σίγουρα, απολύτως. 218 00:09:26,680 --> 00:09:27,590 Καλή ερώτηση. 219 00:09:27,590 --> 00:09:31,140 Το ερώτημα ήταν, εμείς έχουν μια σειρά που είναι 220 00:09:31,140 --> 00:09:34,180 θα έχουν ως κόμβο αστέρι σε αντίθεση με μόνο κόμβο, έτσι δεν είναι; 221 00:09:34,180 --> 00:09:35,180 Δροσερός. 222 00:09:35,180 --> 00:09:37,990 Έτσι, εδώ αυτό που λέμε είναι σειρά μας είναι απλά 223 00:09:37,990 --> 00:09:40,035 πρόκειται να είναι δείκτες σε άλλες σειρές. 224 00:09:40,035 --> 00:09:42,910 Έτσι είναι το είδος της essentially-- αισθάνεται σαν μια συνδεδεμένη λίστα με αυτόν τον τρόπο 225 00:09:42,910 --> 00:09:46,620 όπου το καθένα από αυτά τα παιδιά ακριβώς το σημείο στον επόμενο κόμβο. 226 00:09:46,620 --> 00:09:49,030 >> Και ο τρόπος που εμείς στην πραγματικότητα καθορίζουν, hey, εντάξει, 227 00:09:49,030 --> 00:09:52,320 έχουμε επαναλαμβάνεται μέσα από ένα ολόκληρο λέξη, είναι αυτή η λέξη στο λεξικό, 228 00:09:52,320 --> 00:09:54,476 ελέγχουμε μόνο αυτό is_word. 229 00:09:54,476 --> 00:09:55,100 Μεγάλη ερώτηση. 230 00:09:55,100 --> 00:09:55,675 Ναι. 231 00:09:55,675 --> 00:09:56,216 Κοινό: OK. 232 00:09:56,216 --> 00:09:57,470 Λοιπόν, τι ήταν τότε ο χρόνος για την trie; 233 00:09:57,470 --> 00:09:58,386 >> ΧΑΝΑ Μπλούμπεργκ: Σίγουρα. 234 00:09:58,386 --> 00:10:01,852 Έτσι, το χρόνο εκτέλεσης για trie για αναζήτηση θα είναι σταθερά χρόνου. 235 00:10:01,852 --> 00:10:04,310 Γι 'αυτό ακριβώς πρόκειται να είναι η αριθμός των γραμμάτων της λέξης. 236 00:10:04,310 --> 00:10:06,310 Δεν είναι εξαρτάται από το μέγεθος του λεξικού 237 00:10:06,310 --> 00:10:09,510 ή το μέγεθος της δομής των δεδομένων. 238 00:10:09,510 --> 00:10:12,170 Τόσο εδώ είναι μια ελαφρά απλούστερο παράδειγμα. 239 00:10:12,170 --> 00:10:15,430 >> Σε αυτήν την περίπτωση, μπορείτε να δείτε ότι η λέξη νυχτερίδα είναι στο λεξικό 240 00:10:15,430 --> 00:10:18,900 και έχετε ζουμ, αλλά θα Δεν έχουμε κάτι σαν ζωολογικό κήπο. 241 00:10:18,900 --> 00:10:20,050 Πώς θα κάνουμε ζωολογικό κήπο; 242 00:10:20,050 --> 00:10:24,276 Πώς μπορούμε να προσθέσουμε στο ζωολογικό κήπο μας λεξικό, για να trie μας; 243 00:10:24,276 --> 00:10:24,776 Ναι. 244 00:10:24,776 --> 00:10:27,014 >> Κοινό: Κάντε is_word ισχύει και για την [δεν ακούγεται]. 245 00:10:27,014 --> 00:10:27,930 ΧΑΝΑ Μπλούμπεργκ: Καλή. 246 00:10:27,930 --> 00:10:31,731 Έτσι, θα λέγαμε Ζ-Ο-Ο, και τότε θα θέλετε να ελέγξετε έξω αυτό το κουτί, καθώς και. 247 00:10:31,731 --> 00:10:32,230 Εξαιρετική. 248 00:10:32,230 --> 00:10:35,160 249 00:10:35,160 --> 00:10:37,930 Ας συγκρίνουμε πολύ σύντομα προσπαθεί έναντι πίνακες κατακερματισμού. 250 00:10:37,930 --> 00:10:39,770 Προσπαθεί είναι πραγματικά μεγάλη επειδή, όπως είπαμε, 251 00:10:39,770 --> 00:10:41,610 παρέχουν συνεχή αναζήτηση απασχόλησης. 252 00:10:41,610 --> 00:10:44,285 Αλλά το τεράστιο μειονέκτημα είναι ότι είναι τεράστια. 253 00:10:44,285 --> 00:10:46,160 Μπορείτε να πάρετε την αίσθηση, ακόμη και με την εξέταση αυτή, 254 00:10:46,160 --> 00:10:48,454 ότι πρόκειται να λάβει ένα τεράστιο ποσό της μνήμης. 255 00:10:48,454 --> 00:10:50,620 Έτσι, από όπου και αν πρόκειται να είναι πολύ μεγαλύτερο από πίνακες κατακερματισμού, 256 00:10:50,620 --> 00:10:52,270 αλλά πρόκειται να δώσει μας πολύ ταχύτερους χρόνους αναζήτησης. 257 00:10:52,270 --> 00:10:54,478 Έτσι, αυτό είναι το είδος του σας δίλημμα, τι σας ενδιαφέρει, 258 00:10:54,478 --> 00:10:57,350 είτε πρόκειται για την ταχύτητα ή τη μνήμη. 259 00:10:57,350 --> 00:11:02,251 Οποιεσδήποτε ερωτήσεις σχετικά με τίποτα από αυτά, όλα τα δομών δεδομένων C. 260 00:11:02,251 --> 00:11:02,750 Όμορφος. 261 00:11:02,750 --> 00:11:03,250 ΕΝΤΆΞΕΙ. 262 00:11:03,250 --> 00:11:07,322 Εμείς πάμε για να προχωρήσουμε σε ένα μικρό κομμάτι της ανάπτυξης ιστοσελίδων με τη Μαρία. 263 00:11:07,322 --> 00:11:08,280 ΜΑΡΙΑ ZLATKOVA: Υπέροχο. 264 00:11:08,280 --> 00:11:09,036 ΕΝΤΆΞΕΙ. 265 00:11:09,036 --> 00:11:10,380 >> ΧΑΝΑ Blumberg: Μπορείτε να χρησιμοποιήσετε το φορητό υπολογιστή μου. 266 00:11:10,380 --> 00:11:11,255 >> ΜΑΡΙΑ ZLATKOVA: Νίκαια. 267 00:11:11,255 --> 00:11:13,320 268 00:11:13,320 --> 00:11:14,912 Εντάξει, δροσερό. 269 00:11:14,912 --> 00:11:17,120 Καθώς προχωρούμε τώρα στο διαδίκτυο ανάπτυξης, μιλήσαμε λίγο 270 00:11:17,120 --> 00:11:20,680 σχετικά με την αλλαγή δικαιώματα των αρχείων και καταλόγων 271 00:11:20,680 --> 00:11:24,190 έτσι ώστε να μπορούν να είναι προσβάσιμα σε άλλους χρήστες, στον κόσμο, 272 00:11:24,190 --> 00:11:28,640 και έτσι ώστε να μπορούμε να δούμε πώς βασικά μπορούμε να τα μεταφέρει 273 00:11:28,640 --> 00:11:32,600 όταν θα εξελιχθούν τα πράγματα όπως ιστοσελίδες ότι έχουμε κάνει ως επί το πλείστον. 274 00:11:32,600 --> 00:11:36,400 >> Έτσι είδαμε την εντολή chmod, η οποία είναι η κατάσταση αλλαγής, βασικά. 275 00:11:36,400 --> 00:11:39,300 Αυτή είναι μια εντολή Linux και αλλάζει τα δικαιώματα πρόσβασης 276 00:11:39,300 --> 00:11:40,410 των αντικειμένων του συστήματος αρχείων. 277 00:11:40,410 --> 00:11:43,370 Και ένα αντικείμενο συστήματος αρχείων είναι μόνο ένας κατάλογος, ένα αρχείο, 278 00:11:43,370 --> 00:11:46,810 κάτι που μπορείτε να να αλλάξετε τα δικαιώματα του. 279 00:11:46,810 --> 00:11:53,750 >> Έτσι για να δείτε τα δικαιώματα αρχείου, πληκτρολογούμε την εντολή ls, λίστα, -l. 280 00:11:53,750 --> 00:11:56,500 Και όταν γράφουμε αυτό, συνήθως δούμε κάποια δικαιώματα 281 00:11:56,500 --> 00:11:59,660 που μοιάζουν κάπως έτσι μπροστά από ένα όνομα καταλόγου. 282 00:11:59,660 --> 00:12:01,260 Έτσι d αναφέρεται σε κατάλογο. 283 00:12:01,260 --> 00:12:05,930 Και τότε έχουμε τρεις τριάδες ότι βασικά 284 00:12:05,930 --> 00:12:11,675 αναφέρονται στα δικαιώματα της είτε ένας χρήστης, ομάδα, ή ο κόσμος. 285 00:12:11,675 --> 00:12:16,490 >> Οι τύποι των δικαιωμάτων που μπορούμε έχουν γι 'αυτές τις τρεις ομάδες ανθρώπων 286 00:12:16,490 --> 00:12:20,830 είναι είτε r για ανάγνωση, w για γράφουν, και x για να εκτελέσει. 287 00:12:20,830 --> 00:12:23,650 Και μπορούμε να έχουμε εκείνες για η ομάδα και τον κόσμο, καθώς και. 288 00:12:23,650 --> 00:12:26,940 Το δύσκολο πράγμα είναι ότι μερικές φορές Όταν πληκτρολογείτε την εντολή chmod, 289 00:12:26,940 --> 00:12:32,960 θα πληκτρολογήσετε κάποιον αριθμό ότι αποτελείτο από τρία bits. 290 00:12:32,960 --> 00:12:36,990 Έτσι, θα μπορούσαμε να κάνουμε, όπως 777 και ότι βασικά 291 00:12:36,990 --> 00:12:40,450 αναφέρεται στην προστιθέμενη αξία του καθενός από αυτά τριάδες 292 00:12:40,450 --> 00:12:45,060 γιατί r παραπέμπει σε 4, w θα Ανατρέξτε στο σημείο 2, και το Χ θα αναφέρονται σε 1, 293 00:12:45,060 --> 00:12:50,020 έτσι ώστε όταν προστίθενται, κάθε ένα από τους αριθμούς θα έρθει κάτω σε ένα συνολικό αριθμό 294 00:12:50,020 --> 00:12:52,750 σε μια αθροιστική τιμή μεταξύ 0 και 7. 295 00:12:52,750 --> 00:12:55,150 Έτσι, θα μπορούσαμε επίσης να έχουμε 0 για τα δικαιώματα χωρίς καθόλου. 296 00:12:55,150 --> 00:12:58,200 Και αυτό θα μας δώσει βασικά τα δικαιώματα είτε για τον χρήστη, 297 00:12:58,200 --> 00:13:00,450 η ομάδα, ή ο κόσμος. 298 00:13:00,450 --> 00:13:02,620 Οποιεσδήποτε ερωτήσεις σχετικά με αυτό το μέτρο; 299 00:13:02,620 --> 00:13:05,331 >> Κοινό: Είπατε διαβάστε ήταν 4; 300 00:13:05,331 --> 00:13:06,164 ΜΑΡΙΑ ZLATKOVA: Ναι. 301 00:13:06,164 --> 00:13:07,568 Κοινό: [δεν ακούγεται]. 302 00:13:07,568 --> 00:13:08,504 ΧΑΝΑ Μπλούμπεργκ: Yup. 303 00:13:08,504 --> 00:13:11,790 Κοινό: Και στη συνέχεια, με την προσθήκη όλους εκείνους άλλοι θα αναφέρει τον αριθμό σας. 304 00:13:11,790 --> 00:13:12,665 ΜΑΡΙΑ ZLATKOVA: Ναι. 305 00:13:12,665 --> 00:13:14,970 Ναι. 306 00:13:14,970 --> 00:13:17,810 Αυτά είναι μεγάλα ερωτήματα. 307 00:13:17,810 --> 00:13:20,490 Ωραίος. 308 00:13:20,490 --> 00:13:25,340 Στη συνέχεια, πήδηξε σε HTML και λίγο περισσότερα για την ανάπτυξη ιστοσελίδων. 309 00:13:25,340 --> 00:13:27,990 Έτσι HTML σημαίνει ακριβώς HyperText Markup Language. 310 00:13:27,990 --> 00:13:30,460 Και αυτό είναι το περιθώριο κέρδους γλώσσα που είναι ένα πρότυπο 311 00:13:30,460 --> 00:13:32,720 ότι χρησιμοποιείται για τη δημιουργία ιστοσελίδων. 312 00:13:32,720 --> 00:13:35,750 >> Αυτό λέγεται μια γλώσσα σήμανσης επειδή δεν είναι πραγματικά καταρτίζονται. 313 00:13:35,750 --> 00:13:40,310 Δεν λέει πώς μερικοί κώδικας θα πρέπει να να εκτελεστεί ή κάτι τέτοιο. 314 00:13:40,310 --> 00:13:44,800 Σκιαγραφεί απλά και περιγράφει πώς ένα web 315 00:13:44,800 --> 00:13:46,840 σελίδα θα πρέπει να συσταθεί με κάθε ένα από τα στοιχεία του 316 00:13:46,840 --> 00:13:48,460 και πώς θα πρέπει να κοιτάξουμε προς το χρήστη. 317 00:13:48,460 --> 00:13:53,090 318 00:13:53,090 --> 00:13:57,110 >> Μερικές από τις ετικέτες HTML που θα πήγε πάνω είναι τα ακόλουθα. 319 00:13:57,110 --> 00:14:00,500 Όλα τα έγγραφα HTML μας ξεκίνησε με την HTML DOCTYPE. 320 00:14:00,500 --> 00:14:02,550 Στη συνέχεια, έχουμε πάντα την ετικέτα HTML. 321 00:14:02,550 --> 00:14:03,930 Έχουμε ένα κεφάλι και το σώμα. 322 00:14:03,930 --> 00:14:07,890 Και είναι σημαντικό ότι η HTML έχει Αυτού του είδους η ένθετη δομή 323 00:14:07,890 --> 00:14:09,280 επειδή είναι πολύ σαφές. 324 00:14:09,280 --> 00:14:13,200 Και τότε γίνεται ξεκάθαρο όταν πρέπει να ανοίξει και πραγματικά κοντά ετικέτες. 325 00:14:13,200 --> 00:14:18,400 Και εμείς πάντα πρέπει να κλείσετε ετικέτες που έχουμε ανοίξει. 326 00:14:18,400 --> 00:14:23,170 >> Και εδώ έχουμε μερικά από τα είδη πράγματα μπροστά που θέλουμε να έχουμε. 327 00:14:23,170 --> 00:14:26,580 Έτσι έχουμε, για παράδειγμα, ο τίτλος του CS50. 328 00:14:26,580 --> 00:14:31,980 Και τότε πραγματικά μπορείτε να συνδέσετε ένα φύλλο στυλ 329 00:14:31,980 --> 00:14:34,030 που καθορίζει τον τρόπο μπορούμε στυλ ιστοσελίδα μας. 330 00:14:34,030 --> 00:14:35,650 Αυτό είναι το CSS. 331 00:14:35,650 --> 00:14:39,320 Εμείς πάμε για να πάει πέρα ​​από το στο επόμενα δύο διαφάνειες, καθώς και. 332 00:14:39,320 --> 00:14:42,580 >> Μέσα στο σώμα, θέτουμε ορισμένες τάξεις και ταυτότητες. 333 00:14:42,580 --> 00:14:45,860 Και ως υπενθύμιση, και πάλι, Αναγνωριστικά είναι μοναδικά και τάξεις 334 00:14:45,860 --> 00:14:47,390 μπορεί να ανατεθεί σε πολλά στοιχεία. 335 00:14:47,390 --> 00:14:52,110 Και αυτό σημαίνει απλά ότι μπορούμε να χρησιμοποιήσουμε τις κατηγορίες και τα αναγνωριστικά 336 00:14:52,110 --> 00:14:55,860 εντός άλλων structures-- έτσι, για παράδειγμα, μέσα σε αρχεία CSS ή στυλ 337 00:14:55,860 --> 00:15:00,940 sheets-- να αναφερθώ σε συγκεκριμένα στοιχεία και βασικά λένε ότι θέλουμε να το στυλ 338 00:15:00,940 --> 00:15:03,280 ή σχεδιάζουν κάποιο στοιχείο με κάποιο συγκεκριμένο τρόπο. 339 00:15:03,280 --> 00:15:06,440 Και αναφερόμαστε σε αυτούς από αναγνωριστικά και τις τάξεις τους. 340 00:15:06,440 --> 00:15:09,870 Και μπορούμε επίσης να αναφέρεται σε διαφορετικά τα πράγματα με λέξεις-κλειδιά, καθώς, 341 00:15:09,870 --> 00:15:13,830 αλλά και τα αναγνωριστικά μαθήματα μόνο να μας δώσει κάποια ευελιξία και τι συγκεκριμένα εμείς 342 00:15:13,830 --> 00:15:15,850 θέλω να αναφερθώ. 343 00:15:15,850 --> 00:15:19,620 >> Έτσι, μόνο ένα παράδειγμα. 344 00:15:19,620 --> 00:15:22,730 Μπορούμε, και πάλι, στο πλαίσιο ένα αρχείο CSS όπου 345 00:15:22,730 --> 00:15:25,770 θέλετε να ορίσετε κάποια style-- έτσι τα χρώματα, τις γραμματοσειρές, 346 00:15:25,770 --> 00:15:30,340 και τέτοια πράγματα μπορούμε that-- ορίσετε το στυλ για το σώμα. 347 00:15:30,340 --> 00:15:32,640 Έτσι, ότι θα το καθορίσει για ολόκληρο το σώμα ετικέτας. 348 00:15:32,640 --> 00:15:36,160 Αλλά τότε μπορούμε επίσης να καθορίσουμε ένα στυλ για μια #title. 349 00:15:36,160 --> 00:15:40,390 Και πάλι, το hashtag αναφέρεται σε μας ID και η τελεία παραπέμπει στην τάξη μας. 350 00:15:40,390 --> 00:15:44,760 >> Και στη συνέχεια για τις .info, εμείς Μπορείτε επίσης να ρυθμίσετε κάποια χαρακτηριστικά. 351 00:15:44,760 --> 00:15:49,750 Και πάλι, όταν πάμε πίσω, είχαμε μας κατηγορία που ονομάζεται πληροφορίες και ο τίτλος μας ταυτότητας. 352 00:15:49,750 --> 00:15:53,422 Και μπορούμε να δούμε ότι αναφερόμαστε σε αυτούς από #title και .info. 353 00:15:53,422 --> 00:15:55,380 Κοινό: Θα λέγατε hashtag [? υιοθετήσουν μου; ?] 354 00:15:55,380 --> 00:15:55,725 ΜΑΡΙΑ ZLATKOVA: Συγνώμη; 355 00:15:55,725 --> 00:15:58,120 Κοινό: Θα λέγατε hashtag [? υιοθετήσουν μου; ?] 356 00:15:58,120 --> 00:16:01,400 ΜΑΡΙΑ ZLATKOVA: Hashtag σημαίνει ID, έτσι #title 357 00:16:01,400 --> 00:16:07,890 αναφέρεται σε οποιεσδήποτε στοιχεία έχουν αυτό που ονομάζεται ID τίτλο. 358 00:16:07,890 --> 00:16:10,735 Και τότε η τελεία αναφέρεται σε μια τάξη. 359 00:16:10,735 --> 00:16:14,590 Έτσι, .info αναφέρεται σε αυτό το στοιχείο επειδή έχει τις πληροφορίες κατηγορίας. 360 00:16:14,590 --> 00:16:15,090 Ναι. 361 00:16:15,090 --> 00:16:17,905 >> Κοινό: Γιατί το κάνετε διακρίνει τους στο HTML; 362 00:16:17,905 --> 00:16:20,985 Γιατί το λες κάποια πράγματα είναι Ταυτότητες και ορισμένα πράγματα είναι τάξη; 363 00:16:20,985 --> 00:16:22,610 ΜΑΡΙΑ ZLATKOVA: Αυτό είναι απλά μέχρι you-- 364 00:16:22,610 --> 00:16:24,151 ΧΑΝΑ Blumberg: Επαναλάβετε την ερώτηση. 365 00:16:24,151 --> 00:16:25,370 ΜΑΡΙΑ ZLATKOVA: Ω, συγγνώμη. 366 00:16:25,370 --> 00:16:29,480 Γιατί να διακρίνουμε ορισμένα στοιχεία καθώς και τα αναγνωριστικά στοιχεία και άλλες κατηγορίες; 367 00:16:29,480 --> 00:16:34,760 Αυτό είναι απλά επειδή είναι Πραγματικά συχνά μια σχεδιαστική επιλογή. 368 00:16:34,760 --> 00:16:38,520 Σας δίνει πολλή ευελιξία στο να 369 00:16:38,520 --> 00:16:43,250 είναι σε θέση να πω ότι θέλω αυτό το συγκεκριμένο σημείο να έχουν αυτό το αναγνωριστικό επειδή θέλουν 370 00:16:43,250 --> 00:16:45,300 να κάνει πολλά πράγματα με αυτό, και εγώ μόνο 371 00:16:45,300 --> 00:16:50,010 θέλετε να ορίσετε ένα στυλ, συγκεκριμένο στυλ ή όποια και αν είναι το χρώμα για αυτό το στοιχείο. 372 00:16:50,010 --> 00:16:52,630 Και ο τρόπος για να το κάνουμε αυτό είναι απλά δίνει μια ταυτότητα. 373 00:16:52,630 --> 00:16:55,060 >> Και στη συνέχεια, αν θέλω να έχω ένα ζευγάρι από διαφορετικά στοιχεία 374 00:16:55,060 --> 00:16:58,940 έχοντας ότι, αντί του πηγαίνει και τον καθορισμό their-- 375 00:16:58,940 --> 00:17:03,840 αντί να το κάνετε από ετικέτα, επειδή η ετικέτα θα 376 00:17:03,840 --> 00:17:07,369 ρυθμίσετε το τηλέφωνο για το σύνολο της ετικέτας για κάθε φορά που χρησιμοποιείται αυτή η ετικέτα, 377 00:17:07,369 --> 00:17:09,740 μπορείτε να ορίσετε μια τάξη σε πολλά αντικείμενα. 378 00:17:09,740 --> 00:17:15,109 Και τότε ακριβώς έχουν πρόσβαση στη συγκεκριμένη κατηγορία και να πω Θέλω να Style Αυτό τάξη με αυτόν τον τρόπο. 379 00:17:15,109 --> 00:17:17,579 >> Και πάλι, η τάξη μπορεί να είναι πολλαπλά διαφορετικά στοιχεία 380 00:17:17,579 --> 00:17:21,150 και το αναγνωριστικό πρέπει να είναι μοναδική. 381 00:17:21,150 --> 00:17:21,849 Μεγάλη ερωτήσεις. 382 00:17:21,849 --> 00:17:25,339 Οποιεσδήποτε άλλες ερωτήσεις; 383 00:17:25,339 --> 00:17:26,220 Εντάξει, φοβερό. 384 00:17:26,220 --> 00:17:30,680 385 00:17:30,680 --> 00:17:35,330 Και πάλι, αυτό είναι το πώς αυτοί οι επιλογείς αναφέρονται σε CSS, με hashtag, 386 00:17:35,330 --> 00:17:40,031 με τελεία ή χωρίς τίποτα για αναθέτοντας το στυλ κάποιου ετικέτας, 387 00:17:40,031 --> 00:17:40,530 όπως το σώμα. 388 00:17:40,530 --> 00:17:43,500 389 00:17:43,500 --> 00:17:47,860 Και εδώ έχουμε το γενικό σύνταξη του πώς γίνεται αυτό. 390 00:17:47,860 --> 00:17:52,830 391 00:17:52,830 --> 00:17:55,680 >> Για να επαναλάβετε κάποια καλύτερη πρακτικές για την HTML και CSS, 392 00:17:55,680 --> 00:17:59,170 Οφείλουμε, αλλά και πάλι, κλείστε όλα οι ετικέτες HTML που θα ανοίξει. 393 00:17:59,170 --> 00:18:03,950 Και αυτό που σας συνέστησε κάνει για τελευταία έργα σας, 394 00:18:03,950 --> 00:18:10,560 καθώς και για CS50 Οικονομικών, είναι να κάνει βεβαιωθείτε ότι όλες HTML σας επικυρώνει. 395 00:18:10,560 --> 00:18:12,920 Και αυτό γίνεται με το W3 Validator. 396 00:18:12,920 --> 00:18:16,940 >> Και τότε τι κάναμε και τι προτείνουμε κάνουμε 397 00:18:16,940 --> 00:18:19,790 χωρίζει το στυλ, έτσι CSS από τη σήμανση HTML. 398 00:18:19,790 --> 00:18:24,210 Έτσι, ό, τι σχετίζεται με τον τρόπο σελίδα σας πρόκειται να δούμε οπτικά 399 00:18:24,210 --> 00:18:27,330 και πώς πρόκειται να τροποποιηθεί θα πρέπει να πάει σε ένα έγγραφο CSS. 400 00:18:27,330 --> 00:18:33,880 Και τότε σήμανσης σας λέει πώς τα πράγματα είναι σε σχέση με κάθε άλλο είναι HTML, 401 00:18:33,880 --> 00:18:37,550 και ότι θα πρέπει να πάνε μέσα των εγγράφων HTML σας. 402 00:18:37,550 --> 00:18:38,590 Καμιά ερώτηση? 403 00:18:38,590 --> 00:18:39,226 Mhm. 404 00:18:39,226 --> 00:18:42,628 >> Κοινό: Τι ακριβώς συμβαίνει σχετικά με την επικύρωση της σελίδας 405 00:18:42,628 --> 00:18:47,945 όταν είμαστε επικύρωση του HTML που [δεν ακούγεται] δημιούργησε; 406 00:18:47,945 --> 00:18:49,850 >> ΜΑΡΙΑ ZLATKOVA: Έτσι what-- νομίζετε. 407 00:18:49,850 --> 00:18:53,020 Έτσι τι ακριβώς συμβαίνει σχετικά με την επικύρωση της σελίδας 408 00:18:53,020 --> 00:18:55,570 και γιατί πρέπει να το κάνουμε αυτό; 409 00:18:55,570 --> 00:18:59,180 Βασικά, θα πρέπει να το κάνουμε αυτό γιατί πολλές φορές, ο browser σας, 410 00:18:59,180 --> 00:19:01,390 αν δεν κλείσει μια ετικέτα ή κατι τετοιο, 411 00:19:01,390 --> 00:19:05,680 Ο περιηγητής σας είναι ακόμα πρόκειται να καθιστούν μια σελίδα και μπορεί να εξακολουθούν να εργάζονται, 412 00:19:05,680 --> 00:19:10,840 αλλά είναι καλύτερη πρακτική για να βεβαιωθείτε ότι έχετε, και πάλι, έκλεισε όλες τις ετικέτες σας, 413 00:19:10,840 --> 00:19:13,190 ότι όλα τα στοιχεία σας είναι ο τρόπος με τον οποίο θα πρέπει να είναι, 414 00:19:13,190 --> 00:19:18,470 και βασικά αυτό είναι από το συμβάσεις που έχουν προκαθοριστεί. 415 00:19:18,470 --> 00:19:21,970 >> Είναι, πάλι, μόνο ένα πράγμα που θα πρέπει να 416 00:19:21,970 --> 00:19:24,040 πρέπει να μάθουν να κάνουν, σε αντίθεση με έχοντας 417 00:19:24,040 --> 00:19:25,696 sloppier κώδικα και τέτοια πράγματα. 418 00:19:25,696 --> 00:19:26,688 Ναι. 419 00:19:26,688 --> 00:19:27,680 Ω συγνώμη. 420 00:19:27,680 --> 00:19:29,221 Νόμιζα ότι σηκώνοντας το χέρι σας. 421 00:19:29,221 --> 00:19:31,240 Κοινό: Όχι, ήμουν μόλις [δεν ακούγεται]. 422 00:19:31,240 --> 00:19:33,800 >> ΜΑΡΙΑ ZLATKOVA: OK. 423 00:19:33,800 --> 00:19:34,640 >> Κοινό: Σας ευχαριστώ. 424 00:19:34,640 --> 00:19:36,181 >> ΜΑΡΙΑ ZLATKOVA: Φυσικά, σας ευχαριστώ. 425 00:19:36,181 --> 00:19:41,680 Έτσι και πάλι, πηγαίνοντας για το πώς πληροφορίες μεταφέρονται 426 00:19:41,680 --> 00:19:44,630 και τα μοντέλα επικοινωνίας για τη μεταφορά πληροφοριών. 427 00:19:44,630 --> 00:19:45,730 TCP / IP. 428 00:19:45,730 --> 00:19:48,600 TCP σημαίνει ακριβώς Μεταφοράς Πρωτόκολλο Ελέγχου και IP 429 00:19:48,600 --> 00:19:51,260 αναφέρεται στο πρωτόκολλο διαδικτύου. 430 00:19:51,260 --> 00:19:54,275 Και αυτό αναφέρεται μόνο σε ο τρόπος δεδομένα έχει παραδοθεί. 431 00:19:54,275 --> 00:19:59,470 432 00:19:59,470 --> 00:20:02,710 >> Αν έχουμε κάποια δεδομένα τα οποία πρέπει να παραδίδεται στην you-- έτσι 433 00:20:02,710 --> 00:20:06,770 κάνετε μια αίτηση για ένα συγκεκριμένο διακομιστή. 434 00:20:06,770 --> 00:20:09,800 Για παράδειγμα, όταν Προσπαθείτε να αποκτήσετε πρόσβαση cs50.net, 435 00:20:09,800 --> 00:20:12,420 κάνουμε μια αίτηση στην ο διακομιστής CS50 και εμείς 436 00:20:12,420 --> 00:20:14,720 βλέπουμε ότι θέλουμε να Αυτό το είδος των πληροφοριών. 437 00:20:14,720 --> 00:20:19,294 Και στη συνέχεια με βάση αυτό το πρωτόκολλο για το πώς αυτή η πληροφορία παραδίδεται, 438 00:20:19,294 --> 00:20:21,460 ο διακομιστής παρέχει πληροφορίες πίσω σε μας, ο πελάτης. 439 00:20:21,460 --> 00:20:25,590 Και τότε θα είμαστε σε θέση να δείτε οι πληροφορίες για τη σελίδα 440 00:20:25,590 --> 00:20:26,390 και στη συνέχεια να το χρησιμοποιήσετε. 441 00:20:26,390 --> 00:20:29,300 442 00:20:29,300 --> 00:20:33,050 >> Έτσι, στη συνέχεια το πρωτόκολλο Hypertext Transfer είναι ακριβώς ένα άλλο πρωτόκολλο ή που 443 00:20:33,050 --> 00:20:37,470 των συμβάσεων που ορίζει τον τρόπο το πρόγραμμα περιήγησης στο Web και ο web server 444 00:20:37,470 --> 00:20:38,890 πρέπει να επικοινωνούν. 445 00:20:38,890 --> 00:20:43,730 Και βάζοντας όλα αυτά μαζί, HTTP, και πάλι, 446 00:20:43,730 --> 00:20:50,960 ακριβώς καθορίζει τον τρόπο αυτό ορίζεται υπερκειμένου από την HTML που έχουμε αυτό που εργάζονται, 447 00:20:50,960 --> 00:20:59,500 πώς θα πρέπει να παραδοθεί σε σας και πώς τα δεδομένα που παραδίδονται σε σας 448 00:20:59,500 --> 00:21:00,540 φτάνει σε σας. 449 00:21:00,540 --> 00:21:05,990 >> Και γι 'αυτό, αν εσείς θυμάστε από μια κλάση, είχαμε πολλά αιτήματα 450 00:21:05,990 --> 00:21:08,970 και είχαμε μια πολύ σύνταξη για αυτά τα αιτήματα που είμαστε 451 00:21:08,970 --> 00:21:10,250 πρόκειται να πάει πέρα ​​τώρα. 452 00:21:10,250 --> 00:21:13,270 Έτσι και πάλι, όταν στέλνουμε ένα αίτημα σε ένα διακομιστή, 453 00:21:13,270 --> 00:21:15,920 πρέπει να ορίσουμε μια-δυο πράγματα. 454 00:21:15,920 --> 00:21:18,520 Γι 'αυτό πρέπει να βρούμε τον τύπο της αίτησης που είμαστε ρύθμιση. 455 00:21:18,520 --> 00:21:22,180 Και πάλι, έχουμε, για παράδειγμα, GET είναι ένα είδος μεθόδου 456 00:21:22,180 --> 00:21:25,290 ότι έχουμε στο αίτημά μας. 457 00:21:25,290 --> 00:21:31,710 >> Και τότε HTTP / 1.1 είναι ακριβώς το πρωτόκολλο που χρησιμοποιούμε σήμερα. 458 00:21:31,710 --> 00:21:34,224 459 00:21:34,224 --> 00:21:36,890 Τις περισσότερες φορές, ότι πρόκειται με το πρωτόκολλο που χρησιμοποιούμε. 460 00:21:36,890 --> 00:21:40,290 Έτσι, εάν έχετε μια ερώτηση όπως ότι σε ένα κουίζ σας. 461 00:21:40,290 --> 00:21:43,120 Αυτό είναι οι συμβάσεις ότι έχουμε μέχρι στιγμής. 462 00:21:43,120 --> 00:21:46,580 >> Ανάστροφη κάθετο αναφέρεται σε τι είδους των πραγμάτων είμαστε ζητούν. 463 00:21:46,580 --> 00:21:52,810 Στη συνέχεια, οικοδεσπότης μας είναι, για παράδειγμα, σε αυτό το περίπτωση, προσπαθούμε να πάμε στο google.com. 464 00:21:52,810 --> 00:21:57,070 Έτσι, αυτό είναι η τιμή για ένα ξενιστή. 465 00:21:57,070 --> 00:21:59,330 Αυτό είναι ένα είδος του αιτήματος ότι θα μπορούσε να σταλεί. 466 00:21:59,330 --> 00:22:02,890 >> Και τότε ένα είδος αντίδρασης που θα μπορούσε να αποσταλεί, και πάλι, με βάση αυτό το πρωτόκολλο, 467 00:22:02,890 --> 00:22:05,190 είναι και πάλι, HTTP / 1.1. 468 00:22:05,190 --> 00:22:07,150 Έτσι ώστε να είναι και πάλι η έκδοση HTTP. 469 00:22:07,150 --> 00:22:09,730 200 OK είναι ακριβώς ο κωδικός κατάστασης. 470 00:22:09,730 --> 00:22:12,860 Και αυτό είναι ΟΚ απλά μια φράση με βάση την εν λόγω κώδικα κατάστασης. 471 00:22:12,860 --> 00:22:15,520 >> Και τότε το Content-Type αναφέρεται στον τύπο 472 00:22:15,520 --> 00:22:20,295 που επέστρεψε για να σας πω ότι είναι για την εν λόγω ιστοσελίδα που θα λάβετε 473 00:22:20,295 --> 00:22:22,570 και ότι ο browser σας μπορεί να καταστήσει αργότερα. 474 00:22:22,570 --> 00:22:24,401 Και αυτό είναι text / html. 475 00:22:24,401 --> 00:22:26,660 >> Κοινό: Τι σημαίνει 1,1; 476 00:22:26,660 --> 00:22:29,910 >> ΜΑΡΙΑ ZLATKOVA: Αυτό είναι ακριβώς το έκδοση of-- Ω, τι σημαίνει 1,1; 477 00:22:29,910 --> 00:22:37,075 Αυτό είναι μόνο η έκδοση, το HTTP έκδοση του πρωτοκόλλου που χρησιμοποιούμε. 478 00:22:37,075 --> 00:22:37,700 Μεγάλη ερώτηση. 479 00:22:37,700 --> 00:22:38,366 Άλλες ερωτήσεις; 480 00:22:38,366 --> 00:22:41,222 481 00:22:41,222 --> 00:22:45,080 >> Κοινό: Θα μπορούσατε να συνοψίσω Content-Type πραγματικά γρήγορα; 482 00:22:45,080 --> 00:22:48,150 >> ΜΑΡΙΑ ZLATKOVA: Ώστε είναι ό, τι ο διακομιστής. 483 00:22:48,150 --> 00:22:51,020 ο τύπος του information-- τι είναι τύπος περιεχομένου ήταν οι ερωτήσεις. 484 00:22:51,020 --> 00:22:53,400 Έτσι ώστε ήταν ο τύπος του πληροφορίες που μπορείτε να πάρετε πίσω 485 00:22:53,400 --> 00:22:58,200 από το διακομιστή, το είδος του στοιχεία που το πρόγραμμα περιήγησης μπορεί, στη συνέχεια, 486 00:22:58,200 --> 00:23:00,604 καταστήσει ότι χρησιμοποιείτε. 487 00:23:00,604 --> 00:23:03,020 Κοινό: Είναι ότι αυτό που πρωτόκολλο σας λέει να κάνετε; 488 00:23:03,020 --> 00:23:03,390 ΜΑΡΙΑ ZLATKOVA: Συγνώμη; 489 00:23:03,390 --> 00:23:05,380 Κοινό: Είναι αυτό που λένε το πρωτόκολλο; 490 00:23:05,380 --> 00:23:05,915 ΜΑΡΙΑ ZLATKOVA: Η protocol-- 491 00:23:05,915 --> 00:23:07,940 Κοινό: --αυτό η Content-Type είναι ή what-- 492 00:23:07,940 --> 00:23:12,040 ΜΑΡΙΑ ZLATKOVA: Το πρωτόκολλο βασίζεται on-- τι είναι το πρωτόκολλο σας λέει; 493 00:23:12,040 --> 00:23:16,070 Αυτός είναι ακριβώς ο τρόπος ότι αυτή η πληροφορία 494 00:23:16,070 --> 00:23:18,610 παραδόθηκε σε εσάς με βάση σε ποιο είδος πρωτοκόλλου 495 00:23:18,610 --> 00:23:21,830 ήταν η πληροφορία αυτή πήρε παραδίδεται μαζί σας. 496 00:23:21,830 --> 00:23:23,500 Μήπως αυτό έχει νόημα είδος; 497 00:23:23,500 --> 00:23:28,320 498 00:23:28,320 --> 00:23:30,070 ΧΑΝΑ Blumberg: Μπορείτε μπορεί να σκεφτεί πρωτοκόλλου 499 00:23:30,070 --> 00:23:33,300 όπως a-- Νομίζω Καθηγητής Malan περιέγραψε 500 00:23:33,300 --> 00:23:36,910 στην κατηγορία και το είδος του σαν a-- είναι σαν το ισοδύναμο των ανθρώπινων χειραψίας. 501 00:23:36,910 --> 00:23:44,930 Ας πούμε, όπως, hey, είμαι και εγώ αίτηση ξέρουν πώς να χειριστούν HTTP της έκδοσης 1.1. 502 00:23:44,930 --> 00:23:48,770 Και τότε ο διακομιστής λέει, Ω, εντάξει, I-- και υπάρχουν και τα δύο. 503 00:23:48,770 --> 00:23:51,337 Γνωρίζω, επίσης, πώς να ασχοληθεί με το HTTP / 1.1. 504 00:23:51,337 --> 00:23:53,170 Και Πάω να δώσει θα υποστηρίξει κάποιο περιεχόμενο. 505 00:23:53,170 --> 00:23:56,230 Σε αυτήν την περίπτωση, πρόκειται να είναι του τύπου text / html. 506 00:23:56,230 --> 00:23:58,480 Έτσι είναι το είδος του απλά ένας τρόπος από αυτά για communicating-- 507 00:23:58,480 --> 00:24:00,480 >> ΜΑΡΙΑ ZLATKOVA: Είναι απλά επιβεβαιώνει ότι είστε 508 00:24:00,480 --> 00:24:03,290 τόσο ακολουθώντας την ίδια πρωτόκολλο και ότι και οι δύο 509 00:24:03,290 --> 00:24:06,620 ο πελάτης και ο server-- έτσι Ο περιηγητής σας και το server-- 510 00:24:06,620 --> 00:24:09,280 είδος ξέρετε τι είστε μιλάμε και να έχουν 511 00:24:09,280 --> 00:24:12,557 η σύμβαση για το πέρασμα στα δεδομένα. 512 00:24:12,557 --> 00:24:17,022 >> Κοινό: Έτσι, το Content-Type part-- το κείμενο Content-Type / html-- ότι είναι 513 00:24:17,022 --> 00:24:18,521 ένα ξεχωριστό τμήμα του ίδιου μηνύματος; 514 00:24:18,521 --> 00:24:20,509 Ή είναι μέρος της ας πούμε, 200; 515 00:24:20,509 --> 00:24:22,010 Μήπως 200 να τους πούμε ότι ή is-- 516 00:24:22,010 --> 00:24:23,770 >> ΜΑΡΙΑ ZLATKOVA: 200 λέει ότι όλα πήγαν ΟΚ. 517 00:24:23,770 --> 00:24:27,900 Και τότε ο τύπος περιεχομένου είναι ένα είδος ξεχωριστό μέρος του ίδιου μηνύματος, 518 00:24:27,900 --> 00:24:34,274 και λέγοντας ότι το πράγμα που μου Επέστρεψε έχει αυτό το είδος του κειμένου / html. 519 00:24:34,274 --> 00:24:35,690 Είναι απλά δίνει περισσότερες πληροφορίες. 520 00:24:35,690 --> 00:24:38,700 521 00:24:38,700 --> 00:24:39,995 Έχετε να προσθέσετε κάτι; 522 00:24:39,995 --> 00:24:40,495 ΕΝΤΆΞΕΙ. 523 00:24:40,495 --> 00:24:43,590 524 00:24:43,590 --> 00:24:46,530 >> Οποιεσδήποτε άλλες ερωτήσεις σχετικά με αυτό; 525 00:24:46,530 --> 00:24:48,370 Φοβερός. 526 00:24:48,370 --> 00:24:54,070 Έτσι, κάποιες άλλες HTTP καταστάσεων που θα μπορούσε να πάρει επιπλέον 200 ΟΚ, 527 00:24:54,070 --> 00:24:59,500 αυτά που έχουμε δει ίσως ενδεχομένως πολλά είναι 403 και 404. 528 00:24:59,500 --> 00:25:05,190 Έτσι, 404, αν προσπαθούσατε να πρόσβαση κάτι που δεν υπάρχει. 529 00:25:05,190 --> 00:25:10,460 Έτσι, για παράδειγμα, σε σας CS50 Οικονομικών psets, 530 00:25:10,460 --> 00:25:15,640 αν είχε καταστεί quote.html και δεν είχατε αυτό το αρχείο, 531 00:25:15,640 --> 00:25:19,740 αλλά αντ 'αυτού θα έπρεπε quote.php, ότι θα οδηγήσει σε 404 Not Found 532 00:25:19,740 --> 00:25:21,600 επειδή το αρχείο μπορεί να μην υπάρχει. 533 00:25:21,600 --> 00:25:25,690 >> Για 403 απαγορευμένο, ότι αναφέρεται στα δικαιώματα. 534 00:25:25,690 --> 00:25:31,150 Έτσι, αν κάποιο αρχείο δεν είναι αναγνώσιμο από το κόσμο, μπορείτε να πάρετε ένα 403 επέστρεψε. 535 00:25:31,150 --> 00:25:34,510 536 00:25:34,510 --> 00:25:37,810 Κάποιοι άλλοι που μπορεί να get-- 301, εγκαταστάθηκε μόνιμα? 537 00:25:37,810 --> 00:25:41,300 302 Βρέθηκαν? 304, Τροποποιημένο? 400, Bad Αίτημα? 538 00:25:41,300 --> 00:25:47,330 και στη συνέχεια Εσωτερικό σφάλμα διακομιστή για 500 και 503, Μη διαθέσιμη υπηρεσία. 539 00:25:47,330 --> 00:25:48,140 Ναί. 540 00:25:48,140 --> 00:25:51,490 >> Κοινό: Θα περιμέναμε να απομνημονεύει όλες αυτές τις καταστάσεις; 541 00:25:51,490 --> 00:25:53,739 ΜΑΡΙΑ ZLATKOVA: Θα ήθελα να έχω τους σχετικά με σκονάκι σας. 542 00:25:53,739 --> 00:25:55,146 [ΓΈΛΙΟ] 543 00:25:55,146 --> 00:25:59,954 Κοινό: Είμαστε αναμένεται να γνωρίζουν τι προκαλεί το κάθε ένα; 544 00:25:59,954 --> 00:26:00,995 ΜΑΡΙΑ ZLATKOVA: Είναι; 545 00:26:00,995 --> 00:26:03,870 ΧΑΝΑ Blumberg: Για αυτούς που έχουμε τρέξει into-- έτσι το ερώτημα was-- 546 00:26:03,870 --> 00:26:08,010 ΜΑΡΙΑ ZLATKOVA: Είναι αναμένεται να ξέρετε τι κάθε ένα από αυτά το καθεστώς 547 00:26:08,010 --> 00:26:09,330 κώδικες θα μπορούσε να προκληθεί από; 548 00:26:09,330 --> 00:26:13,240 Έτσι, για αυτά που έχουμε χρησιμοποιήσει και έτρεξε, θα έλεγα, ναι. 549 00:26:13,240 --> 00:26:16,610 Έτσι έχουμε δει σίγουρα 200 ΟΚ και να διδάξει το στο psets. 550 00:26:16,610 --> 00:26:19,071 Έχουμε δει 403, 404. 551 00:26:19,071 --> 00:26:20,550 Για άλλες είναι αυτές; 552 00:26:20,550 --> 00:26:22,690 >> ΧΑΝΑ Blumberg: Θα ήθελα δηλαδή 500 φαίνεται δίκαιο παιχνίδι. 553 00:26:22,690 --> 00:26:23,330 >> ΜΑΡΙΑ ZLATKOVA: 500, ναι. 554 00:26:23,330 --> 00:26:24,246 >> ΧΑΝΑ Μπλούμπεργκ: Ναι. 555 00:26:24,246 --> 00:26:27,006 Απλά ρίξτε μια γενική αίσθηση από ό, τι τους προκαλεί. 556 00:26:27,006 --> 00:26:28,880 Και επίσης μόνο από αυτά ονόματα, μπορείτε να το είδος του 557 00:26:28,880 --> 00:26:32,890 όπως κάνει μια εκπαιδευμένη εικασία ως σε ό, τι τους προκάλεσε πραγματικά. 558 00:26:32,890 --> 00:26:36,919 Για παράδειγμα, κινούνται μόνιμα, πιθανώς το αρχείο έχει μετακινηθεί μόνιμα. 559 00:26:36,919 --> 00:26:39,328 >> Κοινό: Αλλά σε μια προηγούμενη εξετάσεις, υπήρχε μια τόσο 560 00:26:39,328 --> 00:26:41,050 πώς περιμένουν από εμάς να απαντήσουμε αυτό; 561 00:26:41,050 --> 00:26:42,883 >> ΧΑΝΑ Blumberg: Ότι άξιζε μηδέν βαθμούς. 562 00:26:42,883 --> 00:26:45,870 Το ερώτημα σε 418 για την τσαγιέρα είναι τεχνικά ένα κατάστασης HTTP, 563 00:26:45,870 --> 00:26:47,090 αλλά ήταν αξίζει μηδέν βαθμούς. 564 00:26:47,090 --> 00:26:48,320 Προφανώς, δεν είστε αναμένεται να τους γνωρίζουν. 565 00:26:48,320 --> 00:26:49,670 >> Κοινό: Είναι ένα πραγματικό; 566 00:26:49,670 --> 00:26:51,970 >> ΧΑΝΑ Blumberg: Πρόκειται για μια πραγματική ένα, αλλά αυτό δεν σημαίνει τίποτα. 567 00:26:51,970 --> 00:26:52,700 Είναι απλά ένα αστείο. 568 00:26:52,700 --> 00:26:55,480 569 00:26:55,480 --> 00:26:57,010 Οι άνθρωποι στο Διαδίκτυο είναι αστείο. 570 00:26:57,010 --> 00:26:59,680 >> ΜΑΡΙΑ ZLATKOVA: Μεγάλη ερωτήσεις, παιδιά. 571 00:26:59,680 --> 00:27:01,452 Οποιεσδήποτε άλλες ερωτήσεις; 572 00:27:01,452 --> 00:27:04,891 >> Κοινό: Τι είναι το εσωτερικό σφάλμα διακομιστή; 573 00:27:04,891 --> 00:27:06,640 ΜΑΡΙΑ ZLATKOVA: Εσωτερική σφάλμα διακομιστή μόνο 574 00:27:06,640 --> 00:27:10,050 σημαίνει ότι έχετε ανίκανος να επικοινωνήσει 575 00:27:10,050 --> 00:27:13,400 με το διακομιστή για κάποιο λόγο. 576 00:27:13,400 --> 00:27:15,400 Έτσι δεν είναι κατ 'ανάγκην κάτι που έχει να κάνει 577 00:27:15,400 --> 00:27:19,170 με τον πελάτη ή κάτι τέτοιο. 578 00:27:19,170 --> 00:27:22,170 Δεν ξέρω από οποιοδήποτε συγκεκριμένο παράδειγμα ότι έχουμε πάει πάνω για να εξηγήσει, 579 00:27:22,170 --> 00:27:23,000 αλλά ναι. 580 00:27:23,000 --> 00:27:23,250 >> ΧΑΝΑ Μπλούμπεργκ: Σίγουρα. 581 00:27:23,250 --> 00:27:25,625 Έτσι, για παράδειγμα, όπως ας λέτε ότι εργάζονταν για mashup 582 00:27:25,625 --> 00:27:30,440 και ένα διακομιστή της Google πήγε κάτω για μερικά λόγο, μια διακοπή ρεύματος, ας πούμε. 583 00:27:30,440 --> 00:27:33,400 Αυτό θα ήταν ένας εσωτερικός διακομιστής σφάλμα ή κάποιο είδος που σας αρέσει of-- 584 00:27:33,400 --> 00:27:34,630 Δεν θα πάρετε μια απάντηση πίσω. 585 00:27:34,630 --> 00:27:35,260 >> ΜΑΡΙΑ ZLATKOVA: Ναι. 586 00:27:35,260 --> 00:27:37,050 Είναι ακριβώς όταν είστε ανίκανος να επικοινωνήσει 587 00:27:37,050 --> 00:27:40,299 με το διακομιστή για κάποιο λόγο επειδή από αυτό που πηγαίνει προς τα κάτω ή κάποιο άλλο λόγο. 588 00:27:40,299 --> 00:27:44,430 589 00:27:44,430 --> 00:27:47,690 Έτσι, το άλμα σε PHP. 590 00:27:47,690 --> 00:27:49,930 PHP, σε αντίθεση με HTML, είναι μια γλώσσα προγραμματισμού. 591 00:27:49,930 --> 00:27:54,820 Και άρχισαν να το χρησιμοποιούν επειδή είναι πολύ χρήσιμο για την ανάπτυξη Ιστού. 592 00:27:54,820 --> 00:27:56,940 >> Εμείς αυτό που χρησιμοποιείται για πρώτη φορά το CS50 Οικονομικών. 593 00:27:56,940 --> 00:28:02,240 Και αυτό ουσιαστικά μας βοηθάει να φέρει μαζί αυτό σήμανσης, ο σχεδιασμός, 594 00:28:02,240 --> 00:28:07,460 και πώς μπορούμε πραγματικά να χρησιμοποιούν πληροφορίες για να εμφανίσετε τα πράγματα σε μια ιστοσελίδα. 595 00:28:07,460 --> 00:28:11,870 Έτσι, η ίδια η PHP σημαίνει PHP Hypertext Preprocessor, 596 00:28:11,870 --> 00:28:15,360 γι 'αυτό είναι ένα αναδρομικό backnorym από μόνη της. 597 00:28:15,360 --> 00:28:22,330 Και το άνοιγμα ετικέτες για την PHP έχουμε το αριστερό και δεξιά βέλη με τα ερωτηματικά 598 00:28:22,330 --> 00:28:23,060 και php. 599 00:28:23,060 --> 00:28:25,890 >> Έτσι, έχουμε ήδη δει ένα σωρό από αυτό. 600 00:28:25,890 --> 00:28:29,150 Τώρα, είμαστε ακριβώς πρόκειται να πάει πέρα ​​από μερικά από τα βασικά πράγματα γι 'αυτό. 601 00:28:29,150 --> 00:28:32,280 Έτσι με την PHP, την μεταβλητή τα ονόματα αρχίζουν με το σύμβολο του δολαρίου. 602 00:28:32,280 --> 00:28:35,660 Εμείς δεν διευκρινίζουν, και πάλι, μια μεταβλητή τύπου πια. 603 00:28:35,660 --> 00:28:38,450 Ακριβώς όπως κάναμε με C, δεν χρειάζεται να το κάνουμε αυτό. 604 00:28:38,450 --> 00:28:41,670 605 00:28:41,670 --> 00:28:44,490 >> Μπορούμε να κάνουμε ένα σωρό διαφορετικές τα πράγματα με τις μεταβλητές. 606 00:28:44,490 --> 00:28:47,750 Μπορούμε να τα βάλει μαζί με συνένωση τους 607 00:28:47,750 --> 00:28:52,900 με τον συμβολισμό με την τελεία, η οποία δεν θα μπορούσαμε να κάνουμε σε C και πάλι. 608 00:28:52,900 --> 00:28:57,490 Και πάλι, έχουμε μια λίγο μεγαλύτερη ευελιξία με την PHP όσον αφορά τις μεταβλητές. 609 00:28:57,490 --> 00:29:00,080 Και πάλι, δεν έχουμε μια κύρια λειτουργία. 610 00:29:00,080 --> 00:29:03,370 >> Και PHP ερμηνεύεται σε αντίθεση με συγκεντρώνονται, 611 00:29:03,370 --> 00:29:09,970 Τόσο ακριβώς πώς θα έκανε για τα αρχεία C, δεν έχουμε να το κάνουμε αυτό για την PHP. 612 00:29:09,970 --> 00:29:15,440 Αλλά μάλλον, ο τρόπος που η γλώσσα διοικείται από μόνη της, ερμηνεύεται. 613 00:29:15,440 --> 00:29:18,550 Και τότε χαλαρά πληκτρολογήσει Σημαίνει απλώς ότι εμείς 614 00:29:18,550 --> 00:29:22,490 Δεν χρειάζεται να ορίσετε μια μεταβλητή τύπο και τη μεταβλητή είδη 615 00:29:22,490 --> 00:29:25,415 Τα κατανοητό κατά το χρόνο εκτέλεσης. 616 00:29:25,415 --> 00:29:29,185 >> Κοινό: Αλλά τι έκανες εννοούμε με τον όρο dot συνένωση; 617 00:29:29,185 --> 00:29:30,060 ΜΑΡΙΑ ZLATKOVA: Σίγουρα. 618 00:29:30,060 --> 00:29:37,660 Όταν θέλουμε να βάλουμε τα πράγματα together-- Έτσι, αν είχαμε κάποια μεταβλητή που 619 00:29:37,660 --> 00:29:41,500 είχε την τιμή 3 και είχαμε ένα άλλο μεταβλητή που είχε την τιμή της συμβολοσειράς, 620 00:29:41,500 --> 00:29:45,920 θα μπορούσε να θέσει τις μεταβλητές μαζί βάζοντας μια τελεία στο μεταξύ τους 621 00:29:45,920 --> 00:29:46,970 και να τους συνενώσει. 622 00:29:46,970 --> 00:29:52,670 Ή θα μπορούσαμε να δημιουργήσουμε μια μεταβλητή που ονομάζεται όνομα 623 00:29:52,670 --> 00:29:56,900 και το βάζουμε μαζί με συνένωση δύο χορδές. 624 00:29:56,900 --> 00:30:00,680 >> Έτσι, αν είχαμε μια σειρά σε δίκλινο εισαγωγικά και βάλτε μια τελεία μετά, 625 00:30:00,680 --> 00:30:03,660 και στη συνέχεια είχαμε ένα άλλο string, ότι θα δημιουργήσει μια σειρά εντελώς. 626 00:30:03,660 --> 00:30:05,242 >> Κοινό: OK. 627 00:30:05,242 --> 00:30:06,450 ΜΑΡΙΑ ΛΕΤΟΝΙΑ: Ήταν σαφής; 628 00:30:06,450 --> 00:30:07,099 Κοινό: Ναι. 629 00:30:07,099 --> 00:30:07,890 ΜΑΡΙΑ ZLATKOVA: OK. 630 00:30:07,890 --> 00:30:08,766 Ναί. 631 00:30:08,766 --> 00:30:11,146 >> Κοινό: Όταν λέτε ερμηνεύεται όχι καταρτίζονται, 632 00:30:11,146 --> 00:30:14,160 είναι αυτά που λες δεν το κάνετε Πρέπει να είστε όσο πιο συγκεκριμένοι όταν 633 00:30:14,160 --> 00:30:15,906 πρόκειται για την PHP έναντι C; 634 00:30:15,906 --> 00:30:18,085 635 00:30:18,085 --> 00:30:20,710 ΜΑΡΙΑ ZLATKOVA: Όταν λέμε ερμηνεύεται ως αντίθεση προς καταρτίζονται, 636 00:30:20,710 --> 00:30:21,850 Τι εννοούμε; 637 00:30:21,850 --> 00:30:26,220 Έτσι, αυτό σημαίνει ότι δεν χρειαζόμαστε εκτελέσιμα αρχεία για να τρέξει PHP. 638 00:30:26,220 --> 00:30:29,870 Αυτό σημαίνει ότι τρέχει όπως πάει. 639 00:30:29,870 --> 00:30:31,650 Βγάζει νόημα αυτό? 640 00:30:31,650 --> 00:30:32,495 Λίγο περισσότερο. 641 00:30:32,495 --> 00:30:34,620 ΧΑΝΑ Blumberg: Άρα μπορεί να σκεφτεί διερμηνέα 642 00:30:34,620 --> 00:30:38,980 ως ένα άλλο πρόγραμμα που είναι υπεύθυνο για να πάει γραμμή προς γραμμή μέσω της PHP 643 00:30:38,980 --> 00:30:42,745 και στην πραγματικότητα εκτέλεσης, σε αντίθεση με Για την κατάρτιση όλα κάτω σε δυαδικό. 644 00:30:42,745 --> 00:30:46,050 Αυτό δεν σημαίνει τίποτα στην πραγματικότητα σχετικά με το πώς συγκεκριμένες πρέπει να είμαστε. 645 00:30:46,050 --> 00:30:49,470 Θα πρέπει ακόμα να είναι ακριβείς, και δεν ξεχνάμε ερωτηματικό σας, και βεβαιωθείτε ότι 646 00:30:49,470 --> 00:30:51,470 Έχετε σύμβολο του δολαρίου σας, και τέτοια πράγματα. 647 00:30:51,470 --> 00:30:52,240 Καλή ερώτηση. 648 00:30:52,240 --> 00:30:53,115 >> ΜΑΡΙΑ ZLATKOVA: Ναι. 649 00:30:53,115 --> 00:30:55,590 Έτσι, γραμμή προς γραμμή, όπως σε αντίθεση με τα αρχεία με C, 650 00:30:55,590 --> 00:30:59,100 πρέπει να κάνουμε όλη την τελική πριν μπορούμε να τρέχουμε. 651 00:30:59,100 --> 00:31:00,360 Αυτή είναι η βασική διαφορά. 652 00:31:00,360 --> 00:31:02,655 Αλλά και πάλι, δεν μπορούμε να Πραγματικά είναι λιγότερο συγκεκριμένες. 653 00:31:02,655 --> 00:31:08,760 654 00:31:08,760 --> 00:31:13,950 Έτσι συστοιχίες στην PHP αντιπροσωπεύουν στην πραγματικότητα ένα διέταξε χάρτη. 655 00:31:13,950 --> 00:31:17,550 >> Έτσι συστοιχίες συνεργάτης τιμές στα πλήκτρα. 656 00:31:17,550 --> 00:31:23,350 Οι δύο τρόποι για να κρίνει την συστοιχία, με βάση αυτή τη σύνταξη, 657 00:31:23,350 --> 00:31:26,380 μπορούμε να είμαστε πιο σαφείς λέγοντας έχουμε μια σειρά 658 00:31:26,380 --> 00:31:31,010 και έχουμε αυτό το key1 που χαρτογραφείται Αυτό value1, key2 που χαρτογραφεί value2. 659 00:31:31,010 --> 00:31:34,660 Ή μπορούμε απλά να δημιουργήσετε έναν πίνακα που περιέχει η ίδια τις τιμές 660 00:31:34,660 --> 00:31:38,360 και στη συνέχεια τα πλήκτρα είναι κατανοητή με έναν τρόπο. 661 00:31:38,360 --> 00:31:40,000 Οποιεσδήποτε ερωτήσεις σχετικά με αυτό; 662 00:31:40,000 --> 00:31:42,500 >> Κοινό: Ποια θα ήταν τα κλειδιά είναι στο δεύτερο παράδειγμα; 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 >> ΜΑΡΙΑ ZLATKOVA: Για παράδειγμα, είναι ακριβώς τα κλειδιά σε αυτό δεν είναι απαραίτητο 667 00:31:55,780 --> 00:31:56,550 κανε τη διαφορα. 668 00:31:56,550 --> 00:32:01,720 Απλώς καθορίσει πώς μπορείτε να χρησιμοποιήσετε τις τιμές στο εσωτερικό του. 669 00:32:01,720 --> 00:32:08,660 Έτσι, αν είχαμε μια foreach βρόχο σε PHP που θα 670 00:32:08,660 --> 00:32:14,760 να μας επιτρέψει να περάσουν από όλες τις τιμές, μπορούμε να περάσουν από όλες τις αξίες, 671 00:32:14,760 --> 00:32:19,570 ακόμη και αν είχαμε ή δεν ορίζεται ένα ειδικό κλειδί μέσα στην περιοχή του 672 00:32:19,570 --> 00:32:20,820 προηγούμενη σύνταξη. 673 00:32:20,820 --> 00:32:23,460 >> Έτσι, ακόμη και με αυτό το είδος του πίνακα, θα μπορούσαμε ακόμα 674 00:32:23,460 --> 00:32:26,260 έχουν έναν βρόχο foreach ότι περνά από κάθε 675 00:32:26,260 --> 00:32:31,240 από τις τιμές του κλειδιού στον πίνακα. 676 00:32:31,240 --> 00:32:36,180 Έτσι, η σύνταξη ενός foreach βρόχου, ξεκινάμε με μια σειρά. 677 00:32:36,180 --> 00:32:38,720 678 00:32:38,720 --> 00:32:43,900 Αυτή η μεταβλητή $ ARR είναι πραγματική σειρά μας ότι ορίσαμε στην προηγούμενη διαφάνεια 679 00:32:43,900 --> 00:32:47,550 ως αξία που πηγαίνει κυριολεκτικά μέσω καθεμία από τις αξίες, 680 00:32:47,550 --> 00:32:50,122 ανεξάρτητα από το αν είχαμε ένα κλειδί ή όχι. 681 00:32:50,122 --> 00:32:53,080 Και τότε μπορούμε να κάνουμε κάτι με η αξία εσωτερικό του βρόχου foreach. 682 00:32:53,080 --> 00:32:57,730 Έτσι και πάλι, αν είχαμε μια σειρά όπως αυτή εδώ created-- 683 00:32:57,730 --> 00:33:03,270 έτσι έχουμε το κλειδί του foo και την αξία των μπαρ, το κλειδί του Baz και την αξία των qux-- 684 00:33:03,270 --> 00:33:09,730 μπορούμε να έχουμε έναν βρόχο foreach ότι περνά μέσα από τη συστοιχία ως βασική αξία 685 00:33:09,730 --> 00:33:11,900 και στη συνέχεια να κάνουμε κάτι με το κλειδί ή / και την αξία. 686 00:33:11,900 --> 00:33:15,980 Αλλά εμείς δεν πρέπει απαραίτητα να είναι πάντα Πρέπει να έχεις ένα foreach loops ότι 687 00:33:15,980 --> 00:33:19,410 περνά μέσα από τη συστοιχία ως βασικό χάρτη με την αξία. 688 00:33:19,410 --> 00:33:26,060 Μπορούμε να πάμε μέσω της foreach σειρά βρόχο ως αξία. 689 00:33:26,060 --> 00:33:28,990 >> ΧΑΝΑ Blumberg: Και νομίζω ότι Ήταν to-- ερώτησή σας, τι 690 00:33:28,990 --> 00:33:31,229 είναι ο τεκμαρτός δείκτης; 691 00:33:31,229 --> 00:33:31,895 Κοινό: Κάπως. 692 00:33:31,895 --> 00:33:32,240 ΜΑΡΙΑ ZLATKOVA: Αχ. 693 00:33:32,240 --> 00:33:33,406 ΧΑΝΑ Blumberg: Ναι, ναι. 694 00:33:33,406 --> 00:33:36,150 Έτσι, βασικά, αν δεν καθορίσετε ένα κλειδί, αυτό πρόκειται να είναι 01. 695 00:33:36,150 --> 00:33:37,140 >> ΜΑΡΙΑ ZLATKOVA: Ναι. 696 00:33:37,140 --> 00:33:41,718 Ακριβώς όπως και με C, είναι μηδέν αναπροσαρμόζονται, αν δεν ορίσετε ένα κλειδί. 697 00:33:41,718 --> 00:33:42,384 Κοινό: Συγνώμη. 698 00:33:42,384 --> 00:33:43,827 Θα μπορούσατε να δοκιμάσετε ομιλία λίγο πιο δυνατά; 699 00:33:43,827 --> 00:33:45,270 Είμαι έχοντας ένα μικρό κομμάτι της προβλήματα ακοής πάντα. 700 00:33:45,270 --> 00:33:46,478 >> ΜΑΡΙΑ ZLATKOVA: Λυπάμαι τόσο πολύ. 701 00:33:46,478 --> 00:33:48,439 Ναι φυσικά. 702 00:33:48,439 --> 00:33:50,230 Έτσι θέλετε να μου για να πάει πέρα ​​από αυτό πάλι; 703 00:33:50,230 --> 00:33:51,680 Ή είναι this-- 704 00:33:51,680 --> 00:33:54,930 Κοινό: Έτσι, με το προηγούμενο, αν slide-- θα μπορούσατε απλά να πάτε πίσω για ένα δευτερόλεπτο. 705 00:33:54,930 --> 00:33:57,313 ΜΑΡΙΑ ZLATKOVA: Φυσικά, συγνώμη. 706 00:33:57,313 --> 00:33:59,237 Κοινό: Έτσι, η δεύτερη συστοιχία εδώ δεν 707 00:33:59,237 --> 00:34:04,135 φαίνεται να έχει μια τιμή για να πληκτρολογήσετε, είδος [? αιτία. ?] 708 00:34:04,135 --> 00:34:05,343 ΜΑΡΙΑ ZLATKOVA: Σωστά. 709 00:34:05,343 --> 00:34:07,608 Κοινό: Και πώς αυτό το έργο όταν λέτε ότι είναι όλα ή τίποτα. 710 00:34:07,608 --> 00:34:08,969 Για μένα, που μοιάζει ένα [? foo;] ήδη. 711 00:34:08,969 --> 00:34:10,093 >> ΜΑΡΙΑ ZLATKOVA: Ναι, ναι. 712 00:34:10,093 --> 00:34:12,969 Έτσι και πάλι, αυτό είναι ένα παραγγείλει χάρτης με αυτή την έννοια 713 00:34:12,969 --> 00:34:15,639 ότι υπάρχουν κατανοητές, για παράδειγμα, οι δείκτες 714 00:34:15,639 --> 00:34:20,159 εδώ μπορεί να γίνει κατανοητή ως 0, 1, 2, 3. 715 00:34:20,159 --> 00:34:25,929 Και πάλι, αυτό είναι εκείνοι που έχουν ευρετήρια είναι ισοδύναμη μας 716 00:34:25,929 --> 00:34:28,980 έχουν κλειδιών χαρτογραφηθεί πάνω τιμές. 717 00:34:28,980 --> 00:34:34,710 Έτσι, αν το κλειδί μας ήταν 0-- συγγνώμη. 718 00:34:34,710 --> 00:34:36,524 >> ΧΑΝΑ Blumberg: Όχι, έχει υπάρξει αποδώσει εδώ. 719 00:34:36,524 --> 00:34:36,929 Είναι πραγματικά πολύ ωραίο. 720 00:34:36,929 --> 00:34:37,460 >> ΜΑΡΙΑ ZLATKOVA: Αυτό είναι μεγάλη. 721 00:34:37,460 --> 00:34:38,260 ΕΝΤΆΞΕΙ. 722 00:34:38,260 --> 00:34:49,489 Έτσι και πάλι, $ 0 ARR θα το κλειδί για την τιμή 1. 723 00:34:49,489 --> 00:34:51,138 0 θα είναι το κλειδί για την τιμή 1. 724 00:34:51,138 --> 00:34:51,971 Κοινό: Λυπάμαι. 725 00:34:51,971 --> 00:34:53,190 Είναι αόρατη. 726 00:34:53,190 --> 00:34:53,659 >> ΧΑΝΑ Blumberg: Εντάξει, ξέχνα. 727 00:34:53,659 --> 00:34:54,980 Κιμωλία ήταν μια κακή ιδέα. 728 00:34:54,980 --> 00:34:58,030 Το παίρνω πίσω. 729 00:34:58,030 --> 00:35:01,425 Μπορείτε να σκεφτείτε τα πλήκτρα ως 0 χάρτες με την τιμή 1. 730 00:35:01,425 --> 00:35:02,300 ΜΑΡΙΑ ZLATKOVA: Ναι. 731 00:35:02,300 --> 00:35:04,630 Έτσι, αυτό είναι 0, αυτό είναι 1, 2, 3. 732 00:35:04,630 --> 00:35:05,760 Αυτά μπορεί να είναι τα κλειδιά σας. 733 00:35:05,760 --> 00:35:10,020 Μπορείτε να σκεφτείτε τους as-- ναι. 734 00:35:10,020 --> 00:35:12,740 Έτσι, αντί να έχουν ρητή κλειδιά, από όπου και αν 735 00:35:12,740 --> 00:35:17,180 είδος νοούνται ως τα ευρετήρια ξεκινώντας από μηδέν. 736 00:35:17,180 --> 00:35:21,630 737 00:35:21,630 --> 00:35:24,820 Η κιμωλία δεν βοήθησε. 738 00:35:24,820 --> 00:35:25,722 Ναι. 739 00:35:25,722 --> 00:35:30,914 >> Κοινό: Για το βρόχο foreach, αν θέλαμε να δείτε το σαν αξία, 740 00:35:30,914 --> 00:35:33,245 θα ήταν απλώς αυτόματα ευρετήριο 0; 741 00:35:33,245 --> 00:35:34,120 ΜΑΡΙΑ ZLATKOVA: Ναι. 742 00:35:34,120 --> 00:35:35,745 Θα περάσουν από κάθε μια από τις αξίες. 743 00:35:35,745 --> 00:35:39,130 Κοινό: [δεν ακούγεται] ως 0 ή θα κάνει ότι ακριβώς 0; 744 00:35:39,130 --> 00:35:43,710 >> ΜΑΡΙΑ ZLATKOVA: Θα πρέπει δηλαδή ως σύμβολο του δολαρίου και, στη συνέχεια, 745 00:35:43,710 --> 00:35:46,266 μερικοί όνομα της μεταβλητής, αξία. 746 00:35:46,266 --> 00:35:47,182 Κοινό: [δεν ακούγεται]. 747 00:35:47,182 --> 00:35:50,048 748 00:35:50,048 --> 00:35:50,964 ΜΑΡΙΑ ZLATKOVA: Συγνώμη; 749 00:35:50,964 --> 00:35:52,839 Κοινό: Συγγνώμη, είμαι απλά προσπαθώ να θυμηθώ. 750 00:35:52,839 --> 00:35:57,190 Πώς θα το κάνουμε αυτό, αν μπορείτε να το κάνετε αυτόματα ευρετηρίαση είναι μόνο 0; 751 00:35:57,190 --> 00:36:00,780 >> ΜΑΡΙΑ ZLATKOVA: Λοιπόν, πώς θα το κάνουμε αυτό εάν δεν έχετε συγκεκριμένες βασικές ονόματα; 752 00:36:00,780 --> 00:36:01,710 >> Κοινό: Ναι. 753 00:36:01,710 --> 00:36:07,820 >> ΜΑΡΙΑ ZLATKOVA: Θα ακριβώς define-- μόνο να πω τον εαυτό σας ως κάποιο όνομα. 754 00:36:07,820 --> 00:36:17,950 Έτσι, στο psets σας, εσείς θα μπορούσε θυμηθείτε foreach $ γραμμή με $ σειρές, 755 00:36:17,950 --> 00:36:24,610 δημιουργήσαμε τον εαυτό μας αυτό το $ λέγοντας σειρά θέλουμε να περάσει σειρά από $ σειρές. 756 00:36:24,610 --> 00:36:28,360 Ακόμα κι αν δεν είχαμε Αυτή η ρητή $ σειρές που ορίζονται, 757 00:36:28,360 --> 00:36:31,990 θα μπορούσαμε να φύγουμε και να λένε ότι αυτό μπορεί να είναι το κλειδί μας, 758 00:36:31,990 --> 00:36:33,615 και μόλις περάσουν από κάθε μια από τις αξίες. 759 00:36:33,615 --> 00:36:37,295 760 00:36:37,295 --> 00:36:41,660 >> Κοινό: Έτσι είναι η αξία μια νέα μεταβλητή που δημιουργούμε για να αποθηκεύσετε [δεν ακούγεται]; 761 00:36:41,660 --> 00:36:46,820 762 00:36:46,820 --> 00:36:49,990 >> ΜΑΡΙΑ ZLATKOVA: Έτσι δεν είναι εγγενώς μια νέα μεταβλητή. 763 00:36:49,990 --> 00:37:00,310 Είναι μια μεταβλητή που αναφέρεται στην εντός της συστοιχίας σε καθένα από αυτά. 764 00:37:00,310 --> 00:37:02,060 ΧΑΝΑ Blumberg: Είναι ένα νέο όνομα μεταβλητής. 765 00:37:02,060 --> 00:37:04,018 ΜΑΡΙΑ ZLATKOVA: Ναι, είναι ένα νέο όνομα μεταβλητής, 766 00:37:04,018 --> 00:37:06,680 αλλά δεν είναι inherently-- ναι. 767 00:37:06,680 --> 00:37:08,950 Είναι απλά μια νέα μεταβλητή ότι μπορείτε να το κάνετε αυτό. 768 00:37:08,950 --> 00:37:12,680 Τόσο ακριβώς πώς το κάναμε $ γραμμή με $ σειρές, σειρές 769 00:37:12,680 --> 00:37:17,980 Ήταν μια νέα μεταβλητή όνομα που θα θα μπορούσε να δημιουργήσει σε βρόχο foreach μας. 770 00:37:17,980 --> 00:37:22,065 Δεν πρέπει να προϋπάρχουν πριν από αυτό. 771 00:37:22,065 --> 00:37:25,777 >> Κοινό: Θα μπορούσατε να πάτε μέσω του λογική για το καθένα, χρησιμοποιώντας το παράδειγμα εκεί; 772 00:37:25,777 --> 00:37:26,610 ΜΑΡΙΑ ZLATKOVA: Mhm. 773 00:37:26,610 --> 00:37:31,240 774 00:37:31,240 --> 00:37:32,080 Ω συγνώμη. 775 00:37:32,080 --> 00:37:33,780 Εδώ είναι το παράδειγμα. 776 00:37:33,780 --> 00:37:34,280 Σίγουρος. 777 00:37:34,280 --> 00:37:38,950 Έτσι, για κάθε array-- έτσι αυτό σημαίνει ότι πηγαίνω σε αυτήν την σειρά 778 00:37:38,950 --> 00:37:43,930 ως βασικό value-- ότι πρόκειται να περάσει μέσα από αυτή τη σειρά 779 00:37:43,930 --> 00:37:49,480 και το πρώτο πάει και να πάρει foo, ο κλειδί foo και το μπαρ αξία. 780 00:37:49,480 --> 00:37:51,570 Και στη συνέχεια για τη δεύτερη επανάληψη του βρόχου for, 781 00:37:51,570 --> 00:37:55,090 πρόκειται να περάσουν και να λάβει το κλειδί Baz και η QUX αξία. 782 00:37:55,090 --> 00:38:00,512 Και τότε μπορείτε να κάνετε κάτι με είτε από αυτούς ή και οι δύο από αυτούς. 783 00:38:00,512 --> 00:38:03,488 >> Κοινό: Έτσι, η ιδέα πίσω που έχει ένα σημείο-κλειδί για την τιμή, 784 00:38:03,488 --> 00:38:07,470 τι θα καταλήξετε πρόσβασης; 785 00:38:07,470 --> 00:38:10,680 >> ΜΑΡΙΑ ZLATKOVA: Ποια είναι η ιδέα έχουν ένα πλήκτρο που δείχνει στην αξία; 786 00:38:10,680 --> 00:38:16,400 Είναι ακριβώς μια άλλη σύμβαση, άλλο τρόπο που διέρχεται από τη συστοιχία 787 00:38:16,400 --> 00:38:22,600 και να είναι σε θέση να έχουν πρόσβαση, είτε η κλειδί ή την αξία ή και τα δύο και να τα χρησιμοποιήσουν. 788 00:38:22,600 --> 00:38:27,100 >> Κοινό: Ποιος είναι ο ρόλος του να διατάξει ότι η foreach εκτελείται σε; 789 00:38:27,100 --> 00:38:29,250 Έτσι, αν ήμασταν για να προσθέσετε στοιχεία στη συστοιχία αργότερα, 790 00:38:29,250 --> 00:38:32,140 Θα εκείνοι είναι οι πρώτοι κάλεσε στον πίνακα foreach, 791 00:38:32,140 --> 00:38:33,750 ή θα ήταν αργότερα; 792 00:38:33,750 --> 00:38:37,770 >> ΜΑΡΙΑ ZLATKOVA: Λοιπόν, τι είναι η διάταξη ότι η foreach 793 00:38:37,770 --> 00:38:39,210 βρόχος περνά μέσα από ένα πίνακα; 794 00:38:39,210 --> 00:38:42,220 Στη συνέχεια, μέσω του πρώτου στοιχείο για το τελευταίο στοιχείο, 795 00:38:42,220 --> 00:38:43,400 στο τελευταίο προστέθηκε στοιχείου. 796 00:38:43,400 --> 00:38:48,020 Αν προσθέσετε στοιχεία αργότερα, θα έκαναν να accessed-- τα πρώτα στοιχεία θα 797 00:38:48,020 --> 00:38:51,410 να προσεγγιστεί ως η πρώτη στοιχεία της συστοιχίας, 798 00:38:51,410 --> 00:38:57,620 και τότε θα περάσουν από κάθε μία από τα στοιχεία όπως το είδος της ordered-- 799 00:38:57,620 --> 00:39:02,930 όχι μια εντολή, αλλά ο τρόπος που έχουν τεθεί σε συστοιχία. 800 00:39:02,930 --> 00:39:06,855 >> Κοινό: Έτσι νέα στοιχεία προστίθενται αργότερα; 801 00:39:06,855 --> 00:39:10,680 Έτσι, από όπου και αν added-- θα είναι η τελευταίοι στην [? επανάληψη. ?] 802 00:39:10,680 --> 00:39:14,280 >> ΜΑΡΙΑ ZLATKOVA: Νέα στοιχεία can-- Βασικά, όταν προστίθενται νέα στοιχεία, 803 00:39:14,280 --> 00:39:16,520 είναι αυτοί προστίθενται στο τέλος της συστοιχίας; 804 00:39:16,520 --> 00:39:17,632 >> Κοινό: Ναι. 805 00:39:17,632 --> 00:39:18,840 ΜΑΡΙΑ ZLATKOVA: Έτσι πιστεύω. 806 00:39:18,840 --> 00:39:20,850 Ναί. 807 00:39:20,850 --> 00:39:24,330 Και στη συνέχεια, με το βρόχο foreach σας, αφού έχετε προσθέσει νέα στοιχεία 808 00:39:24,330 --> 00:39:26,790 και μπορείτε να πάτε μέσω αυτών, τα νέα στοιχεία που θα 809 00:39:26,790 --> 00:39:30,930 accessed-- είναι το νέο στοιχείο, αν είναι προστίθεται τελευταίο, θα προσεγγιστεί τελευταία. 810 00:39:30,930 --> 00:39:34,416 >> Κοινό: Μπορείς να δώσω ένα παράδειγμα του κάτι που θα [δεν ακούγεται] 811 00:39:34,416 --> 00:39:37,404 με κάτι με αξία όπως [δεν ακούγεται] ή της αξίας, 812 00:39:37,404 --> 00:39:38,910 όπως το πώς θέλετε να μορφοποιήσετε αυτό; 813 00:39:38,910 --> 00:39:39,785 >> ΜΑΡΙΑ ZLATKOVA: Σίγουρα. 814 00:39:39,785 --> 00:39:42,340 815 00:39:42,340 --> 00:39:46,410 Μπορώ να δώσω ένα παράδειγμα του τι θα κάνουμε με την τιμή; 816 00:39:46,410 --> 00:39:52,440 Λοιπόν, τι εσείς μπορεί να είναι εξοικειωμένος με είναι ότι έχουμε περάσει από μια σειρά 817 00:39:52,440 --> 00:39:55,380 και βασικά τυπωμένο κάθε ένα από τα στοιχεία, 818 00:39:55,380 --> 00:40:00,910 για παράδειγμα, ως μέρος μιας ταξινομημένη λίστα ή κάτι τέτοιο. 819 00:40:00,910 --> 00:40:02,674 Μήπως αυτό έχει νόημα ή θέλουμε to-- 820 00:40:02,674 --> 00:40:04,340 Κοινό: Μπορούμε να τυπώνει αυτές τις τιμές έξω; 821 00:40:04,340 --> 00:40:13,220 ΜΑΡΙΑ ZLATKOVA: Ναι, θα μπορούσαμε να εκτυπώσετε και τότε ουσιαστικά $ value διότι στο 822 00:40:13,220 --> 00:40:16,570 ότι συγκεκριμένη τιμή, θα είναι εκτύπωση του αξία μέσα από αυτό. 823 00:40:16,570 --> 00:40:20,150 Έτσι, αν ήμασταν στην πρώτη μας επανάληψη αυτό και εμείς τυπωμένο $ αξία, 824 00:40:20,150 --> 00:40:23,775 θα πρέπει να εκτυπώσετε μπαρ. 825 00:40:23,775 --> 00:40:27,020 >> Κοινό: Υπάρχουν υπάρχουν επίσης για βρόχων σε PHP ή απλά foreach loops; 826 00:40:27,020 --> 00:40:30,430 >> ΜΑΡΙΑ ZLATKOVA: Δεν υπάρχει Επίσης, για βρόχων σε PHP. 827 00:40:30,430 --> 00:40:33,399 Και η λογική τους είναι ως επί το πλείστον η ίδιο με αυτό που έχετε συνηθίσει. 828 00:40:33,399 --> 00:40:34,690 Κοινό: Έτσι η αξία του είναι μηδενική. 829 00:40:34,690 --> 00:40:35,090 ΜΑΡΙΑ ZLATKOVA: Είναι σαν τον ίδιο. 830 00:40:35,090 --> 00:40:35,590 Ναι. 831 00:40:35,590 --> 00:40:37,747 Κοινό: Είμαι ακριβώς πρόκειται να ρωτήσω. 832 00:40:37,747 --> 00:40:39,695 Έτσι, όταν δηλώνετε ένα σειρά, δεν χρειάζεστε 833 00:40:39,695 --> 00:40:42,617 να πω τι μέγεθος πρόκειται να είναι, πράγμα που σημαίνει ότι μπορείτε απλά 834 00:40:42,617 --> 00:40:44,417 προσθέσετε και να πάρει στοιχεία [δεν ακούγεται]. 835 00:40:44,417 --> 00:40:45,250 ΜΑΡΙΑ ZLATKOVA: Yup. 836 00:40:45,250 --> 00:40:45,750 Ναι. 837 00:40:45,750 --> 00:40:46,251 Ακριβώς. 838 00:40:46,251 --> 00:40:48,875 Όταν δηλώνουμε έναν πίνακα, μπορούμε Δεν χρειάζεται να πω τι μέγεθος είναι, 839 00:40:48,875 --> 00:40:51,022 έτσι μπορούμε να προσθέσουμε απλά στοιχεία σε αυτό αργότερα, καθώς και. 840 00:40:51,022 --> 00:40:55,075 841 00:40:55,075 --> 00:40:55,700 Περισσότερες ερωτήσεις; 842 00:40:55,700 --> 00:40:59,870 843 00:40:59,870 --> 00:41:05,950 Έτσι, φέρνοντας PHP και HTML μαζί, τι έχουμε seen-- καλά, 844 00:41:05,950 --> 00:41:15,130 για παράδειγμα, σε αυτό το παράδειγμα, έχουμε μια φόρμα HTML που έχει ένα πεδίο εισαγωγής. 845 00:41:15,130 --> 00:41:18,830 >> Και το πεδίο εισαγωγής είναι απλά το όνομά και στη συνέχεια θα έχει ένα κουμπί Υποβολή. 846 00:41:18,830 --> 00:41:26,040 Και όταν πατήσετε το κουμπί Υποβολή κουμπί, στο αρχείο hello.php μας, 847 00:41:26,040 --> 00:41:32,130 επειδή η μέθοδος για τη μορφή είναι πάρει, μπορούμε να έχουμε πρόσβαση ό, τι είναι στο όνομά 848 00:41:32,130 --> 00:41:40,360 από αυτό να πάρει την παγκόσμια μεταβλητή που is-- τη σύνταξη για να είναι $ _GET. 849 00:41:40,360 --> 00:41:44,520 Και τότε θα μπορούν να έχουν πρόσβαση, ανεξάρτητα από το είσοδο του χρήστη στο εσωτερικό του εν λόγω εντύπου για το όνομα 850 00:41:44,520 --> 00:41:47,410 καθορίζοντας το όνομα του εν λόγω τομέα. 851 00:41:47,410 --> 00:41:51,480 852 00:41:51,480 --> 00:41:55,060 >> Οποιεσδήποτε άλλες ερωτήσεις ή οποιαδήποτε ερωτήσεις σχετικά με αυτό το συγκεκριμένο παράδειγμα; 853 00:41:55,060 --> 00:41:58,275 >> Κοινό: Πού είναι η PHP; 854 00:41:58,275 --> 00:41:59,150 ΜΑΡΙΑ ZLATKOVA: Εδώ. 855 00:41:59,150 --> 00:42:01,150 Έτσι, αυτό είναι το άνοιγμα ετικέτα μας για την PHP. 856 00:42:01,150 --> 00:42:01,530 >> Κοινό: Σωστά. 857 00:42:01,530 --> 00:42:02,363 >> ΜΑΡΙΑ ZLATKOVA: Ναι. 858 00:42:02,363 --> 00:42:05,320 859 00:42:05,320 --> 00:42:09,609 >> ΧΑΝΑ Μπλούμπεργκ: Η = είναι στενογραφία γι 'αυτό είναι η PHP και μόνο ηχώ. 860 00:42:09,609 --> 00:42:10,150 Κοινό: Αχ. 861 00:42:10,150 --> 00:42:10,720 ΜΑΡΙΑ ZLATKOVA: Ναι, συγγνώμη. 862 00:42:10,720 --> 00:42:12,040 Θα έπρεπε να είχα γίνει σαφές. 863 00:42:12,040 --> 00:42:13,759 >> ΧΑΝΑ Μπλούμπεργκ: Εκτύπωση. 864 00:42:13,759 --> 00:42:16,800 ΜΑΡΙΑ ZLATKOVA: Είναι απλά η λειτουργία ότι μας επιτρέπει να εκτυπώσετε κάτι. 865 00:42:16,800 --> 00:42:19,795 866 00:42:19,795 --> 00:42:20,420 Μεγάλη ερώτηση. 867 00:42:20,420 --> 00:42:24,140 868 00:42:24,140 --> 00:42:25,495 Έτσι going-- ναι. 869 00:42:25,495 --> 00:42:31,940 >> Κοινό: Υπάρχει πρόκειται να είναι αρκετά ένα κομμάτι της κωδικοποίησης χέρι της PHP και HTML 870 00:42:31,940 --> 00:42:33,450 σε ένα κουίζ 1; 871 00:42:33,450 --> 00:42:36,310 872 00:42:36,310 --> 00:42:38,810 ΜΑΡΙΑ ZLATKOVA: Δεν μπορεί να υπάρξει μια δίκαιη ποσό της διερμηνείας 873 00:42:38,810 --> 00:42:43,330 της PHP και HTML, όχι κατ 'ανάγκην σαν ένα τεράστιο ποσό της κωδικοποίησης, 874 00:42:43,330 --> 00:42:46,960 αν και ίσως χρειαστεί να γράψετε ένα βρόχου foreach, όμως, ένα για το βρόχο. 875 00:42:46,960 --> 00:42:49,790 Οποιαδήποτε από τις θηλιές ότι εμείς καλύψει εδώ είναι δίκαιο παιχνίδι. 876 00:42:49,790 --> 00:42:51,889 Και αυτό είναι ως επί το πλείστον. 877 00:42:51,889 --> 00:42:53,430 ΧΑΝΑ Blumberg: Θα ήθελα να είναι προετοιμασμένοι. 878 00:42:53,430 --> 00:42:57,010 Με τον ίδιο τρόπο που σας ζητήσαμε να γράψετε μια δέσμη των λειτουργιών C σε ένα κουίζ 0, 879 00:42:57,010 --> 00:42:59,766 Θα ήμουν διατεθειμένη να πράξει το ίδια σε PHP και JavaScript. 880 00:42:59,766 --> 00:43:00,640 ΜΑΡΙΑ ZLATKOVA: Ναι. 881 00:43:00,640 --> 00:43:03,210 ΧΑΝΑ Blumberg: Θα έλεγα α little-- όπως δεν είμαστε 882 00:43:03,210 --> 00:43:06,251 πρόκειται να σας κάνει να γράψετε ένα τεράστιο HTML σελίδα μόνο και μόνο επειδή αυτό είναι ένα μικρό κομμάτι 883 00:43:06,251 --> 00:43:08,240 κουραστικό, αλλά μπορεί να έχετε μέρη. 884 00:43:08,240 --> 00:43:09,310 Αυτό είναι εντελώς δίκαιο παιχνίδι. 885 00:43:09,310 --> 00:43:11,082 Όπως μικρές σελίδα HTML, εντελώς δίκαιες. 886 00:43:11,082 --> 00:43:11,623 Κοινό: OK. 887 00:43:11,623 --> 00:43:13,814 Τι θα λέγατε σε JavaScript, καθώς; 888 00:43:13,814 --> 00:43:14,730 ΧΑΝΑ Μπλούμπεργκ: Ναι. 889 00:43:14,730 --> 00:43:15,250 Δίκαιη παιχνίδι της Javascript. 890 00:43:15,250 --> 00:43:15,635 >> ΜΑΡΙΑ ZLATKOVA: Ναι. 891 00:43:15,635 --> 00:43:16,801 Αυτό είναι απολύτως δίκαιο παιχνίδι. 892 00:43:16,801 --> 00:43:19,280 ΧΑΝΑ Blumberg: Θα πάρετε με αυτή, όπως 10 λεπτών. 893 00:43:19,280 --> 00:43:23,750 >> ΜΑΡΙΑ ZLATKOVA: SQL, και πάλι, Structured Query Language. 894 00:43:23,750 --> 00:43:28,651 Βασικά μας επιτρέπει να διαχειρίζεστε τα δεδομένα σε ένα διαχείρισης σχεσιακών βάσεων δεδομένων 895 00:43:28,651 --> 00:43:29,150 σύστημα. 896 00:43:29,150 --> 00:43:31,149 Αυτό σημαίνει απλά βασικά ότι έχουμε κάπου 897 00:43:31,149 --> 00:43:37,980 για να αποθηκεύσετε κάποια στοιχεία που θα μπορούσαμε να θέλουμε να χρησιμοποιήσετε σε μια ιστοσελίδα ή σε κάποια άλλη μορφή. 898 00:43:37,980 --> 00:43:42,190 Και τότε θα πρέπει να πάρετε ερωτήματα πληροφορίες από τη βάση δεδομένων μας, 899 00:43:42,190 --> 00:43:44,320 ή για να εισάγετε πληροφορίες σε αυτά. 900 00:43:44,320 --> 00:43:47,560 Ένα μεγάλο μέρος της κοινής ones-- ΕΝΗΜΕΡΩΣΗ, INSERT, SELECT, και DELETE. 901 00:43:47,560 --> 00:43:50,790 >> Έτσι, για την ενημέρωση, αυτή είναι η σύνταξη για την ενημέρωση των δεδομένων σε μια βάση δεδομένων. 902 00:43:50,790 --> 00:43:53,330 903 00:43:53,330 --> 00:43:57,340 Ενημέρωση αυτόν τον πίνακα που ονομάζεται τραπέζι λέγοντας SET, 904 00:43:57,340 --> 00:44:04,170 μπορούμε να ορίσουμε κάποιες τιμές σε όλα γραμμές για ίση κάτι άλλο. 905 00:44:04,170 --> 00:44:09,410 Έτσι, μπορούμε επίσης να προσδιοριστούν ορισμένοι ειδικοί καταχωρήσεις που θέλουμε να τροποποιήσετε 906 00:44:09,410 --> 00:44:11,240 και ότι μπορεί να είναι όπου είναι. 907 00:44:11,240 --> 00:44:16,380 Και μπορούμε να καθορίσουμε ότι θέλουμε μόνο να τροποποιήσει ορισμένες γραμμές όπου βρίσκεται το σπίτι για, 908 00:44:16,380 --> 00:44:19,830 αν είχαμε ένα τραπέζι των μαθητών και όλοι οι μαθητές είχαν σπίτι, 909 00:44:19,830 --> 00:44:24,890 γι 'αυτό θα τροποποιήσει μόνο κάποιες τιμές όπου ένα σπίτι ισούται Currier, 910 00:44:24,890 --> 00:44:25,430 για παράδειγμα. 911 00:44:25,430 --> 00:44:29,120 912 00:44:29,120 --> 00:44:31,800 >> Για INSERT, μπορούμε να εισάγουμε ορισμένες τιμές σε έναν πίνακα. 913 00:44:31,800 --> 00:44:35,150 Έτσι, εισάγετε στο τραπέζι, και τότε οι τιμές, 914 00:44:35,150 --> 00:44:39,080 και στη συνέχεια σε παρενθέσεις, ορίζουμε οποία οι τιμές που θέλετε να εισαγάγετε. 915 00:44:39,080 --> 00:44:43,220 Έτσι, εισάγετε στο τραπέζι, και Στ1 COL2, η τιμή είναι VAL1 και Val2. 916 00:44:43,220 --> 00:44:48,930 Έτσι, αυτό εισάγει ουσιαστικά μια νέα γραμμή σε ένας πίνακας που περιέχει τις τιμές 1 και 2 917 00:44:48,930 --> 00:44:50,850 κάτω από τις στήλες 1 και 2. 918 00:44:50,850 --> 00:44:54,760 >> Και μετά θα πάμε για να πάει πέρα ​​από ένα γρήγορο παράδειγμα του πώς αυτό φαίνεται 919 00:44:54,760 --> 00:44:56,310 όπως και στην βάση δεδομένων μας λίγο. 920 00:44:56,310 --> 00:44:58,685 Αλλά αυτό το τελικό ερώτημα που έχω ότι θα πάμε για να πάει πάνω, 921 00:44:58,685 --> 00:45:01,450 SELECT, μας επιτρέπει μόνο για να επιλέξετε δεδομένα από έναν πίνακα 922 00:45:01,450 --> 00:45:03,080 πιθανώς να το χρησιμοποιήσετε αργότερα. 923 00:45:03,080 --> 00:45:05,830 Και ο τρόπος που το κάνουμε αυτό είναι ότι απλά να το αποθηκεύσετε σε κάποια μεταβλητή. 924 00:45:05,830 --> 00:45:07,780 Και τότε μπορούμε ίσως να το χρησιμοποιήσετε ξανά. 925 00:45:07,780 --> 00:45:10,260 >> Έτσι, επιλέξτε αστέρι σημαίνει επιλέξετε όλα. 926 00:45:10,260 --> 00:45:13,280 Αυτό είναι μόνο ένα στενογραφία για την επιλογή όλων. 927 00:45:13,280 --> 00:45:19,760 ΑΠΟ τραπέζι όπου, ψάχνουμε για ορισμένες ειδικές συνθήκες, 928 00:45:19,760 --> 00:45:22,290 Έτσι, όταν στήλη ισούται με κάτι, για παράδειγμα. 929 00:45:22,290 --> 00:45:24,410 Αν θέλαμε απλώς να επιλέξτε όλα από τον πίνακα, 930 00:45:24,410 --> 00:45:28,400 Αυτό επιλέγει μόνο όλες τις στήλες και όλες οι σειρές από έναν πίνακα. 931 00:45:28,400 --> 00:45:32,040 >> Και τότε Διαγραφή από το τραπέζι ΕΦΟΣΟΝ στήλη ισούται με κάτι, 932 00:45:32,040 --> 00:45:36,440 Η επιλογή αυτή διαγράφει μόνο μερικά σειρά από το τραπέζι μας 933 00:45:36,440 --> 00:45:38,860 όπου έχουμε κάποιες συγκεκριμένες προϋποθέσεις. 934 00:45:38,860 --> 00:45:41,870 Στην περίπτωση αυτή, οι συνθήκες είναι στήλη ισούται με κάτι. 935 00:45:41,870 --> 00:45:43,460 Έτσι απλά ένα γρήγορο παράδειγμα. 936 00:45:43,460 --> 00:45:49,100 Αν έχουμε αυτό το τραπέζι εδώ και εμείς τοποθετήστε την σε έναν πίνακα, οι τιμές αυτές, 937 00:45:49,100 --> 00:45:50,400 ότι θα εισάγει μια νέα γραμμή. 938 00:45:50,400 --> 00:45:56,380 Και αν είχαμε την αυτόματη αύξηση, αυτό θα μόλις αυξήσετε μας ταυτότητας 0-1 2 κατά. 939 00:45:56,380 --> 00:46:00,010 >> Αν έχουμε επιλέξει όλα από τους μαθητές του, επιστρέφει ακριβώς όλα τα πεδία και όλες τις γραμμές. 940 00:46:00,010 --> 00:46:02,430 Σε περίπτωση που το έτος είναι μεγαλύτερη από ή ίσο με 2,016, 941 00:46:02,430 --> 00:46:04,390 ότι θα επέστρεφε μόνο Χάνα και τον εαυτό μου. 942 00:46:04,390 --> 00:46:08,360 Και στη συνέχεια, αν εμείς απλά επιλεγεί id χρόνο και χρόνο από τους μαθητές 943 00:46:08,360 --> 00:46:11,710 όπου το σπίτι είναι Cabot Σπίτι, ότι θα, και πάλι, την επιστροφή Hannah και τον εαυτό μου. 944 00:46:11,710 --> 00:46:14,430 >> Στη συνέχεια, αν διαγραφούν από τους φοιτητές όπου name είναι ίση με τον Rob, 945 00:46:14,430 --> 00:46:16,760 ότι θα διαγράψετε ολόκληρη τη γραμμή. 946 00:46:16,760 --> 00:46:19,696 Και τότε, αν ορίσουμε τον όνομα, φοιτητές ΕΝΗΜΕΡΩΣΗ 947 00:46:19,696 --> 00:46:21,570 Ρυθμίστε το όνομα ισοδυναμεί με Daven Όπου το σπίτι είναι ίση 948 00:46:21,570 --> 00:46:27,010 Cabot Σπίτι, ότι πρόκειται να πάει στο αυτές οι γραμμές και στη συνέχεια να ενημερώσετε το όνομα. 949 00:46:27,010 --> 00:46:31,470 >> Και στη συνέχεια μερικά είδη δεδομένων SQL είναι ΧΑΡ, VARCHAR, INT, και FLOAT. 950 00:46:31,470 --> 00:46:32,760 Αυτά είναι δίκαιο παιχνίδι. 951 00:46:32,760 --> 00:46:36,740 Θα ήθελα να πάω ξανά και βεβαιωθείτε ότι γνωρίζετε 952 00:46:36,740 --> 00:46:40,930 και να έχετε στο σκονάκι σας, τι κάθε ένα από αυτούς τους χαρακτήρες 953 00:46:40,930 --> 00:46:44,140 έχουν χρησιμοποιηθεί για, τι που τα χρησιμοποιούσαν για psets σας, 954 00:46:44,140 --> 00:46:48,050 και βεβαιωθείτε ότι είστε εξοικειωμένοι και άνετα με την κατοχή να επιλέξετε 955 00:46:48,050 --> 00:46:51,450 από διαφορετικούς τύπους δεδομένων με το chipset σας. 956 00:46:51,450 --> 00:46:51,950 Ναί. 957 00:46:51,950 --> 00:46:54,300 >> Κοινό: Τι ήταν αυτό πίνακα αποθηκεύονται; 958 00:46:54,300 --> 00:46:57,119 Ναι, όπου ο πίνακας αυτός αποθηκεύεται; 959 00:46:57,119 --> 00:46:59,160 ΜΑΡΙΑ ZLATKOVA: Λοιπόν, αυτή τη στιγμή, δεν είναι αποθηκευμένα. 960 00:46:59,160 --> 00:47:00,700 Τέλος πάντων, όπου ο πίνακας αυτός αποθηκεύεται; 961 00:47:00,700 --> 00:47:04,503 Αλλά μπορεί να αποθηκευτεί σε μια βάση δεδομένων SQL. 962 00:47:04,503 --> 00:47:07,330 >> Κοινό: Και πού είναι η βάση δεδομένων SQL; 963 00:47:07,330 --> 00:47:11,200 Στον υπολογιστή, σε απευθείας σύνδεση κάπου, ο διακομιστής; 964 00:47:11,200 --> 00:47:15,000 >> ΜΑΡΙΑ ZLATKOVA: Μπορεί να είναι μια πολλά διαφορετικά πράγματα. 965 00:47:15,000 --> 00:47:19,690 >> ΧΑΝΑ Blumberg: Έχουμε διασυνδεθεί με SQL πίνακες ως επί το πλείστον με το phpMyAdmin. 966 00:47:19,690 --> 00:47:22,060 Έτσι, θα μπορούσαμε να ζητήσουμε ένα διακομιστή την αποθήκευσή τους για εμάς. 967 00:47:22,060 --> 00:47:23,830 Θα μπορούσαμε να τα αποθηκεύσετε στον δικό μας υπολογιστή. 968 00:47:23,830 --> 00:47:27,950 >> ΜΑΡΙΑ ZLATKOVA: Εξαρτάται μόνο πώς θέλετε να το κάνετε για τον εαυτό σας. 969 00:47:27,950 --> 00:47:30,075 Αλλά έχουμε την αποθήκευση τους, όπως αναφέρθηκε Χάνα, 970 00:47:30,075 --> 00:47:31,755 σχετικά με το phpMyAdmin, η οποία είναι σε απευθείας σύνδεση. 971 00:47:31,755 --> 00:47:36,550 972 00:47:36,550 --> 00:47:39,280 Και τότε ο τρόπος που χρησιμοποιούμε PHP και SQL, τα αποθηκεύουμε 973 00:47:39,280 --> 00:47:43,450 σε κάποια μεταβλητή τι έχουμε ερωτηθούν για. 974 00:47:43,450 --> 00:47:48,370 >> Έτσι, αν επιλέξετε όλα τα από την ιστορία όπου user_id ισούται με το αναγνωριστικό περιόδου, 975 00:47:48,370 --> 00:47:53,900 ότι θα επιλέξετε όλες τις σειρές για το συγκεκριμένο άτομο που 976 00:47:53,900 --> 00:47:58,327 καταγράφεται από την ιστορία τραπέζι και να τα ταξινομήσετε σε σειρές. 977 00:47:58,327 --> 00:48:00,410 Ένα δροσερό πράγμα που πρέπει να ξέρετε είναι ότι η λειτουργία του ερωτήματος CS50 978 00:48:00,410 --> 00:48:02,180 προστατεύει από ετικέτες SQL ένεση. 979 00:48:02,180 --> 00:48:07,420 Αυτό σημαίνει απλά ότι κάνει σίγουρα η είσοδος που έχει εισαχθεί είναι σωστή 980 00:48:07,420 --> 00:48:09,920 και ότι το πρόσωπο που εισέρχεται στην είσοδο 981 00:48:09,920 --> 00:48:15,100 δεν προσπαθεί να εισάγει κάποια κακόβουλα Κωδικός είτε να πέσει στο τραπέζι μας 982 00:48:15,100 --> 00:48:17,305 ή να διαγράψει τα πάντα στο εσωτερικό της βάσης δεδομένων μας. 983 00:48:17,305 --> 00:48:20,060 984 00:48:20,060 --> 00:48:23,400 >> Μια γρήγορη επισκόπηση των Μοντέλο Προβολή ελεγκτή μοντέλο, 985 00:48:23,400 --> 00:48:27,360 είναι απλά ένας τρόπος οργάνωσης και σκεφτόμαστε κώδικα. 986 00:48:27,360 --> 00:48:29,100 Είναι και πάλι, ένα παράδειγμα σχεδιασμού. 987 00:48:29,100 --> 00:48:33,380 Αυτό σημαίνει ότι εμείς can-- και καλή πρακτική 988 00:48:33,380 --> 00:48:37,790 για το διαχωρισμό διαφόρων τμημάτων του κώδικα μας και ό, τι 989 00:48:37,790 --> 00:48:40,530 τον έλεγχο σε αυτά τα τρία παραδείγματα. 990 00:48:40,530 --> 00:48:46,700 >> Έτσι, η άποψή μας είναι τις περισσότερες φορές μας προτύπων, τη διάταξη, ο τρόπος 991 00:48:46,700 --> 00:48:48,260 ότι θέτουμε το πώς κωδικό μας κοιτάζει. 992 00:48:48,260 --> 00:48:55,190 Αυτό είναι ως επί το πλείστον CSS αρχεία μας και ο τρόπος ότι ορίσαμε το σχεδιασμό μας κώδικα, 993 00:48:55,190 --> 00:48:55,710 βασικά. 994 00:48:55,710 --> 00:48:59,280 Ελεγκτής μας είναι ως επί το πλείστον, τι έχουμε κάνει με τα αρχεία PHP. 995 00:48:59,280 --> 00:49:03,030 Έτσι και πάλι, σε συνεργασία με το πληροφορίες που έχουμε 996 00:49:03,030 --> 00:49:06,700 και ορίζοντας τον τρόπο αυτό πληροφορίες χρησιμοποιούνται, 997 00:49:06,700 --> 00:49:10,660 και στη συνέχεια περνά αυτές τις πληροφορίες είτε πάνω στην όψη ή το μοντέλο. 998 00:49:10,660 --> 00:49:13,880 Και το μοντέλο, ο τρόπος που έχουμε έχει χρησιμοποιείτε είναι έχει τη βάση δεδομένων μας, 999 00:49:13,880 --> 00:49:17,510 Έτσι, όταν οι πληροφορίες μας είναι αποθηκεύονται έτσι ώστε να έχει κάπου 1000 00:49:17,510 --> 00:49:21,490 να ζήσουν, και οποιοδήποτε από τα κώδικα που σχετίζεται με τον τρόπο 1001 00:49:21,490 --> 00:49:25,410 ότι έχουμε αυτές τις πληροφορίες ή την τρόπο που θα επικαιροποιεί τις πληροφορίες αυτές. 1002 00:49:25,410 --> 00:49:28,940 1003 00:49:28,940 --> 00:49:33,200 >> Έτσι στο μοντέλο MVC, HTTP Οι αιτήσεις που αποστέλλονται σε έναν web server. 1004 00:49:33,200 --> 00:49:36,220 Στη συνέχεια, οι ερμηνεύει ελεγκτής το αίτημα του χρήστη 1005 00:49:36,220 --> 00:49:38,260 και στη συνέχεια επικυρώνει την είσοδο του χρήστη. 1006 00:49:38,260 --> 00:49:41,580 Είναι προαιρετικό να έχουμε ο ελεγκτής επικοινωνούν 1007 00:49:41,580 --> 00:49:44,000 με ένα μοντέλο, οπότε κάτι σαν βάση δεδομένων μας 1008 00:49:44,000 --> 00:49:47,500 ή κάποια άλλη λειτουργικότητα ότι αναμεταδίδει πληροφορίες. 1009 00:49:47,500 --> 00:49:50,340 Και τελικά, ο ελεγκτής περνά στοιχεία στην προβολή 1010 00:49:50,340 --> 00:49:52,090 έτσι ώστε να μπορεί να είναι παρέχονται και ότι μπορεί να 1011 00:49:52,090 --> 00:49:55,860 γίνονται ορατά σε οποιοδήποτε πρόσωπο την πρόσβαση στην ιστοσελίδα. 1012 00:49:55,860 --> 00:49:58,440 1013 00:49:58,440 --> 00:50:01,340 >> Καμιά ερώτηση? 1014 00:50:01,340 --> 00:50:01,840 Φοβερός. 1015 00:50:01,840 --> 00:50:04,530 1016 00:50:04,530 --> 00:50:08,469 Έτσι και πάλι, το μοντέλο, η λειτουργία του, και πάλι, 1017 00:50:08,469 --> 00:50:11,260 Είναι επίμονη αποθήκευση των πληροφοριών, τη διαχείριση και την οργάνωση των δεδομένων. 1018 00:50:11,260 --> 00:50:13,890 Και ό, τι έχουμε δει μέχρι τώρα είναι η βάση δεδομένων MySQL 1019 00:50:13,890 --> 00:50:16,200 και όλα τα αρχεία δεδομένων που μπορεί να χρησιμοποιήσει. 1020 00:50:16,200 --> 00:50:20,580 >> Δείτε την παρουσίαση των πληροφοριών σε ο χρήστης, ο ΚΠΕ, ή διεπαφή χρήστη. 1021 00:50:20,580 --> 00:50:22,350 Και το παράδειγμα αυτό είναι HTML. 1022 00:50:22,350 --> 00:50:23,950 Και τότε θα μπορούσαμε να έχουμε την ελάχιστη PHP. 1023 00:50:23,950 --> 00:50:28,360 Έτσι, ένα για το βρόχο που επαναλαμβάνεται πάνω από τα δεδομένα που εκτυπώνονται από 1024 00:50:28,360 --> 00:50:30,720 αποτελεί μέρος της άποψης, όπως σε αντίθεση με τον ελεγκτή. 1025 00:50:30,720 --> 00:50:35,660 Και τότε πολλά αρχεία PHP μας εμπίπτουν στην κατηγορία ελεγκτή. 1026 00:50:35,660 --> 00:50:38,410 Χειρίζεται δίκαιων αιτημάτων των χρηστών και παίρνει πληροφορίες από το μοντέλο. 1027 00:50:38,410 --> 00:50:42,880 1028 00:50:42,880 --> 00:50:45,590 >> Άλμα στο έγγραφο Object Model, αυτό ακριβώς 1029 00:50:45,590 --> 00:50:47,700 αναφέρεται στον τρόπο HTML Τα έγγραφα οργανώνονται. 1030 00:50:47,700 --> 00:50:51,600 Και είναι οργανωμένα σε ένα δέντρο δομή που έχει μια ιεραρχία. 1031 00:50:51,600 --> 00:50:56,720 Έτσι, αν έχουμε πρόσβαση σε [δεν ακούγεται] αναπαράσταση του εγγράφου, 1032 00:50:56,720 --> 00:51:02,750 μπορούμε να εργαστούμε με το έγγραφο, όπως χειριζόμαστε αντικείμενα βασικά. 1033 00:51:02,750 --> 00:51:06,630 >> Και για να γίνει αυτή η λίγο πιο σαφής, όταν 1034 00:51:06,630 --> 00:51:10,540 έχουμε πολλά μας διαφορετικές ετικέτες απαντήσετε 1035 00:51:10,540 --> 00:51:12,590 με διαφορετικές διαδρομές στο δέντρο μας. 1036 00:51:12,590 --> 00:51:17,070 Και στη συνέχεια για αυτό το παράδειγμα, έχουμε έχουν το βασικό κόμβο εγγράφου. 1037 00:51:17,070 --> 00:51:20,010 Έχουμε, λοιπόν, ο κόμβος HTML μας ότι χωρίζεται σε κεφάλι και το σώμα. 1038 00:51:20,010 --> 00:51:22,810 Επικεφαλής έχει τον τίτλο και, στη συνέχεια, τίτλος περιέχει Γεια σου, κόσμε. 1039 00:51:22,810 --> 00:51:24,860 Και το σώμα μας περιέχει μόνο γειά σου, τον κόσμο, καθώς και. 1040 00:51:24,860 --> 00:51:28,700 1041 00:51:28,700 --> 00:51:31,900 >> Έτσι, οποιεσδήποτε ερωτήσεις σχετικά με οποιοδήποτε από τα πράγματα που καλύψαμε μέχρι τώρα; 1042 00:51:31,900 --> 00:51:35,891 Και αν όχι, θα Χάνα αναλάβει με JavaScript. 1043 00:51:35,891 --> 00:51:36,390 Φοβερός. 1044 00:51:36,390 --> 00:51:37,473 >> ΧΑΝΑ Blumberg: Εντάξει, δροσερό. 1045 00:51:37,473 --> 00:51:40,980 Αν μη τι άλλο έρχεται με την PHP ή HTML, ή οποιαδήποτε από τα πράγματα που καλύπτεται Μαρία, 1046 00:51:40,980 --> 00:51:42,700 μπορούμε πάντα να διακόψετε. 1047 00:51:42,700 --> 00:51:46,430 Κάνουμε καλύτερα σε ξανά, τόσο φοβερό. 1048 00:51:46,430 --> 00:51:48,770 Και μόνο για να πάει πίσω πολύ γρήγορα σε αυτό, 1049 00:51:48,770 --> 00:51:51,010 αν κοιτάξετε κάθε εξετάσεις παρελθόν έτος, αυτό 1050 00:51:51,010 --> 00:51:54,120 έρχεται either-- είναι εδώ μερικά HTML, κάνουν αυτό το διάγραμμα. 1051 00:51:54,120 --> 00:51:58,380 Ή εδώ είναι το διάγραμμα αυτό, κάνουν μερικά HTML, έτσι σίγουρα ασκούν αυτό. 1052 00:51:58,380 --> 00:52:01,500 Και τότε αυτό είναι ένα εγγυημένο ερώτηση που μπορείτε να πάρετε σωστά. 1053 00:52:01,500 --> 00:52:02,000 Δροσερός. 1054 00:52:02,000 --> 00:52:04,510 Ας μιλήσουμε για το JavaScript και πώς είναι λίγο 1055 00:52:04,510 --> 00:52:09,130 διαφορετικές από τις γλώσσες όπως η PHP και C, οι δύο γλώσσες που είδαμε προηγουμένως. 1056 00:52:09,130 --> 00:52:10,780 Έτσι νούμερο ένα, είναι χαλαρά πληκτρολογήσει. 1057 00:52:10,780 --> 00:52:14,630 Αυτό είναι όπως PHP, αλλά σε αντίθεση με C. 1058 00:52:14,630 --> 00:52:15,890 >> Είναι μια ερμηνευμένη γλώσσα. 1059 00:52:15,890 --> 00:52:19,870 Και πάλι, αυτό είναι σαν να PHP, σε αντίθεση με C. Και αυτό 1060 00:52:19,870 --> 00:52:24,630 πρόκειται να επιτρέψει σε μας για να το use-- λειτουργεί πραγματικά καλά με τις ιστοσελίδες. 1061 00:52:24,630 --> 00:52:28,350 Δεν πρόκειται να μας επιτρέψει να χειραγωγήσουν το περιεχόμενο και το πώς φαίνεται 1062 00:52:28,350 --> 00:52:30,300 και τι κάνει. 1063 00:52:30,300 --> 00:52:32,330 >> Εμείς πάμε να δούμε λίγο Άγιαξ. 1064 00:52:32,330 --> 00:52:36,140 Μας επιτρέπει να επικοινωνούν ασύγχρονα με διαφορετικούς servers 1065 00:52:36,140 --> 00:52:37,950 και να πάρει πληροφορίες. 1066 00:52:37,950 --> 00:52:42,820 Και αυτό είναι το πράγμα που πραγματικά χωρίζει JavaScript από PHP και C 1067 00:52:42,820 --> 00:52:45,590 είναι ότι είναι στην πλευρά του πελάτη. 1068 00:52:45,590 --> 00:52:49,860 Τόσο PHP και C είναι συνήθως server-side. 1069 00:52:49,860 --> 00:52:51,960 >> Για το μεγαλύτερο μέρος και σχεδόν εξ ολοκλήρου τι 1070 00:52:51,960 --> 00:52:53,900 έχουμε δει, τουλάχιστον σε αυτή η κατηγορία, το JavaScript 1071 00:52:53,900 --> 00:52:57,040 δρα στην πλευρά του πελάτη, πράγμα που σημαίνει ότι ο browser είναι στην πραγματικότητα 1072 00:52:57,040 --> 00:52:58,597 υπεύθυνος για τη λειτουργία του. 1073 00:52:58,597 --> 00:53:01,180 Και αυτό σημαίνει ότι εμείς δεν κάνουμε πρέπει να αλληλεπιδράσει με το διακομιστή. 1074 00:53:01,180 --> 00:53:04,380 Έτσι, αυτό σημαίνει ότι μπορεί να είναι πολύ πιο γρήγορα επειδή είναι στην πραγματικότητα ακριβώς αυτό είναι το Chrome, 1075 00:53:04,380 --> 00:53:10,420 Είναι Safari, Firefox είναι, ό, τι χρησιμοποιούν στην πραγματικότητα τρέχει JavaScript σας. 1076 00:53:10,420 --> 00:53:12,290 >> Κοινό: Τι σημαίνει ασύγχρονη σημαίνει; 1077 00:53:12,290 --> 00:53:13,620 >> ΧΑΝΑ Blumberg: Αχ, τι ασύγχρονα σημαίνει; 1078 00:53:13,620 --> 00:53:14,250 Μεγάλη ερώτηση. 1079 00:53:14,250 --> 00:53:17,890 Ασύγχρονα means-- καλά, το περιεχόμενο στο οποίο 1080 00:53:17,890 --> 00:53:22,140 που χρησιμοποιούμε είναι, εντάξει, εμείς Τα δημιουργία ιστοσελίδων 1081 00:53:22,140 --> 00:53:23,860 και θα πρέπει να πάρετε κάποιες πληροφορίες. 1082 00:53:23,860 --> 00:53:28,250 Έτσι, με το παράδειγμα της mashup, κάποιες πληροφορίες που θα μπορούσαμε να θέλουμε 1083 00:53:28,250 --> 00:53:30,580 είναι οι τίτλοι των άρθρων. 1084 00:53:30,580 --> 00:53:33,330 Τώρα, έχουμε μια επιλογή could-- είναι να το κάνουμε συγχρόνως 1085 00:53:33,330 --> 00:53:37,940 και αυτό σημαίνει ας να σταματήσει, να πάει να πάρει το άρθρο, 1086 00:53:37,940 --> 00:53:41,275 να πάρει πίσω το άρθρο, και στη συνέχεια καθιστούν, αλλά αυτό θα ήταν πολύ αργοί. 1087 00:53:41,275 --> 00:53:44,150 Αυτό θα ήταν μια κακή εμπειρία του χρήστη γιατί θα ήταν απλά να κάθεται 1088 00:53:44,150 --> 00:53:46,630 περιμένει εκεί για να απαντήσει κάτι. 1089 00:53:46,630 --> 00:53:50,020 >> Ασύγχρονα σημαίνει ότι θα συνεχίσουν τη δραστηριότητά μας, 1090 00:53:50,020 --> 00:53:52,529 καθιστώντας την σελίδα, και θα στείλει μακριά ένα αίτημα 1091 00:53:52,529 --> 00:53:54,570 Αυτό είναι το είδος πρόκειται να συμβαίνουν στο παρασκήνιο. 1092 00:53:54,570 --> 00:53:57,610 Νομίζω ότι χρησιμοποιούμε το παράδειγμα σε διάλεξη του καλώντας τον Rob και λέγοντας, 1093 00:53:57,610 --> 00:53:59,980 hey, μπορείτε να αναζητήσετε αυτό επάνω για μένα και να πάρετε πίσω σε μένα, 1094 00:53:59,980 --> 00:54:02,870 σε αντίθεση με μόνο μου αναμονή στο τηλέφωνο. 1095 00:54:02,870 --> 00:54:07,020 Έτσι σημαίνει ασύγχρονα συμβαίνει στο παρασκήνιο μακριά από εμάς 1096 00:54:07,020 --> 00:54:08,676 παράλληλα. 1097 00:54:08,676 --> 00:54:10,400 >> Μεγάλη ερώτηση. 1098 00:54:10,400 --> 00:54:11,830 Τίποτα άλλο; 1099 00:54:11,830 --> 00:54:12,330 Εξαιρετική. 1100 00:54:12,330 --> 00:54:15,020 Θα πηδήξει πολύ περισσότερο σε ασύγχρονη αιτήματα με Άγιαξ. 1101 00:54:15,020 --> 00:54:18,287 >> Κοινό: Μήπως JavaScript-- όπου κάνει να πέσει με το μοντέλο-View-Controller; 1102 00:54:18,287 --> 00:54:19,620 ΧΑΝΑ Blumberg: Μεγάλη ερώτηση. 1103 00:54:19,620 --> 00:54:23,320 Πού JavaScript πτώση με το μοντέλο-View-Controller; 1104 00:54:23,320 --> 00:54:23,930 Χμ. 1105 00:54:23,930 --> 00:54:28,350 Υποθέτω ότι μπορεί να fall-- γι 'αυτό συνήθως δεν 1106 00:54:28,350 --> 00:54:31,340 ήθελα να λιώσει σε αυτό πρότυπο, αλλά υποθέτω ότι θα έλεγα, 1107 00:54:31,340 --> 00:54:34,280 Εντάξει, έτσι το JavaScript στην πραγματικότητα πρόκειται να επιτρέψει 1108 00:54:34,280 --> 00:54:37,587 μας για τη συλλογή δεδομένων, ερμηνεύουν τα στοιχεία, πραγματικά να κάνουμε 1109 00:54:37,587 --> 00:54:38,920 σημαντικά πράγματα με τα δεδομένα. 1110 00:54:38,920 --> 00:54:41,100 Με αυτόν τον τρόπο, είναι πολύ ελέγχου-όπως. 1111 00:54:41,100 --> 00:54:43,900 >> Αλλά είναι, επίσης, πρόκειται να μας επιτρέψουν να εμφανίσει τα πράγματα και τα πράγματα εκτύπωσης. 1112 00:54:43,900 --> 00:54:47,021 Με αυτόν τον τρόπο, είναι πολύ θέα-όπως. 1113 00:54:47,021 --> 00:54:47,520 Ναι. 1114 00:54:47,520 --> 00:54:51,710 Έτσι είναι κάτι σαν την PHP όπου μπορεί να είναι το είδος των δύο. 1115 00:54:51,710 --> 00:54:53,330 Καλή ερώτηση. 1116 00:54:53,330 --> 00:54:55,209 Τίποτα άλλο; 1117 00:54:55,209 --> 00:54:56,000 Εντάξει, φοβερό. 1118 00:54:56,000 --> 00:54:57,120 Μετακίνηση δεξιά κατά μήκος. 1119 00:54:57,120 --> 00:54:59,110 >> Ας δούμε ένα παράδειγμα για το πώς μπορούμε να χρησιμοποιήσουμε 1120 00:54:59,110 --> 00:55:02,250 JavaScript σε ένα από τα προγράμματα ιστοσελίδας μας. 1121 00:55:02,250 --> 00:55:05,680 Γι 'αυτό και θα εξετάσουμε αυτό index.html με ένα μάτσο HTML. 1122 00:55:05,680 --> 00:55:08,800 Και το πράγμα που θέλετε επικεντρωθώ είναι αυτή η ετικέτα σενάριο. 1123 00:55:08,800 --> 00:55:13,280 Και αυτό το λέει, εντάξει, θέλω να τρέξει μερικά JavaScript και εδώ είναι όπου ζει. 1124 00:55:13,280 --> 00:55:15,400 Ζει σε hello.js. 1125 00:55:15,400 --> 00:55:21,120 >> Και μοιάζει πολύ με το CSS, θα μπορούσαμε βάλτε το JavaScript εντός της HTML. 1126 00:55:21,120 --> 00:55:24,000 Γιατί μπορεί να θέλουμε να διαχωρίσουμε; 1127 00:55:24,000 --> 00:55:24,500 Ναι. 1128 00:55:24,500 --> 00:55:25,486 >> Κοινό: Ευκολότερη να ξαναγράψει; 1129 00:55:25,486 --> 00:55:26,402 >> ΧΑΝΑ Μπλούμπεργκ: Ναι. 1130 00:55:26,402 --> 00:55:28,450 Είναι ευκολότερο να χρησιμοποιήσει όλη την διαφορετικές ιστοσελίδες. 1131 00:55:28,450 --> 00:55:29,980 Διατηρεί τα πράγματα καθαρότερα. 1132 00:55:29,980 --> 00:55:32,090 Είναι ακριβώς ορθές πρακτικές. 1133 00:55:32,090 --> 00:55:32,590 Φοβερός. 1134 00:55:32,590 --> 00:55:33,930 Καλή απάντηση. 1135 00:55:33,930 --> 00:55:36,690 Τόσο καλά, έτσι αυτό θα να είναι index.html μας. 1136 00:55:36,690 --> 00:55:39,430 Και στη συνέχεια κάτω εδώ είναι μας μικροσκοπικό αρχείο JavaScript. 1137 00:55:39,430 --> 00:55:42,410 >> Και μόνο που λέει είναι σε εγρήγορση Γεια σου, κόσμε. 1138 00:55:42,410 --> 00:55:46,040 Έτσι, αυτό που συμβαίνει είναι όταν Αυτή η σελίδα renders-- 1139 00:55:46,040 --> 00:55:49,680 οπότε αν πάτε σε ό, τι την ιστοσελίδα Αυτό is-- όλα αυτά που πρόκειται να συμβούν 1140 00:55:49,680 --> 00:55:53,330 είναι αυτό που πρόκειται να πω, εντάξει, είμαι πρόκειται να εκτελέσετε αυτόν τον κώδικα JavaScript. 1141 00:55:53,330 --> 00:55:56,370 Και αυτός ο κώδικας JavaScript ακριβώς λέει ειδοποίηση Γεια σου, κόσμε. 1142 00:55:56,370 --> 00:55:59,090 Έτσι, Πάω να πάρει αυτό φιλόξενο, μικρό pop-up. 1143 00:55:59,090 --> 00:56:00,360 >> Δροσερός? 1144 00:56:00,360 --> 00:56:04,746 Αυτό είναι το είδος του σαν να μας πρώτα Προγράμματος JavaScript, Γεια μας, τον κόσμο. 1145 00:56:04,746 --> 00:56:07,690 1146 00:56:07,690 --> 00:56:12,190 Ας δούμε λίγο περισσότερο για το τι Η σύνταξη της JavaScript μοιάζει. 1147 00:56:12,190 --> 00:56:16,330 Και συγκεκριμένα, ας το συγκρίνουμε με C και PHP, που έχουμε δει στο παρελθόν. 1148 00:56:16,330 --> 00:56:20,610 >> Σε JavaScript, θα πάμε να έχουν var, το όνομα της μεταβλητής, και στη συνέχεια 1149 00:56:20,610 --> 00:56:21,690 την πραγματική αξία του. 1150 00:56:21,690 --> 00:56:26,170 Και εμείς δεν καθορίσετε έναν τύπο, απλά όπως σε PHP, αλλά πολύ σε αντίθεση με C. 1151 00:56:26,170 --> 00:56:28,850 Έτσι, για παράδειγμα, αν θέλαμε για να αποθηκεύσετε την τιμή 50, 1152 00:56:28,850 --> 00:56:32,490 σε C, θα πρέπει να πω, hey, C, θέλω έναν ακέραιο, 1153 00:56:32,490 --> 00:56:35,076 Πάω να το ονομάσουμε i, και η αξία του είναι 50. 1154 00:56:35,076 --> 00:56:36,450 Στην PHP, είναι λίγο πιο εύκολη. 1155 00:56:36,450 --> 00:56:41,880 Εμείς λέμε, hey, θέλω μια μεταβλητή που ονομάζεται i και η αξία του είναι 50. 1156 00:56:41,880 --> 00:56:45,890 Πολύ Ομοίως, σε JavaScript, εμείς λένε hey, θέλω μια μεταβλητή που ονομάζεται i, 1157 00:56:45,890 --> 00:56:47,080 η αξία του είναι 50. 1158 00:56:47,080 --> 00:56:52,140 Κάθε μεταγενέστερη στιγμή που χρησιμοποιώ Εγώ, εγώ δεν χρειάζεται να γράψω var. 1159 00:56:52,140 --> 00:56:53,810 Είναι ακριβώς εγώ από εκείνο το σημείο. 1160 00:56:53,810 --> 00:56:58,660 Κατά τον ίδιο τρόπο, σε C, όπου μια φορά λέμε int i, εμείς απλά χρησιμοποιήστε i. 1161 00:56:58,660 --> 00:57:00,340 Δροσερός? 1162 00:57:00,340 --> 00:57:01,800 Εντάξει. 1163 00:57:01,800 --> 00:57:03,710 >> Προχωρώντας στην βρόχους, Ευτυχώς, αυτά σχεδόν 1164 00:57:03,710 --> 00:57:06,720 δείτε exactly-- Νομίζω ότι είναι ακριβώς το ίδιο με αυτό 1165 00:57:06,720 --> 00:57:09,799 Οι βρόχοι πρόκειται να μοιάσει σε κάτι σαν C, όπου σας για βρόχο 1166 00:57:09,799 --> 00:57:11,840 πρόκειται να έχει τρεις parts-- μια προετοιμασίας, 1167 00:57:11,840 --> 00:57:13,640 μια κατάσταση, και μια ενημέρωση. 1168 00:57:13,640 --> 00:57:15,340 Μια βρόχο while, φαίνεται ακριβώς το ίδιο. 1169 00:57:15,340 --> 00:57:16,390 Εμείς απλά δώστε μια κατάσταση. 1170 00:57:16,390 --> 00:57:18,264 >> Και ένα do while loop, πάλι, ακριβώς το ίδιο. 1171 00:57:18,264 --> 00:57:20,190 Έχουμε θέσει ως προϋπόθεση να δώσει. 1172 00:57:20,190 --> 00:57:24,510 Ας πούμε ότι ήθελε να επαναλάβει over-- Ήθελα να κάνω κάτι πέντε φορές. 1173 00:57:24,510 --> 00:57:27,840 Στην C, μπορούμε να γράφουμε για init i ισούται με 0. 1174 00:57:27,840 --> 00:57:30,480 i είναι μικρότερο από 5, i ++. 1175 00:57:30,480 --> 00:57:34,240 Μόνο η διαφορά, σε JavaScript, αντί να λέει int i ισούται με 0, 1176 00:57:34,240 --> 00:57:36,820 λέμε var i ισούται με 0. 1177 00:57:36,820 --> 00:57:38,370 Όμορφος. 1178 00:57:38,370 --> 00:57:41,320 Αυτή είναι η μόνη διαφορά. 1179 00:57:41,320 --> 00:57:43,200 Οποιεσδήποτε ερωτήσεις σχετικά με κάποιο από αυτά; 1180 00:57:43,200 --> 00:57:44,160 Ναί. 1181 00:57:44,160 --> 00:57:48,480 >> Κοινό: Έτσι σε PHP, είναι το ίδιο πράγμα, εκτός αλλά σαν μια μεταβλητή; 1182 00:57:48,480 --> 00:57:49,564 Ή ότι ήταν ένα παράδειγμα var; 1183 00:57:49,564 --> 00:57:50,480 ΧΑΝΑ Μπλούμπεργκ: Ναι. 1184 00:57:50,480 --> 00:57:52,310 Έτσι σε PHP, πρόκειται να είναι το σύμβολο του δολαρίου. 1185 00:57:52,310 --> 00:57:59,450 Έτσι πρόκειται να θ $ ίσων 0, $ i είναι μικρότερο από 5, $ i ++. 1186 00:57:59,450 --> 00:58:02,490 Μεγάλη ερώτηση. 1187 00:58:02,490 --> 00:58:04,570 >> Τώρα ας μιλήσουμε για δηλώσεις λειτουργία. 1188 00:58:04,570 --> 00:58:07,010 Στην C, όταν ανακήρυξε λειτουργία, δώσαμε ένα όνομα 1189 00:58:07,010 --> 00:58:08,490 και μας έδωσε κάποιες παραμέτρους. 1190 00:58:08,490 --> 00:58:10,670 Και στην αρχή, γράψαμε το είδος. 1191 00:58:10,670 --> 00:58:12,440 Σε JavaScript, όλοι εμείς πρέπει να κάνετε είναι να γράψετε 1192 00:58:12,440 --> 00:58:15,080 η λειτουργία-κλειδί που λέει, hey, JavaScript, 1193 00:58:15,080 --> 00:58:16,570 Είμαι έτοιμος να ορίσουμε μια συνάρτηση. 1194 00:58:16,570 --> 00:58:18,520 >> Σε αυτήν την περίπτωση, έχει το όνομα ποσό. 1195 00:58:18,520 --> 00:58:20,820 Και παίρνει δύο επιχειρήματα, x και y. 1196 00:58:20,820 --> 00:58:23,280 Παρατηρήστε ότι δεν με νοιάζει σχετικά με τους τύπους των x και y. 1197 00:58:23,280 --> 00:58:26,280 Και ακριβώς όπως η C, έχουμε Αυτή η λέξη-κλειδί return, 1198 00:58:26,280 --> 00:58:29,140 ώστε να μπορούμε να κάνουμε κάτι όπως το return x και y. 1199 00:58:29,140 --> 00:58:32,540 >> Και τώρα όταν θα έχω γράψει αυτό το πρώτο λειτουργία, μπορούμε να χρησιμοποιήσουμε ποσό οπουδήποτε. 1200 00:58:32,540 --> 00:58:34,740 Και αυτό είναι εντελώς καλά. 1201 00:58:34,740 --> 00:58:37,530 Ένα πραγματικά δροσερό πράγμα για JavaScript που είναι πολύ αντίθεση με την C 1202 00:58:37,530 --> 00:58:40,770 είναι ότι οι συναρτήσεις μπορούν να να αντιμετωπίζονται σαν αξίες. 1203 00:58:40,770 --> 00:58:43,895 Έτσι, μπορούμε να κάνουμε κάτι σαν εδώ όπου υποθέτω ότι θα καλύψει αυτό το up-- 1204 00:58:43,895 --> 00:58:46,400 Θα καλύπτεται μέχρι του ποσού var part-- και εμείς απλά είπε 1205 00:58:46,400 --> 00:58:49,850 xy λειτουργία ισούται με την επιστροφή x συν y. 1206 00:58:49,850 --> 00:58:52,140 >> Αυτό είναι ό, τι θα μπορούσε να ονομάζεται μια ανώνυμη λειτουργία. 1207 00:58:52,140 --> 00:58:53,920 Είναι μια συνάρτηση χωρίς όνομα. 1208 00:58:53,920 --> 00:58:56,290 Λαμβάνοντας υπόψη ότι αυτό λέει η λειτουργία άθροισμα, μπλα, μπλα, μπλα, 1209 00:58:56,290 --> 00:58:59,340 αυτό θα πω μόνο λειτουργία. 1210 00:58:59,340 --> 00:59:02,020 Αλλά τώρα, ακόμη και αν έχω Αυτή η ανώνυμη συνάρτηση, 1211 00:59:02,020 --> 00:59:03,630 ότι η λειτουργία είναι πραγματικά ακριβώς μια τιμή. 1212 00:59:03,630 --> 00:59:05,160 Μπορούμε να την αντιμετωπίσουμε σαν μια αξία. 1213 00:59:05,160 --> 00:59:10,180 >> Έτσι μπορούμε να το αποθηκεύσετε σε μια μεταβλητή με την ίδια τρόπο με τον οποίο θα μπορούσε να αποθηκεύσει 50 σε μια μεταβλητή. 1214 00:59:10,180 --> 00:59:13,870 Έτσι μπορούμε να πούμε, εντάξει, θέλω ένα μεταβλητή, αυτό λέγεται ποσό, 1215 00:59:13,870 --> 00:59:16,011 και είναι αυτή η λειτουργία. 1216 00:59:16,011 --> 00:59:18,760 Έτσι, αυτά τα δύο πράγματα είναι πράγματι πρόκειται να κάνει το ίδιο ακριβώς πράγμα, 1217 00:59:18,760 --> 00:59:21,576 αλλά η σύνταξη είναι λίγο διαφορετικά και το είδος του ένα σημείωμα διασκέδαση. 1218 00:59:21,576 --> 00:59:22,076 Ναι. 1219 00:59:22,076 --> 00:59:25,548 >> Κοινό: Έτσι, μπορείτε να καλέσετε μια λειτουργία που ήταν ανώνυμα, λέγοντας, 1220 00:59:25,548 --> 00:59:28,244 άθροισμα στηρίγματα 2, 5; 1221 00:59:28,244 --> 00:59:29,160 ΧΑΝΑ Μπλούμπεργκ: Ναι. 1222 00:59:29,160 --> 00:59:32,280 Μπορείτε να καλέσετε αυτό το ανώνυμο λειτουργία με τον ίδιο τρόπο. 1223 00:59:32,280 --> 00:59:33,350 Θα κάνουμε άθροισμα (2, 5) ;. 1224 00:59:33,350 --> 00:59:36,180 1225 00:59:36,180 --> 00:59:38,200 Αυτό θα ήταν εντελώς καλά. 1226 00:59:38,200 --> 00:59:41,575 >> Αν δεν έκανα άθροισμα ισούται var λειτουργία, αν εγώ απλά διαγράφεται 1227 00:59:41,575 --> 00:59:45,480 this-- Ξέρω ότι είναι στο χέρι μου, αλλά προσποιούνται Διέγραψα this-- συνέχεια 1228 00:59:45,480 --> 00:59:46,964 ότι η λειτουργία του είδους μόλις φύγει. 1229 00:59:46,964 --> 00:59:49,630 Δεν μπορείτε ποτέ να το χρησιμοποιήσετε ξανά, διότι δεν έχετε ένα όνομα για αυτό. 1230 00:59:49,630 --> 00:59:53,497 Είναι δύσκολο να αναφερθώ σε κάτι δεν ξέρετε τι να καλέσετε. 1231 00:59:53,497 --> 00:59:54,080 Καλή ερώτηση. 1232 00:59:54,080 --> 00:59:54,580 Ναι. 1233 00:59:54,580 --> 00:59:59,580 >> Κοινό: Μπορεί να κάνετε αναφορά σε ποσό άλλες θέσεις με την τιμή του x συν y; 1234 00:59:59,580 --> 01:00:01,940 >> ΧΑΝΑ Blumberg: Μπορείτε να ποσό αναφοράς σε άλλα μέρη 1235 01:00:01,940 --> 01:00:03,360 με την τιμή x συν y; 1236 01:00:03,360 --> 01:00:05,130 Δεν είμαι απόλυτα σίγουρος τι εννοείτε. 1237 01:00:05,130 --> 01:00:10,582 >> Κοινό: Έτσι το παρελθόν σου ημι-ανώνυμος λειτουργία είναι άθροισμα είναι ίσο με αυτό 1238 01:00:10,582 --> 01:00:14,452 λειτουργία ανώνυμα, έτσι άθροισμα είναι τώρα μια μεταβλητή που can-- 1239 01:00:14,452 --> 01:00:15,410 ΧΑΝΑ Μπλούμπεργκ: Δεξιά. 1240 01:00:15,410 --> 01:00:18,980 Έτσι, το ποσό είναι η μεταβλητή, αλλά είναι actually-- 1241 01:00:18,980 --> 01:00:23,770 έτσι άθροισμα είναι μια μεταβλητή της οποίας αξία είναι η λειτουργία. 1242 01:00:23,770 --> 01:00:27,030 Γι 'αυτό είναι μια λειτουργία, η οποία είναι το είδος του ένα περίεργο πράγμα για να τυλίξει γύρω από το κεφάλι σας 1243 01:00:27,030 --> 01:00:29,880 αφού παίζαμε με C και δεν μπορείτε να το κάνετε αυτό σε C. 1244 01:00:29,880 --> 01:00:32,679 Αλλά τώρα μπορούμε να συνοψίσουμε το ονομάζουμε ίδιο τρόπο θα μπορούσαμε να αποκαλέσουμε άθροισμα εδώ. 1245 01:00:32,679 --> 01:00:33,220 Κοινό: OK. 1246 01:00:33,220 --> 01:00:33,970 ΧΑΝΑ Μπλούμπεργκ: Ναι. 1247 01:00:33,970 --> 01:00:34,553 Καλή ερώτηση. 1248 01:00:34,553 --> 01:00:35,438 Ναι. 1249 01:00:35,438 --> 01:00:39,862 >> Κοινό: Γι 'αυτό δεν χρησιμοποιούν το πρωτότυπα σε PHP ή JavaScript; 1250 01:00:39,862 --> 01:00:42,070 ΧΑΝΑ Blumberg: Όχι, Δεν χρειάζεται να χρησιμοποιήσετε πρωτότυπα, 1251 01:00:42,070 --> 01:00:43,880 ειδικά σε JavaScript. 1252 01:00:43,880 --> 01:00:49,380 Έτσι, ένα κακό πρακτική που είμαι πρόκειται να πω ότι δεν πρέπει να κάνετε 1253 01:00:49,380 --> 01:00:52,620 είναι ότι δεν έχετε να γράψετε var i = 50. 1254 01:00:52,620 --> 01:00:54,840 Θα μπορούσατε απλά να αρχίσει να κάνει θ = 50. 1255 01:00:54,840 --> 01:00:57,490 Και θα κάνω μόνο εγώ μια global μεταβλητή. 1256 01:00:57,490 --> 01:01:00,550 >> Είναι πολύ κακή πρακτική να Ποτέ δεν λένε ρητά var i, 1257 01:01:00,550 --> 01:01:01,800 αλλά αυτό είναι κάτι που μπορείτε να κάνετε. 1258 01:01:01,800 --> 01:01:03,591 Ο διερμηνέας δεν είναι πρόκειται να φωνάζω σε σας. 1259 01:01:03,591 --> 01:01:05,920 JavaScript είναι αρκετά παρόμοια, μπορείτε να κάνετε ό, τι θέλετε. 1260 01:01:05,920 --> 01:01:09,301 1261 01:01:09,301 --> 01:01:09,800 Ω συγνώμη. 1262 01:01:09,800 --> 01:01:10,300 Υπάρχουν δύο. 1263 01:01:10,300 --> 01:01:12,150 Σε πορτοκαλί παντελόνι. 1264 01:01:12,150 --> 01:01:13,190 Προχώρα. 1265 01:01:13,190 --> 01:01:14,390 >> Κοινό: Όχι, θα πάει πρώτα. 1266 01:01:14,390 --> 01:01:16,765 >> Κοινό: Όχι, εγώ απλά λέγοντας Δεν είχα το χέρι μου. 1267 01:01:16,765 --> 01:01:20,248 1268 01:01:20,248 --> 01:01:20,748 ΕΝΤΆΞΕΙ. 1269 01:01:20,748 --> 01:01:26,604 Έτσι, εάν επρόκειτο να καλέσετε ότι για πρώτη φορά, τώρα κατακλείδι, 1270 01:01:26,604 --> 01:01:29,864 καλούμε τον ίδιο τρόπο, χ, y, όπως κάθε φορά; 1271 01:01:29,864 --> 01:01:30,780 ΧΑΝΑ Μπλούμπεργκ: Ναι. 1272 01:01:30,780 --> 01:01:32,572 Έτσι, αυτά τα δύο βασικά κάνουν το ίδιο πράγμα. 1273 01:01:32,572 --> 01:01:35,113 Κοινό: Και ποιο είναι το πλεονέκτημα του χρησιμοποιώντας ένα ή το άλλο; 1274 01:01:35,113 --> 01:01:37,500 ΧΑΝΑ Blumberg: Όχι πλεονέκτημα του χρησιμοποιώντας ένα ή το άλλο. 1275 01:01:37,500 --> 01:01:40,080 Ήθελα απλώς να σας δείξω δύο διαφορετικά κομμάτια της σύνταξης. 1276 01:01:40,080 --> 01:01:42,770 Πολλές φορές όταν ανώνυμο λειτουργίες έχουν ένα σκοπό 1277 01:01:42,770 --> 01:01:48,220 είναι αν το επιχείρημα σε ένα άλλο λειτουργία πρέπει να είναι συνάρτηση. 1278 01:01:48,220 --> 01:01:50,600 Και θα δούμε ότι σε μόλις ένα δευτερόλεπτο με Άγιαξ. 1279 01:01:50,600 --> 01:01:53,577 >> Έτσι, αν αυτό δεν έχει κανένα νόημα, φυλάξτε το στο πίσω μέρος του κεφαλιού σας. 1280 01:01:53,577 --> 01:01:55,660 Αυτός είναι όπου ένας ανώνυμος λειτουργία μπορεί να είναι χρήσιμο 1281 01:01:55,660 --> 01:01:58,284 γιατί δεν είναι πραγματικά αξίζει δίνοντάς του ένα όνομα από τότε είμαστε απλά 1282 01:01:58,284 --> 01:01:59,443 πρόκειται να το χρησιμοποιήσετε μια φορά. 1283 01:01:59,443 --> 01:02:00,370 Ναι. 1284 01:02:00,370 --> 01:02:03,635 >> Κοινό: Αν x και y αλλαγή αργότερα και στο εξής, θα συνοψίσω αλλάξει, καθώς; 1285 01:02:03,635 --> 01:02:06,510 ΧΑΝΑ Blumberg: Αν x και y αλλαγή αργότερα, θα συνοψίσω αλλάξει, καθώς; 1286 01:02:06,510 --> 01:02:08,840 Έτσι, αυτό είναι πραγματικά εγώ σκεφτείτε κάτι που είναι, 1287 01:02:08,840 --> 01:02:12,260 και πάλι, αυτό ακριβώς αισθάνεται πολύ διαφορετικά από C. Αυτό δεν είναι μια τιμή. 1288 01:02:12,260 --> 01:02:13,620 Δεν είναι 5. 1289 01:02:13,620 --> 01:02:15,550 Είναι ακριβώς η ίδια λειτουργία. 1290 01:02:15,550 --> 01:02:19,110 Έτσι, μόλις δώσετε τις παραμέτρους, τότε θα υπολογίσετε πραγματικά μια αξία. 1291 01:02:19,110 --> 01:02:21,193 >> ΜΑΡΙΑ ZLATKOVA: Και στη συνέχεια, μπορείτε να καλέσετε τη λειτουργία 1292 01:02:21,193 --> 01:02:23,272 και να το χρησιμοποιήσετε για να πάρετε κάποια αξία. 1293 01:02:23,272 --> 01:02:24,230 ΧΑΝΑ Μπλούμπεργκ: Δεξιά. 1294 01:02:24,230 --> 01:02:25,250 Ακριβώς. 1295 01:02:25,250 --> 01:02:25,863 Ναι. 1296 01:02:25,863 --> 01:02:27,946 >> Κοινό: Έτσι, αν απλά αποθηκεύστε το στη μεταβλητή, 1297 01:02:27,946 --> 01:02:31,430 όπως var x ισούται με άθροισμα των δύο values-- 1298 01:02:31,430 --> 01:02:32,420 >> ΧΑΝΑ Μπλούμπεργκ: Ναι. 1299 01:02:32,420 --> 01:02:35,320 Έτσι, θα μπορούσατε να κάνετε ακριβώς ποσό var ισούται με άθροισμα των δύο τιμών. 1300 01:02:35,320 --> 01:02:37,670 Ναι. 1301 01:02:37,670 --> 01:02:38,680 Οποιεσδήποτε άλλες ερωτήσεις; 1302 01:02:38,680 --> 01:02:39,642 Ναι. 1303 01:02:39,642 --> 01:02:42,047 >> Κοινό: Αλλά θα συγχέουν ποσό και το άθροισμα; 1304 01:02:42,047 --> 01:02:45,062 Όπως και αν σας καλέσει μεταβλητή άθροισμα σας, θα σας καλέσουμε το άθροισμα λειτουργία; 1305 01:02:45,062 --> 01:02:45,895 ΧΑΝΑ Μπλούμπεργκ: mm. 1306 01:02:45,895 --> 01:02:46,395 Mm. 1307 01:02:46,395 --> 01:02:51,253 Αν έκανε κάτι όπως, ποσό που ισούται με ποσό 2, 5; 1308 01:02:51,253 --> 01:02:53,170 >> Κοινό: Ναι. 1309 01:02:53,170 --> 01:02:56,465 >> ΧΑΝΑ Blumberg: Πιστεύω ότι θα αντικαταστήσει την τιμή του αθροίσματος. 1310 01:02:56,465 --> 01:02:59,290 Έτσι, μια άλλη ενδιαφέρουσα πράγμα για το JavaScript 1311 01:02:59,290 --> 01:03:02,950 είναι ότι μια μόνο μεταβλητή μπορεί να λάβει σε μια δέσμη των διαφορετικών τύπων. 1312 01:03:02,950 --> 01:03:03,790 Κακή πρακτική. 1313 01:03:03,790 --> 01:03:06,280 Δεν πρέπει να κάνουμε κάτι όπως αυτό που μόλις είπατε. 1314 01:03:06,280 --> 01:03:10,240 >> Αλλά σε C, εάν εγώ έχει οριστεί ισοδύναμο προς ένα ακέραιο, 1315 01:03:10,240 --> 01:03:13,570 γνωρίζουμε ότι ποτέ δεν πρόκειται να γίνει ένα string. 1316 01:03:13,570 --> 01:03:15,670 Αυτό δεν συμβαίνει σε JavaScript. 1317 01:03:15,670 --> 01:03:17,770 Ναι, καλή ερώτηση. 1318 01:03:17,770 --> 01:03:20,151 Τίποτα άλλο; 1319 01:03:20,151 --> 01:03:20,650 Εντάξει. 1320 01:03:20,650 --> 01:03:21,850 Κάνοντας εντάξει για την ώρα. 1321 01:03:21,850 --> 01:03:23,050 Κρατώντας πηγαίνει. 1322 01:03:23,050 --> 01:03:25,200 Εντάξει. 1323 01:03:25,200 --> 01:03:27,780 >> Αν κοιτάξουμε έναν πίνακα σε JavaScript, εδώ είναι 1324 01:03:27,780 --> 01:03:30,250 ένα γρήγορο παράδειγμα μίας συστοιχίας χορδές. 1325 01:03:30,250 --> 01:03:31,967 Και συστοιχίες μπορούν να αναπτυχθούν δυναμικά. 1326 01:03:31,967 --> 01:03:33,675 Δεν έχουν σταθερού μεγέθους με τον ίδιο τρόπο 1327 01:03:33,675 --> 01:03:37,990 ότι το κάνουν στο Γ Μπορούμε να προσπελάσουμε το στοιχεία μόνο με τις αγκύλες. 1328 01:03:37,990 --> 01:03:41,720 >> Αυτό μοιάζει πολύ με PHP και μια παρτίδα όπως η C, όπου μπορούμε να πούμε, σε αυτή την περίπτωση, 1329 01:03:41,720 --> 01:03:48,360 αν ήθελα τη λέξη JavaScript, θα ήθελα δεν arr αγκύλες με 0, 1, 2. 1330 01:03:48,360 --> 01:03:51,450 1331 01:03:51,450 --> 01:03:55,390 Και στη συνέχεια, αν θυμάστε σε C, όταν ήθελε να πάρει το μήκος μιας συστοιχίας, 1332 01:03:55,390 --> 01:03:56,820 ήταν πραγματικά ενοχλητικό. 1333 01:03:56,820 --> 01:03:58,460 Αλλά σε JavaScript, εξαιρετικά εύκολο. 1334 01:03:58,460 --> 01:03:59,910 Το μόνο που κάνουμε, .length. 1335 01:03:59,910 --> 01:04:01,120 Δίνει τα μήκη. 1336 01:04:01,120 --> 01:04:01,892 Αυτό ήταν. 1337 01:04:01,892 --> 01:04:03,140 >> Κοινό: Αυτό είναι απλό. 1338 01:04:03,140 --> 01:04:05,306 >> ΧΑΝΑ Blumberg: Ναι, κάνει τη ζωή σας πολύ πιο εύκολη. 1339 01:04:05,306 --> 01:04:08,950 1340 01:04:08,950 --> 01:04:11,560 Εντάξει, δεν object-- εκεί. 1341 01:04:11,560 --> 01:04:15,480 Αντικείμενα σε JavaScript αίσθηση πολύ σαν structs σε C 1342 01:04:15,480 --> 01:04:18,280 και συνειρμική συστοιχίες σε PHP. 1343 01:04:18,280 --> 01:04:20,270 Έτσι, αυτό που έχουμε δει Πολλοί είναι JSON, το οποίο 1344 01:04:20,270 --> 01:04:23,150 σημαίνει JavaScript Object Notation. 1345 01:04:23,150 --> 01:04:25,550 Και αυτό είναι ουσιαστικά ένας τρόπος της δόμησης των δεδομένων μας. 1346 01:04:25,550 --> 01:04:27,880 >> Ας δούμε ένα παράδειγμα, ίσως το πιο εύκολο. 1347 01:04:27,880 --> 01:04:32,540 Έτσι, εδώ είναι ένα παράδειγμα ενός αντικειμένου που αποθηκεύει την τάξη, CS50. 1348 01:04:32,540 --> 01:04:37,790 Και όταν λέω κατηγορίας, εννοώ φυσικά, Δεν like-- ναι, την πορεία, CS50. 1349 01:04:37,790 --> 01:04:40,730 Και θα δείτε ότι τα πάντα στο αντικείμενο 1350 01:04:40,730 --> 01:04:43,526 πρόκειται να περιέχεται σε άγκιστρα. 1351 01:04:43,526 --> 01:04:48,260 >> Και θα αρχίσουμε να συνδέσει τα ονόματα των πεδίων ή τα πλήκτρα με τις διαφορετικές τιμές. 1352 01:04:48,260 --> 01:04:52,920 Έτσι, μπορείτε να αρχίσετε να δούμε πώς αυτό το είδος του αισθάνεται σαν ένα associative πίνακα στην PHP. 1353 01:04:52,920 --> 01:04:57,450 Έτσι θα πάμε να συνδέσει το πεδίο ή το όνομα του κλειδιού, φυσικά, με το κορδόνι, 1354 01:04:57,450 --> 01:04:58,510 CS50. 1355 01:04:58,510 --> 01:04:59,940 >> Εμείς πάμε για να έχουν έναν εκπαιδευτικό. 1356 01:04:59,940 --> 01:05:00,940 Εμείς πάμε για να έχουμε ΤΡ. 1357 01:05:00,940 --> 01:05:05,240 Εμείς πάμε για να έχουν τον αριθμό των psets και θα πάμε να έχουν καταγραφεί. 1358 01:05:05,240 --> 01:05:10,720 Και ένα δροσερό πράγμα που παρατηρούμε είναι το σύνολο των Αυτά τα πράγματα έχουν διαφορετικά είδη, 1359 01:05:10,720 --> 01:05:12,020 και αυτό είναι εντελώς καλά. 1360 01:05:12,020 --> 01:05:15,330 >> Είναι μια χαρά για ένα αντικείμενο, στην πραγματικότητα, είναι πιθανώς αναμενόμενο για ένα αντικείμενο 1361 01:05:15,330 --> 01:05:19,620 να έχουν ένα συνδυασμό των χορδών και αριθμών και Booleans και συστοιχίες 1362 01:05:19,620 --> 01:05:23,420 Και ό, τι άλλο μπορεί να θέλουν να έχουν μέσα το αντικείμενό σας. 1363 01:05:23,420 --> 01:05:28,570 Και σημειώστε ότι αυτά πρόκειται να είναι τα ονόματα ή τα πλήκτρα, και στη συνέχεια απλά 1364 01:05:28,570 --> 01:05:30,300 που είναι ίσο με ένα μικρό παχέος εντέρου. 1365 01:05:30,300 --> 01:05:32,015 >> Κοινό: Τι ακριβώς σημαίνει το JSON; 1366 01:05:32,015 --> 01:05:33,890 ΧΑΝΑ Blumberg: Τι ακριβώς δεν σημαίνει JSON; 1367 01:05:33,890 --> 01:05:36,470 JSON ξεχωρίζει μόνο για JavaScript Object Notation. 1368 01:05:36,470 --> 01:05:38,430 Είναι απλά ένας τρόπος μορφοποίησης. 1369 01:05:38,430 --> 01:05:40,040 Ναι. 1370 01:05:40,040 --> 01:05:41,800 Είναι ένας τρόπος μορφοποίησης δεδομένων μας. 1371 01:05:41,800 --> 01:05:43,620 >> Στην C, είναι structs. 1372 01:05:43,620 --> 01:05:45,800 Στην PHP, είναι συνειρμική συστοιχίες. 1373 01:05:45,800 --> 01:05:47,120 Σε JavaScript, έχουμε αντικείμενα. 1374 01:05:47,120 --> 01:05:48,969 >> Κοινό: Έτσι CS50 είναι ένα αντικείμενο; 1375 01:05:48,969 --> 01:05:51,010 ΧΑΝΑ Blumberg: CS50 είναι το αντικείμενο σε αυτή την περίπτωση. 1376 01:05:51,010 --> 01:05:54,830 1377 01:05:54,830 --> 01:05:57,880 Τώρα, πώς μπορούμε πράγματι πρόσβαση Τα πεδία ή να αλλάξετε αυτά τα πεδία. 1378 01:05:57,880 --> 01:06:03,920 Για παράδειγμα, ας υποθέσουμε ότι έχουμε αποφασίσει ότι που ήθελε ένα λιγότερο το chipset αυτό το εξάμηνο. 1379 01:06:03,920 --> 01:06:06,300 Αντί εννέα, είμαστε ακριβώς πρόκειται να έχει οκτώ. 1380 01:06:06,300 --> 01:06:08,240 Πώς θα το αλλάξουμε αυτό; 1381 01:06:08,240 --> 01:06:09,436 >> Αχ, λάθος τρόπο. 1382 01:06:09,436 --> 01:06:11,060 Υπάρχουν δύο τρόποι με τους οποίους μπορούμε να το κάνουμε αυτό. 1383 01:06:11,060 --> 01:06:13,490 Νούμερο ένα είναι με την τελεία σημειογραφία και νούμερο δύο 1384 01:06:13,490 --> 01:06:15,750 είναι με την πλατεία συμβολισμός βραχίονα. 1385 01:06:15,750 --> 01:06:19,720 Έτσι, για παράδειγμα, αν ήθελε να αλλάξει ή πρόσβασης 1386 01:06:19,720 --> 01:06:26,820 το πεδίο psets στο αντικείμενο CS50 μας, τι θα έκανα είναι CS50.psets, 1387 01:06:26,820 --> 01:06:30,770 οπότε το όνομα του αντικειμένου dot το όνομα του πεδίου ή το κλειδί. 1388 01:06:30,770 --> 01:06:37,120 >> Πολύ Ομοίως, είναι ακριβώς που ισοδυναμεί με κάνει CS50, και στη συνέχεια, 1389 01:06:37,120 --> 01:06:42,050 σε αγκύλες, psets. 1390 01:06:42,050 --> 01:06:42,837 Δροσερός? 1391 01:06:42,837 --> 01:06:44,298 Ναι. 1392 01:06:44,298 --> 01:06:47,707 >> Κοινό: Έτσι είναι το JSON τεχνικά JavaScript ακόμα, 1393 01:06:47,707 --> 01:06:51,814 έστω και αν στα psets μας διαχωρίζουν τα έξω [δεν ακούγεται]; 1394 01:06:51,814 --> 01:06:52,730 ΧΑΝΑ Μπλούμπεργκ: Σίγουρα. 1395 01:06:52,730 --> 01:06:56,290 Έτσι, το ερώτημα είναι, JavaScript και JSON ισοδύναμο; 1396 01:06:56,290 --> 01:07:00,750 Έτσι JSON σημειογραφία είναι, βασικά ο τρόπος που γράφουμε έξω 1397 01:07:00,750 --> 01:07:02,700 ένα αντικείμενο από το JavaScript. 1398 01:07:02,700 --> 01:07:05,190 Έτσι δεν είναι ακριβώς το ίδιο. 1399 01:07:05,190 --> 01:07:08,950 >> Θα έλεγα JavaScript, υπάρχει είναι αντικείμενα σε JavaScript. 1400 01:07:08,950 --> 01:07:12,590 JSON παίρνει αυτά τα αντικείμενα και τις εκτυπώνει και τις εμφανίζει 1401 01:07:12,590 --> 01:07:15,160 ή να τα αποθηκεύει σε ένα ωραίο τρόπο. 1402 01:07:15,160 --> 01:07:18,110 Έτσι JSON δεν είναι ένας προγραμματισμός γλώσσα ο τρόπος που το JavaScript είναι. 1403 01:07:18,110 --> 01:07:20,900 Είναι ακριβώς ο συμβολισμός για αντικείμενα μας σε JavaScript. 1404 01:07:20,900 --> 01:07:21,400 Ναι. 1405 01:07:21,400 --> 01:07:24,144 >> Κοινό: Λοιπόν, τι ακριβώς [Δεν ακούγεται] ολοκληρώσει; 1406 01:07:24,144 --> 01:07:25,060 ΧΑΝΑ Μπλούμπεργκ: Σίγουρα. 1407 01:07:25,060 --> 01:07:27,727 Έτσι, αυτό κάνει πραγματικά τίποτα. 1408 01:07:27,727 --> 01:07:28,935 Αυτό είναι απλά ένας τρόπος για να αποκτήσετε πρόσβαση. 1409 01:07:28,935 --> 01:07:31,393 Ας πούμε ότι θέλουμε να αλλάξουμε ο αριθμός των προβληματικών σύνολα 1410 01:07:31,393 --> 01:07:32,450 9 με 8. 1411 01:07:32,450 --> 01:07:34,383 Αυτό που κάνουμε είναι να κάνουμε κάτι όπως CS50.psets = 8 ;. 1412 01:07:34,383 --> 01:07:38,500 1413 01:07:38,500 --> 01:07:39,400 >> Ναι, μεγάλο ερώτημα. 1414 01:07:39,400 --> 01:07:40,733 Αυτό είναι απλά για να δείξει τη σύνταξη σας. 1415 01:07:40,733 --> 01:07:43,620 Δεν κάνουν πραγματικά κάτι χρήσιμο. 1416 01:07:43,620 --> 01:07:46,085 Καμιά ερώτηση? 1417 01:07:46,085 --> 01:07:48,210 Μετακίνηση δεξιά κατά μήκος. 1418 01:07:48,210 --> 01:07:51,960 >> Ας ρίξουμε μια ματιά σε ένα γρήγορο παράδειγμα για το πώς Το JavaScript λειτουργεί επειδή σας είπα ότι 1419 01:07:51,960 --> 01:07:55,170 κάνει όλα αυτά τα πράγματα και δροσερά μας επιτρέπει να τροποποιήσετε τις ιστοσελίδες. 1420 01:07:55,170 --> 01:07:56,970 Ας το δούμε πραγματικά σε δράση. 1421 01:07:56,970 --> 01:07:59,850 Πάρτε λοιπόν, για παράδειγμα, αυτό το αρχείο HTML. 1422 01:07:59,850 --> 01:08:04,350 >> Και το πράγμα που θέλω να επικεντρωθώ είναι αυτό το συγκεκριμένο ετικέτα, η οποία είναι ένα κουμπί, 1423 01:08:04,350 --> 01:08:06,182 με id search_button. 1424 01:08:06,182 --> 01:08:08,670 Είναι ακριβώς στη σελίδα. 1425 01:08:08,670 --> 01:08:10,690 Έτσι τώρα ας δούμε τι μπορούμε να κάνουμε πραγματικότητα. 1426 01:08:10,690 --> 01:08:12,560 >> Λοιπόν, ας υποθέσουμε ότι όταν κάνετε κλικ σε αυτό το κουμπί, 1427 01:08:12,560 --> 01:08:16,010 θέλουμε να κάνουμε μια alert-- πατήσατε το κουμπί. 1428 01:08:16,010 --> 01:08:17,840 Ας δούμε πώς μπορούμε να το κάνουμε αυτό. 1429 01:08:17,840 --> 01:08:23,869 Έτσι window.onload-- αυτό δεν είναι κάτι που έχετε δει στην τάξη, ως εκ τούτου, 1430 01:08:23,869 --> 01:08:26,180 δεν θα πρέπει να το γνωρίζουν για το κουίζ. 1431 01:08:26,180 --> 01:08:33,660 Αλλά αυτό ουσιαστικά λέει, εντάξει, κλήση Η λειτουργία αυτή, όταν τα φορτία παράθυρο. 1432 01:08:33,660 --> 01:08:35,080 >> Έτσι, αυτό είναι ακριβώς το είδος του κωδικού εγκατάστασης. 1433 01:08:35,080 --> 01:08:36,390 Μην ανησυχείτε τόσο πολύ για αυτό. 1434 01:08:36,390 --> 01:08:39,170 Αυτό που θέλω να επικεντρωθώ είναι εδώ. 1435 01:08:39,170 --> 01:08:44,020 Λέμε var searchButton ισούται document.getElementById search_button. 1436 01:08:44,020 --> 01:08:46,450 >> Έτσι, όπως μπορείτε να μαντέψετε, τι είναι αυτό που κάνει είναι να λέει, 1437 01:08:46,450 --> 01:08:50,920 Εντάξει, πηγαίνετε να βρείτε το στοιχείο με ID search_button. 1438 01:08:50,920 --> 01:08:52,790 Και τώρα έχουμε ότι πραγματικό στοιχείο και είμαι 1439 01:08:52,790 --> 01:08:56,279 πρόκειται να το αποθηκεύσετε σε ένα μεταβλητή searchButton. 1440 01:08:56,279 --> 01:09:00,651 Και τώρα μπορούμε να χρησιμοποιήσουμε πραγματικά αυτό το στοιχείο και να το αλλάξετε, ή να έχετε πρόσβαση αξίες της, 1441 01:09:00,651 --> 01:09:01,359 πράγματα σαν αυτό. 1442 01:09:01,359 --> 01:09:04,649 Μπορούμε πραγματικά να αρχίσουμε να ασχολούνται με την ιστοσελίδα. 1443 01:09:04,649 --> 01:09:10,330 >> Εδώ, λοιπόν, να πω, εντάξει, τώρα που έχω ότι το κουμπί, όταν κάνετε κλικ, 1444 01:09:10,330 --> 01:09:12,859 ονομάζουμε ανώνυμη συνάρτηση. 1445 01:09:12,859 --> 01:09:16,811 Έτσι, αυτό είναι όπου ανώνυμο λειτουργίες είναι χρήσιμη. 1446 01:09:16,811 --> 01:09:18,060 Και τι κάνει η λειτουργία κάνει; 1447 01:09:18,060 --> 01:09:20,529 Λοιπόν, καλεί ακριβώς αυτό άγρυπνη λειτουργία και λέει, 1448 01:09:20,529 --> 01:09:22,910 κάνατε κλικ στο κουμπί Αναζήτηση. 1449 01:09:22,910 --> 01:09:29,670 >> Λοιπόν, τι θα συμβεί αν πάω οπουδήποτε Αυτό HTML ζει και κάντε κλικ στο κουμπί, 1450 01:09:29,670 --> 01:09:33,729 Θα πάρω ένα φανταχτερό λίγο ειδοποίηση που λέει ότι κλικ στο κουμπί. 1451 01:09:33,729 --> 01:09:40,710 Έτσι, τα πράγματα να επικεντρωθεί στην here-- document.getElementById 1452 01:09:40,710 --> 01:09:44,960 παίρνει ένα συγκεκριμένο HTML στοιχείο με το δεδομένο ταυτότητας. 1453 01:09:44,960 --> 01:09:48,529 Και τώρα μπορούμε να καθορίσουμε τι πρέπει να συμβεί όταν 1454 01:09:48,529 --> 01:09:50,702 το συγκεκριμένο στοιχείο έχει πατηθεί. 1455 01:09:50,702 --> 01:09:52,670 >> Κοινό: Πρέπει να βάλουμε όλα αυτά μέσα; 1456 01:09:52,670 --> 01:09:53,162 >> ΧΑΝΑ Μπλούμπεργκ: Συγνώμη; 1457 01:09:53,162 --> 01:09:55,130 >> Κοινό: Μήπως πρέπει να σωματικά κωδικοποιήσει όλα αυτά; 1458 01:09:55,130 --> 01:09:56,340 >> ΧΑΝΑ Blumberg: Μήπως πρέπει να σωματικά κωδικοποιήσει όλα αυτά; 1459 01:09:56,340 --> 01:09:56,839 Ναί. 1460 01:09:56,839 --> 01:09:58,120 Δεν είναι αυτό το είδος των ενοχλητικό; 1461 01:09:58,120 --> 01:10:00,032 Αυτό είναι ένα πολύ κώδικα. 1462 01:10:00,032 --> 01:10:01,574 >> Κοινό: Θα μπορούσατε να εισάγετε κάτι. 1463 01:10:01,574 --> 01:10:02,532 ΧΑΝΑ Μπλούμπεργκ: Δεξιά. 1464 01:10:02,532 --> 01:10:03,610 Θα μπορούσαμε να χρησιμοποιήσουμε κάτι. 1465 01:10:03,610 --> 01:10:08,140 Και σε particular-- Ω, είναι λέγοντάς μου ότι πρέπει να διδάξει την ενότητα. 1466 01:10:08,140 --> 01:10:11,061 Συγκεκριμένα, ας χρήση της βιβλιοθήκης jQuery, 1467 01:10:11,061 --> 01:10:13,060 γιατί αυτό ήταν πραγματικά μακρά και πραγματικά ενοχλητικό 1468 01:10:13,060 --> 01:10:16,860 και θέλω να είμαι σε θέση να το απλοποιήσουμε και να καταστεί συντομότερη και πιο εύκολο να γράψει. 1469 01:10:16,860 --> 01:10:19,810 >> Έτσι jQuery είναι μια βιβλιοθήκη JavaScript. 1470 01:10:19,810 --> 01:10:24,930 Έτσι, το JavaScript είναι ο προγραμματισμός γλώσσα; jQuery είναι μια βιβλιοθήκη. 1471 01:10:24,930 --> 01:10:27,190 Και αυτό κάνει ένα σωρό πράγματα πιο εύκολα. 1472 01:10:27,190 --> 01:10:33,230 Κάνει την αλλαγή και να πηγαίνει πέρα ​​από ένα έγγραφο HTML πολύ ευκολότερη. 1473 01:10:33,230 --> 01:10:35,030 >> Κάνει τα γεγονότα ευκολότερο χειρισμό. 1474 01:10:35,030 --> 01:10:37,580 Κάνει ευκολότερη κινούμενα σχέδια και καθιστά ευκολότερη Άγιαξ. 1475 01:10:37,580 --> 01:10:40,140 Ας άλμα σε δύο αυτά τα πράγματα αυτή τη στιγμή. 1476 01:10:40,140 --> 01:10:40,900 Με συγχωρείτε. 1477 01:10:40,900 --> 01:10:42,620 Πριν το κάνουμε, κάποια βασική σύνταξη. 1478 01:10:42,620 --> 01:10:46,870 >> Αυτό είναι ό, τι πιο καλεί να η βιβλιοθήκη jQuery μοιάζουν. 1479 01:10:46,870 --> 01:10:50,520 Χρησιμοποιούμε αυτό το δολάριο sign-- κανένα σημάδι σύνδεση με την PHP, 1480 01:10:50,520 --> 01:10:56,030 inconvenient-- μόνο το όνομα ενός επιλογέα, τελεία, και στη συνέχεια μια δράση. 1481 01:10:56,030 --> 01:10:58,860 Ας δούμε λοιπόν μερικά συγκεκριμένα παραδείγματα γι 'αυτό. 1482 01:10:58,860 --> 01:11:02,980 >> Έτσι, αυτό στην πραγματικότητα είναι το ίδιο Κωδικός από το κλείστρο εκδήλωση. 1483 01:11:02,980 --> 01:11:08,740 Έτσι, αυτό το μεγάλο, άσχημο πράγμα γίνεται Αυτό το πολύ καλύτερο, μικρότερο πράγμα. 1484 01:11:08,740 --> 01:11:10,370 Οπότε ας προσπαθήσουμε να σπάσει αυτό κάτω. 1485 01:11:10,370 --> 01:11:17,090 Αυτό λέει, εντάξει, αυτό jQuery-- δολάριο sign-- jQuery, βρείτε μου το παράθυρο. 1486 01:11:17,090 --> 01:11:18,480 Έτσι, αυτό είναι ο επιλογέας. 1487 01:11:18,480 --> 01:11:21,800 >> Όταν φορτώνει, καλέσετε τη συνάρτηση αυτή. 1488 01:11:21,800 --> 01:11:23,880 Έτσι ώστε να είναι πάντα μέσα. 1489 01:11:23,880 --> 01:11:24,380 ΕΝΤΆΞΕΙ. 1490 01:11:24,380 --> 01:11:25,740 Μέχρι εδώ καλά? 1491 01:11:25,740 --> 01:11:26,750 Εντάξει. 1492 01:11:26,750 --> 01:11:32,970 >> Τώρα, jQuery, βρείτε μου το πράγμα με ID search_button. 1493 01:11:32,970 --> 01:11:36,090 Και τι γίνεται κλικ, καλέσετε τη συνάρτηση αυτή. 1494 01:11:36,090 --> 01:11:37,900 Και τότε αυτή η λειτουργία του ακριβώς το ίδιο. 1495 01:11:37,900 --> 01:11:41,052 Απλά κάνουμε ένα μικρό κομμάτι της προειδοποίησης, κάνατε κλικ στο κουμπί Αναζήτηση. 1496 01:11:41,052 --> 01:11:42,650 >> Γι 'αυτό είναι πολύ ωραίο. 1497 01:11:42,650 --> 01:11:46,260 Είναι πραγματικά συμπυκνώνει και απλοποιεί τον κωδικό μας. 1498 01:11:46,260 --> 01:11:49,030 Πώς ξέρω ότι Είναι ID search_button 1499 01:11:49,030 --> 01:11:50,960 και όχι σαν τάξη search_button; 1500 01:11:50,960 --> 01:11:52,024 >> Κοινό: Hashtag; 1501 01:11:52,024 --> 01:11:52,940 ΧΑΝΑ Μπλούμπεργκ: Ναι. 1502 01:11:52,940 --> 01:11:56,450 Το σύμβολο αυτό hash, είναι ακριβώς όπως το CSS. 1503 01:11:56,450 --> 01:12:00,080 Έτσι θυμηθείτε, με το CSS, όταν ήθελε να επιλέξετε κάτι με ID, 1504 01:12:00,080 --> 01:12:01,590 χρησιμοποιήσαμε το σύμβολο της λίρας. 1505 01:12:01,590 --> 01:12:05,400 Και όταν θέλαμε να επιλέξετε κάτι από την τάξη, θα χρησιμοποιήσω την τελεία. 1506 01:12:05,400 --> 01:12:06,870 Εξαιρετική. 1507 01:12:06,870 --> 01:12:08,230 Βγάζει νόημα? 1508 01:12:08,230 --> 01:12:11,500 Έτσι jQuery υποτίθεται ότι απλά κάνουν τη ζωή μας πιο εύκολη. 1509 01:12:11,500 --> 01:12:12,000 Ναι. 1510 01:12:12,000 --> 01:12:15,660 >> Κοινό: Έτσι είμαι μια μικρή σύγχυση ως για το πώς λειτουργεί η ανώνυμη λειτουργία. 1511 01:12:15,660 --> 01:12:19,027 Έχετε ονομάσετε αυτό Anonymouse λειτουργία, λειτουργούν; 1512 01:12:19,027 --> 01:12:20,594 Πώς είναι αυτό που ονομάζεται; 1513 01:12:20,594 --> 01:12:21,510 ΧΑΝΑ Μπλούμπεργκ: Σίγουρα. 1514 01:12:21,510 --> 01:12:25,812 Έτσι, η λειτουργία είναι απλά μια λέξη κλειδί που λέει, είμαι έτοιμος να ορίσουμε μια συνάρτηση. 1515 01:12:25,812 --> 01:12:26,520 Κοινό: Ω, εντάξει. 1516 01:12:26,520 --> 01:12:27,353 ΧΑΝΑ Μπλούμπεργκ: εντάξει; 1517 01:12:27,353 --> 01:12:32,120 Και τότε θα το περάσει ως επιχείρημα to-- ας ρίξουμε 1518 01:12:32,120 --> 01:12:37,040 Αυτή η εσωτερική ένα-- στη λειτουργία κλικ. 1519 01:12:37,040 --> 01:12:39,420 Οπότε ναι, έτσι ώστε η λειτουργία, Αυτή η ανώνυμη συνάρτηση, 1520 01:12:39,420 --> 01:12:40,910 γίνεται ένα πραγματικό επιχείρημα. 1521 01:12:40,910 --> 01:12:43,632 Έτσι θυμηθείτε σε JavaScript, εμείς μπορεί να θεραπεύσει λειτουργεί ως αξίες. 1522 01:12:43,632 --> 01:12:44,340 Κοινό: Ω, εντάξει. 1523 01:12:44,340 --> 01:12:45,256 ΧΑΝΑ Μπλούμπεργκ: Ναι. 1524 01:12:45,256 --> 01:12:46,035 Μου αρέσει ότι "Ω". 1525 01:12:46,035 --> 01:12:47,490 Όμορφη. 1526 01:12:47,490 --> 01:12:49,915 Άλλες ερωτήσεις; 1527 01:12:49,915 --> 01:12:50,505 Φορά? 1528 01:12:50,505 --> 01:12:51,380 ΜΑΡΙΑ ZLATKOVA: Καλή. 1529 01:12:51,380 --> 01:12:52,760 Καλός. 1530 01:12:52,760 --> 01:12:54,210 >> ΧΑΝΑ Μπλούμπεργκ: Awesome. 1531 01:12:54,210 --> 01:12:55,720 Μερικά γρήγορα χρήσιμα jQuery. 1532 01:12:55,720 --> 01:12:57,559 Είμαι δεν πρόκειται να πάει μέσω όλων αυτών. 1533 01:12:57,559 --> 01:12:59,350 Αυτές οι διαφάνειες θα είναι σε απευθείας σύνδεση λίγη 1534 01:12:59,350 --> 01:13:02,040 αργότερα, ώστε να μπορείτε να ελέγξετε έξω λίγο αργότερα. 1535 01:13:02,040 --> 01:13:07,120 Αλλά βασικά, το γενικό μοτίβο κατέχει όπου λέμε, 1536 01:13:07,120 --> 01:13:11,510 ΟΚ, hey, jQuery, εδώ μου επιλογής και, στη συνέχεια, εδώ είναι μια ενέργεια. 1537 01:13:11,510 --> 01:13:15,940 Και μπορείτε να κάνετε πράγματα όπως η πρόσβαση στην αξία μιας μορφής, έχουν πρόσβαση σε κάποια HTML, 1538 01:13:15,940 --> 01:13:19,195 ελέγχου τι συμβαίνει όταν ο χρήστης υποβάλλει μια φόρμα, τέτοια πράγματα. 1539 01:13:19,195 --> 01:13:20,106 Ναί. 1540 01:13:20,106 --> 01:13:22,090 >> Κοινό: Έτσι, στο εξετάσεις, θα πάμε να χρειάζονται 1541 01:13:22,090 --> 01:13:25,066 να γνωρίζουν αρκετά από η τεκμηρίωση jQuery. 1542 01:13:25,066 --> 01:13:31,018 Έτσι, δεδομένου ότι copy / paste το jQuery τεκμηρίωση για σκονάκι μας, 1543 01:13:31,018 --> 01:13:32,506 όπου κληρωθεί η γραμμή; 1544 01:13:32,506 --> 01:13:33,957 Όπως και πόσα χρειαζόμαστε να ξέρουμε; 1545 01:13:33,957 --> 01:13:35,290 ΧΑΝΑ Blumberg: Μεγάλη ερώτηση. 1546 01:13:35,290 --> 01:13:37,765 Το ερώτημα είναι κατ 'ουσίαν, δεδομένου ότι 1547 01:13:37,765 --> 01:13:41,330 δεν μπορεί να έχει πρόσβαση στην τεκμηρίωση jQuery κατά τη διάρκεια της δοκιμής, Πόσο θα πρέπει να 1548 01:13:41,330 --> 01:13:41,830 ξέρω? 1549 01:13:41,830 --> 01:13:45,540 Εμείς δεν θα περιμένουμε να έρθει με κάποια τυχαία λειτουργία 1550 01:13:45,540 --> 01:13:47,240 ότι θα σας περιμένουμε στην Google. 1551 01:13:47,240 --> 01:13:52,930 >> Πράγματα που είναι δίκαιο παιχνίδι είναι θα το έκανα λένε ακριβώς το είδος της γενικής σύνταξης, 1552 01:13:52,930 --> 01:13:58,310 να είναι σε θέση να επιλέξει με ID και από class-- έτσι ακριβώς όπως CSS. 1553 01:13:58,310 --> 01:14:01,876 Και τότε οι πραγματικές λειτουργίες εαυτό, εμείς μάλλον θα σας πω. 1554 01:14:01,876 --> 01:14:02,376 Ναι. 1555 01:14:02,376 --> 01:14:05,591 >> Κοινό: Έτσι, όταν επιλέγετε ανά κατηγορία θα σήμαινε τελεία. 1556 01:14:05,591 --> 01:14:06,840 ΧΑΝΑ Blumberg: Ναι, ακριβώς. 1557 01:14:06,840 --> 01:14:07,340 Καλός. 1558 01:14:07,340 --> 01:14:10,461 Όταν επιλέγετε ανά κατηγορία, πρόκειται να dot αντί του σύμβολο της λίρας. 1559 01:14:10,461 --> 01:14:10,960 Ναί. 1560 01:14:10,960 --> 01:14:12,710 >> ΚΟΙΝΟ: Θα πάει πάνω από τη διαφορά 1561 01:14:12,710 --> 01:14:14,310 μεταξύ της επιλογής με ID και ανά κατηγορία; 1562 01:14:14,310 --> 01:14:14,560 >> ΧΑΝΑ Μπλούμπεργκ: Σίγουρα. 1563 01:14:14,560 --> 01:14:17,510 Η διαφορά μεταξύ της επιλογής ID και επιλέγοντας ανά κατηγορία. 1564 01:14:17,510 --> 01:14:20,685 Έτσι, όπως δήλωσε η Μαρία α Λίγο νωρίτερα, υπάρχει 1565 01:14:20,685 --> 01:14:26,280 μπορεί να είναι μόνο ένα στοιχείο HTML με αυτό το ID, ενώ τάξη, 1566 01:14:26,280 --> 01:14:29,740 μας επιτρέπει να ομαδοποιήσετε ένα μάτσο των διαφόρων στοιχείων μεταξύ τους, 1567 01:14:29,740 --> 01:14:34,300 έτσι τα πράγματα που σχετίζονται, αλλά όχι ακριβώς το ίδιο. 1568 01:14:34,300 --> 01:14:35,685 Μήπως αυτό να απαντήσει στο ερώτημα; 1569 01:14:35,685 --> 01:14:36,200 Φοβερός. 1570 01:14:36,200 --> 01:14:37,194 Ναί. 1571 01:14:37,194 --> 01:14:40,680 >> Κοινό: Τι γίνεται αν έχετε πολλαπλές πράγματα που βρίσκονται στην ίδια τάξη; 1572 01:14:40,680 --> 01:14:42,150 >> ΧΑΝΑ Blumberg: Τι συμβαίνει αν έχετε πολλά πράγματα ότι 1573 01:14:42,150 --> 01:14:43,280 είναι το ίδιο τάξη; 1574 01:14:43,280 --> 01:14:45,829 Έτσι, για παράδειγμα, αν είμαστε χρησιμοποιώντας μόνο αγνά JavaScript, 1575 01:14:45,829 --> 01:14:48,120 θα κάναμε κάτι σαν document.getElementsByClass. 1576 01:14:48,120 --> 01:14:52,280 1577 01:14:52,280 --> 01:14:56,320 Και τότε τι κάνει αυτό πραγματικότητα Είναι επιστρέφει έναν πίνακα των στοιχείων. 1578 01:14:56,320 --> 01:14:59,517 >> Και θα πρέπει είτε να επαναλάβει πάνω τους ή να βρουν ποια θέλετε. 1579 01:14:59,517 --> 01:15:01,350 Δεν πρόκειται να δώσω Είσαι ένα μόνο στοιχείο. 1580 01:15:01,350 --> 01:15:03,450 Δεν πρόκειται να σας δώσω μια συστοιχία των στοιχείων. 1581 01:15:03,450 --> 01:15:05,280 Μεγάλη ερώτηση. 1582 01:15:05,280 --> 01:15:07,700 Τίποτα άλλο; 1583 01:15:07,700 --> 01:15:09,520 Φοβερός. 1584 01:15:09,520 --> 01:15:12,860 >> Πιστεύω λοιπόν ότι, αν είστε εξοικειωμένοι με κάθε jQuery είδατε στο PSET, 1585 01:15:12,860 --> 01:15:15,600 θα πρέπει να είναι καλό να πάει. 1586 01:15:15,600 --> 01:15:16,325 Ερώτηση? 1587 01:15:16,325 --> 01:15:17,610 Ωχ όχι. 1588 01:15:17,610 --> 01:15:18,859 Θα ήθελα πραγματικά να διδάξουν. 1589 01:15:18,859 --> 01:15:19,358 Χαλαρώστε. 1590 01:15:19,358 --> 01:15:20,035 Θα είναι μια χαρά. 1591 01:15:20,035 --> 01:15:20,660 Θα φτάσετε εκεί. 1592 01:15:20,660 --> 01:15:24,670 1593 01:15:24,670 --> 01:15:26,870 >> Ας μιλήσουμε για Ajax. 1594 01:15:26,870 --> 01:15:31,350 Έτσι Ajax πρόκειται να είναι a-- καλά, Ας ξεκινήσουμε με το τι σημαίνει. 1595 01:15:31,350 --> 01:15:32,350 Είναι ένα αρκτικόλεξο. 1596 01:15:32,350 --> 01:15:35,855 Ξεχωρίζει για Ασύγχρονης JavaScript και XML. 1597 01:15:35,855 --> 01:15:39,800 Και XML είναι βασικά πρόκειται να είναι [Δεν ακούγεται] με τον τύπο των δεδομένων μας. 1598 01:15:39,800 --> 01:15:42,100 Αλλά δεν έχουν πράγματι χρησιμοποιηθεί XML. 1599 01:15:42,100 --> 01:15:43,430 Αντ 'αυτού, εμείς απλά χρησιμοποιήστε JSON. 1600 01:15:43,430 --> 01:15:48,350 >> Έτσι, βασικά, είναι μερικά data-- ασύγχρονη, JavaScript, και τα δεδομένα, 1601 01:15:48,350 --> 01:15:50,040 Στην περίπτωση αυτή, JSON. 1602 01:15:50,040 --> 01:15:52,820 Και ο στόχος μας, όπως αναφέραμε λίγο νωρίτερα, 1603 01:15:52,820 --> 01:15:56,880 είναι να είναι σε θέση να κάνει μια αιτήματος, έχουν κάνει το αίτημα αυτό 1604 01:15:56,880 --> 01:16:00,700 πράγμα στο φόντο, αλλά να συνεχίσει 1605 01:16:00,700 --> 01:16:02,550 κάνουμε ό, τι σκόπευαν να κάνουν. 1606 01:16:02,550 --> 01:16:06,650 Και στη συνέχεια, όταν οι πληροφορίες αυτές είναι έτοιμο, τότε θα το ενσωματώσει. 1607 01:16:06,650 --> 01:16:08,470 >> Ας δούμε λοιπόν τι είναι αυτό πραγματικά μοιάζει. 1608 01:16:08,470 --> 01:16:11,210 Και αυτό, θα πρέπει να είναι λίγο εξοικειωμένοι 1609 01:16:11,210 --> 01:16:13,680 από pset8, αυτό που μόλις γύρισε στο. 1610 01:16:13,680 --> 01:16:16,200 Έτσι, εδώ είναι μια έγκυρη jQuery λειτουργία ώστε να μπορούμε να 1611 01:16:16,200 --> 01:16:18,250 θέλουν να ξέρουν about-- αυτό το σύμβολο του δολαρίου. 1612 01:16:18,250 --> 01:16:21,500 Έτσι λέει η λειτουργία jQuery, .getJson. 1613 01:16:21,500 --> 01:16:25,020 >> Και τι αυτή η λειτουργία δεν είναι παίρνει μια διεύθυνση URL και κάποια parameters-- 1614 01:16:25,020 --> 01:16:28,000 έτσι νομίζω ότι στην περίπτωση της pset8, ήταν σαν, 1615 01:16:28,000 --> 01:16:33,520 η διεύθυνση URL ήταν articles.php και η παράμετροι ήταν go = κάποια ταχυδρομικό κώδικα. 1616 01:16:33,520 --> 01:16:41,580 Και λέει, εντάξει, να υποβάλει αίτηση για Αυτή η διεύθυνση URL με τις δεδομένες παραμέτρους. 1617 01:16:41,580 --> 01:16:43,480 Και αυτό ακριβώς συμβαίνει. 1618 01:16:43,480 --> 01:16:47,730 >> Όταν τελειώνει, είναι είτε πρόκειται να ολοκληρωθεί με επιτυχία 1619 01:16:47,730 --> 01:16:49,370 ή πρόκειται να αποτύχει. 1620 01:16:49,370 --> 01:16:53,480 Έτσι, αυτό είναι το ισοδύναμο της κλήσης Ο Rob και τον καλούν να κάνει κάτι. 1621 01:16:53,480 --> 01:17:00,260 Και στη συνέχεια, όταν ο ίδιος αποκαλεί πίσω, αυτός είναι είτε πρόκειται να πω είμαι γίνει ή θα αποτύχει. 1622 01:17:00,260 --> 01:17:04,030 >> Έτσι, στην περίπτωση που είστε κάνει, λέτε, εντάξει, είμαι done. 1623 01:17:04,030 --> 01:17:05,980 Και τότε θα καλέσετε τη συνάρτηση αυτή. 1624 01:17:05,980 --> 01:17:08,915 Σε αυτή την περίπτωση, πρόκειται να είναι μια συνάρτηση που παίρνει κάποιες πληροφορίες. 1625 01:17:08,915 --> 01:17:12,890 Η μία που συνήθως νοιάζει είναι τα δεδομένα, Τα δεδομένα που έχουν πραγματικά επιστραφεί 1626 01:17:12,890 --> 01:17:15,900 ως αποτέλεσμα της κλήσης .getJSON. 1627 01:17:15,900 --> 01:17:17,470 >> Και μπορείτε να κάνετε κάτι με αυτό. 1628 01:17:17,470 --> 01:17:23,670 Έτσι, στην περίπτωση της pset8, Εμείς θα εμφανίζονται σε μια λίστα. 1629 01:17:23,670 --> 01:17:29,050 Fail πρόκειται να είναι μια συνάρτηση ότι λέγεται, εάν η αίτηση δεν 1630 01:17:29,050 --> 01:17:30,450 για οποιονδήποτε λόγο. 1631 01:17:30,450 --> 01:17:35,104 Και στην περίπτωση της pset8, εμείς απλά console.log. 1632 01:17:35,104 --> 01:17:36,020 Οποιεσδήποτε ερωτήσεις σχετικά με αυτό; 1633 01:17:36,020 --> 01:17:36,300 Ναι. 1634 01:17:36,300 --> 01:17:39,633 >> Κοινό: Μπορούμε απλά να χρησιμοποιήσετε τη λειτουργία θήτα αντί της λειτουργίας, textStatus, jqHXR. 1635 01:17:39,633 --> 01:17:43,464 1636 01:17:43,464 --> 01:17:44,380 ΧΑΝΑ Μπλούμπεργκ: Σίγουρα. 1637 01:17:44,380 --> 01:17:46,713 Οπότε ναι, νομίζω ότι στην PSET, μόλις είδαμε τα δεδομένα λειτουργίας. 1638 01:17:46,713 --> 01:17:48,700 Έτσι είναι ακριβώς the-- ναι, εντάξει. 1639 01:17:48,700 --> 01:17:50,510 Αυτό είναι ό, τι είδαμε στο PSET. 1640 01:17:50,510 --> 01:17:51,480 Αυτό είναι εντελώς καλά. 1641 01:17:51,480 --> 01:17:54,210 >> Αυτά είναι μόνο αν ήθελες να τραβήξει περισσότερες πληροφορίες, 1642 01:17:54,210 --> 01:17:57,190 αυτά είναι τα πράγματα που θα μπορούσατε να πάρετε από .getJSON. 1643 01:17:57,190 --> 01:17:59,040 Καλή ερώτηση. 1644 01:17:59,040 --> 01:17:59,706 Τίποτα άλλο; 1645 01:17:59,706 --> 01:18:00,206 Ναι. 1646 01:18:00,206 --> 01:18:01,787 >> Κοινό: Έτσι .getJSON είναι Ajax; 1647 01:18:01,787 --> 01:18:02,620 ΧΑΝΑ Μπλούμπεργκ: OK. 1648 01:18:02,620 --> 01:18:05,700 Έτσι, αυτό είναι το είδος των δύσκολο μέρος. 1649 01:18:05,700 --> 01:18:12,390 Είναι μια λειτουργία που επιτρέπει jQuery μπορείτε να κάνετε κλήσεις ασύγχρονη. 1650 01:18:12,390 --> 01:18:16,080 Και αυτές οι ασύγχρονες κλήσεις, αυτό είναι αυτό που έχουμε αναφέρονται ως Ajax. 1651 01:18:16,080 --> 01:18:16,850 Ναι. 1652 01:18:16,850 --> 01:18:20,185 Αυτό μου πήρε ένα πραγματικά μεγάλο χρονικό διάστημα για να τραβήξει χώρια όταν ήμουν φοιτητής. 1653 01:18:20,185 --> 01:18:21,560 Κοινό: Μπορείτε να πείτε ότι και πάλι; 1654 01:18:21,560 --> 01:18:22,476 ΧΑΝΑ Μπλούμπεργκ: Ναι. 1655 01:18:22,476 --> 01:18:23,630 Μπορώ να πω ότι και πάλι; 1656 01:18:23,630 --> 01:18:29,010 Αυτή η λειτουργία .getJSON, είναι μια συνάρτηση jQuery. 1657 01:18:29,010 --> 01:18:31,970 Και αυτό πρόκειται να κάνει μια ασύγχρονη κλήση. 1658 01:18:31,970 --> 01:18:35,700 Και αυτές οι ασύγχρονες κλήσεις, έχουμε έχουν αναφερόμενος σε αυτούς ως Ajax. 1659 01:18:35,700 --> 01:18:39,610 1660 01:18:39,610 --> 01:18:41,872 >> Οποιεσδήποτε άλλες ερωτήσεις; 1661 01:18:41,872 --> 01:18:43,330 Έχουμε μόλις μερικά λεπτά αριστερά. 1662 01:18:43,330 --> 01:18:45,080 Και η Μαρία πρόκειται να τυλίγουμε με ασφάλεια 1663 01:18:45,080 --> 01:18:47,464 και στη συνέχεια θα πάμε πρέπει να γίνει ακριβώς για. 1664 01:18:47,464 --> 01:18:48,630 ΜΑΡΙΑ ZLATKOVA: Awesome, εντάξει. 1665 01:18:48,630 --> 01:18:54,030 Έτσι, αυτό is-- απλά πάρτε ένα ζευγάρι δευτερόλεπτα να κοιτάξει πέρα ​​από αυτό. 1666 01:18:54,030 --> 01:18:56,750 Και αυτό δεν είναι κάτι πραγματικά μεγάλο. 1667 01:18:56,750 --> 01:18:59,430 Και μπορεί κάποιος να μου πει γιατί; 1668 01:18:59,430 --> 01:19:05,650 Τι συμβαίνει στην foo και μπορεί μπορούσαν δυνητικά να οδηγήσει σε κάτι κακό, 1669 01:19:05,650 --> 01:19:06,770 και τι λέγεται; 1670 01:19:06,770 --> 01:19:07,270 Ναι. 1671 01:19:07,270 --> 01:19:10,391 Κοινό: Εάν το επιχείρημα ότι είναι περνιέται είναι πάνω από 12 χαρακτήρες, 1672 01:19:10,391 --> 01:19:11,454 θα μπορούσε να ξεχειλίσει. 1673 01:19:11,454 --> 01:19:12,370 ΜΑΡΙΑ ZLATKOVA: Δεξιά. 1674 01:19:12,370 --> 01:19:14,180 Τέλειος. 1675 01:19:14,180 --> 01:19:15,384 Πώς ονομάζεται? 1676 01:19:15,384 --> 01:19:16,300 Απλά το ανέφερα. 1677 01:19:16,300 --> 01:19:16,840 >> Κοινό: Υπερχείλιση. 1678 01:19:16,840 --> 01:19:18,381 >> ΜΑΡΙΑ ZLATKOVA: Yup, υπερχείλισης buffer. 1679 01:19:18,381 --> 01:19:21,230 Έτσι, αυτό είναι κάτι που αναφέρονται ως υπερχείλιση του buffer. 1680 01:19:21,230 --> 01:19:25,500 Και βλέπουμε ότι στο εσωτερικό της foo, έχουμε καθορίσει ρυθμιστικό μας, γ, 1681 01:19:25,500 --> 01:19:27,240 με μέγεθος 12. 1682 01:19:27,240 --> 01:19:32,680 Ωστόσο, σε γενικές γραμμές, δεν το κάνουμε ελέγχει με οποιοδήποτε τρόπο σε όλα 1683 01:19:32,680 --> 01:19:36,480 αν η argv1-- έτσι ώστε Ήταν το δεύτερο επιχείρημα. 1684 01:19:36,480 --> 01:19:39,630 Εμείς δεν ελέγχει αν η το μέγεθος της είναι σκόπιμο. 1685 01:19:39,630 --> 01:19:43,380 >> Έτσι, αν είχαμε ένα ιδιαίτερα κακόβουλος χρήστης 1686 01:19:43,380 --> 01:19:47,170 που βάζουν σε κάποιο επιχείρημα που ήταν περισσότερο από 12, και στη συνέχεια, ενδεχομένως 1687 01:19:47,170 --> 01:19:50,850 πέρα από τα όρια της εν λόγω επιχείρημα, είχε κάποια εκτελέσιμο κώδικα 1688 01:19:50,850 --> 01:19:55,570 ότι προσπαθούσε να κάνει κάτι κακό Με αυτό; τότε αυτό, τι θα συνέβαινε, 1689 01:19:55,570 --> 01:19:59,310 θα υπερισχύσει η επιστροφή διεύθυνση της συνάρτησης foo, 1690 01:19:59,310 --> 01:20:04,370 προκαλώντας τη λειτουργία όταν επιστρέφοντας να εκτελέσει αυτόν τον κώδικα. 1691 01:20:04,370 --> 01:20:07,540 Και τότε κακά πράγματα θα μπορούσαν να συμβούν. 1692 01:20:07,540 --> 01:20:09,850 Μήπως αυτό έχει νόημα για όλους; 1693 01:20:09,850 --> 01:20:12,424 >> Και πώς μπορούμε να προστατευθούν από αυτό; 1694 01:20:12,424 --> 01:20:13,090 Οποιεσδήποτε προτάσεις? 1695 01:20:13,090 --> 01:20:16,480 1696 01:20:16,480 --> 01:20:21,890 Βασικά, στο εσωτερικό του δυνητικά foo, πώς 1697 01:20:21,890 --> 01:20:28,294 μπορούμε να ελέγξετε για να βεβαιωθείτε ότι αυτό δεν μπορεί να συμβεί; 1698 01:20:28,294 --> 01:20:33,879 >> Κοινό: Σε περίπτωση υπέρβασης της μέγεθος 12, θα διαθέσουν επιπλέον μνήμη; 1699 01:20:33,879 --> 01:20:37,170 ΜΑΡΙΑ ZLATKOVA: πρόταση είναι, να κατανείμει πρόσθετη μνήμη του μεγέθους ξεπεραστεί. 1700 01:20:37,170 --> 01:20:39,800 Στην πραγματικότητα, μπορούμε να κάνουμε κάτι πολύ απλούστερο από αυτό επίσης. 1701 01:20:39,800 --> 01:20:44,870 Μπορούμε να πάρουμε μόνο το μήκος του αλφαριθμητικού του επιχειρήματος που αναγράφεται, 1702 01:20:44,870 --> 01:20:48,590 ελέγξτε αν αυτό είναι λιγότερο από ή ίση με 12-- 1703 01:20:48,590 --> 01:20:50,790 που είναι αυτό που θέλουμε να είναι γιατί δεν θέλουμε 1704 01:20:50,790 --> 01:20:52,373 να υπερβαίνει τα όρια του ρυθμιστικού μας. 1705 01:20:52,373 --> 01:20:55,690 Και στη συνέχεια, αν δεν το κάνει, εμείς μπορεί να λειτουργήσει με το επιχείρημα. 1706 01:20:55,690 --> 01:21:00,296 Και στη συνέχεια, αν το κάνει, πραγματικά θέλουμε να Yello δυνητικά στο χρήστη. 1707 01:21:00,296 --> 01:21:01,670 Αλλά αυτό είναι το πώς θα το κάνουμε αυτό. 1708 01:21:01,670 --> 01:21:02,443 Ναί. 1709 01:21:02,443 --> 01:21:04,360 >> Κοινό: Θα μπορούσατε να εξηγήσει memcpy πραγματικά γρήγορα; 1710 01:21:04,360 --> 01:21:05,443 ΜΑΡΙΑ ZLATKOVA: Ω, συγγνώμη. 1711 01:21:05,443 --> 01:21:06,040 Ναί. 1712 01:21:06,040 --> 01:21:11,290 Memcpy παίρνει Όποια και αν είναι is-- συγγνώμη, εντάξει. 1713 01:21:11,290 --> 01:21:15,850 Memcpy παίρνει ό, τι είναι στο μπαρ, ό, τι έχει περάσει 1714 01:21:15,850 --> 01:21:18,050 πάνω foo ως όρισμα γραμμής εντολών. 1715 01:21:18,050 --> 01:21:19,440 Έτσι, πρόκειται να λάβει argv1. 1716 01:21:19,440 --> 01:21:21,420 Argv1 ονομάζεται μπαρ εδώ. 1717 01:21:21,420 --> 01:21:24,453 Έτσι, πρόκειται να λάβει bar και πρόκειται να το αντιγράψετε σε c. 1718 01:21:24,453 --> 01:21:25,402 >> Κοινό: OK. 1719 01:21:25,402 --> 01:21:28,360 ΜΑΡΙΑ ZLATKOVA: Και αυτό πρόκειται να copy-- το τρίτο επιχείρημα αφορά μόνο 1720 01:21:28,360 --> 01:21:30,601 στο πόσο πρόκειται να αντιγράψετε σε γ. 1721 01:21:30,601 --> 01:21:31,142 Κοινό: Αχ. 1722 01:21:31,142 --> 01:21:33,030 Έτσι αντιγραφή Αυτό και μόνο είναι όλα αυτά τότε. 1723 01:21:33,030 --> 01:21:34,310 >> ΜΑΡΙΑ ZLATKOVA: Ναι, αυτό είναι αντιγραφή όλο αυτό. 1724 01:21:34,310 --> 01:21:34,810 Ναι. 1725 01:21:34,810 --> 01:21:38,400 1726 01:21:38,400 --> 01:21:41,910 Πρώτον, βεβαιωθείτε ότι η γραμμή δεν είναι ίσο με null επειδή είναι ένας δείκτης. 1727 01:21:41,910 --> 01:21:44,680 Στη συνέχεια παίρνουμε το μήκος του νήματος του μπαρ. 1728 01:21:44,680 --> 01:21:47,530 Μπορούμε να διασφαλίσουμε ότι είναι μικρότερη ή ίση με 12. 1729 01:21:47,530 --> 01:21:50,070 Και τότε γιατί έχουμε φρόντισε, μπορούμε πραγματικά να 1730 01:21:50,070 --> 01:21:53,122 memcpy και να είστε σίγουροι ότι αυτό είναι εντάξει. 1731 01:21:53,122 --> 01:21:53,705 Καμιά ερώτηση? 1732 01:21:53,705 --> 01:21:56,280 1733 01:21:56,280 --> 01:21:58,690 Εξαιρετική. 1734 01:21:58,690 --> 01:22:00,400 Έχω δύο αληθείς ή ψευδείς ερωτήσεις. 1735 01:22:00,400 --> 01:22:05,470 Μπορεί κάποιος να μου πει αμέσως αν αυτά είναι αληθής ή ψευδής; 1736 01:22:05,470 --> 01:22:07,460 Ναι, είναι ψευδείς. 1737 01:22:07,460 --> 01:22:07,960 Ακριβώς. 1738 01:22:07,960 --> 01:22:09,330 Και οι δύο είναι ψευδείς. 1739 01:22:09,330 --> 01:22:12,682 Έτσι, χρησιμοποιώντας έναν κωδικό πρόσβασης Ποτέ δεν είναι πολύ καλή ιδέα 1740 01:22:12,682 --> 01:22:14,890 γιατί αν κάποιος ξέρει κωδικό σας, μπορείτε απλώς να 1741 01:22:14,890 --> 01:22:16,260 πρόσβαση σε όλους τους άλλους λογαριασμούς σας. 1742 01:22:16,260 --> 01:22:19,260 Και τότε τα εικονίδια δεν κάνουν τίποτα για την εξασφάλιση της ασφάλειας. 1743 01:22:19,260 --> 01:22:24,900 Θα πρέπει συνήθως αναζητούν HTTPS αντί του HTTP και τη διεύθυνση URL. 1744 01:22:24,900 --> 01:22:28,560 >> Και κάποια άλλα είδη επιθέσεις που έχουμε αναφέρει, 1745 01:22:28,560 --> 01:22:31,390 ότι ο David έχει αναφερθεί σε διάλεξη, SQL ένεση επιθέσεις. 1746 01:22:31,390 --> 01:22:37,310 Ήδη είδαμε ότι αν η don't-- Λειτουργία ερώτημα CS50 σιγουρεύεται ότι ο SQL 1747 01:22:37,310 --> 01:22:39,530 ένεση επιθέσεις δεν μπορεί να συμβεί. 1748 01:22:39,530 --> 01:22:42,640 Αλλά αν δεν ήμασταν χρησιμοποιώντας CS50, παραθέτω, εισαγωγικά "στο ερώτημα," 1749 01:22:42,640 --> 01:22:46,830 θα πρέπει να βεβαιωθείτε ότι ο που εισάγει ο χρήστης δεν είναι στην πραγματικότητα κάποια SQL 1750 01:22:46,830 --> 01:22:49,670 ερώτημα που θα προκαλέσει σε όλους τραπέζια μας να πέσει 1751 01:22:49,670 --> 01:22:54,070 ή κάτι κακό να να συμβεί με τη βάση δεδομένων μας. 1752 01:22:54,070 --> 01:22:56,790 >> Συνεδρία πειρατεία είναι ένα άλλο είδος της επίθεσης 1753 01:22:56,790 --> 01:23:05,940 ότι συμβαίνει όταν κάποιο κακό άτομο χρησιμοποιεί συνεδρία κάποιου θύματος 1754 01:23:05,940 --> 01:23:08,740 ID για να έχουν πρόσβαση στις πληροφορίες σύνδεσης. 1755 01:23:08,740 --> 01:23:13,620 Έτσι, ένα πολύ τετριμμένο παράδειγμα του ότι είναι όπως και αν έχουμε ένα δημόσιο υπολογιστή, 1756 01:23:13,620 --> 01:23:21,120 τότε το κακό πρόσωπο συνδεθεί και, στη συνέχεια, έχουν τα cookies που αποθηκεύονται. 1757 01:23:21,120 --> 01:23:23,380 Και τα cookies δεν αλλάζουν για τη συνεδρία. 1758 01:23:23,380 --> 01:23:27,620 >> Στη συνέχεια έχουμε το θύμα να πάει στο και, στη συνέχεια, συνδεθείτε με την ιστοσελίδα. 1759 01:23:27,620 --> 01:23:30,290 Τα cookies δεν αλλάζουν για ένα ορισμένο συνεδρία. 1760 01:23:30,290 --> 01:23:33,060 Και τότε το θύμα καταγράφει σε η ιστοσελίδα και στη συνέχεια να αποχωρεί. 1761 01:23:33,060 --> 01:23:36,190 Και τότε το πρόσωπο που πηγαίνει πίσω μπορεί στη συνέχεια να εξακολουθούν να χρησιμοποιούν αναγνωριστικό περιόδου λειτουργίας τους 1762 01:23:36,190 --> 01:23:37,430 να έχουν πρόσβαση στις πληροφορίες τους. 1763 01:23:37,430 --> 01:23:40,050 Έτσι, αυτό είναι ένα παράδειγμα πώς αυτό θα μπορούσε να συμβεί. 1764 01:23:40,050 --> 01:23:45,570 >> Και τότε εγώ δεν θα ανησυχούσα πάρα πολύ για το συγκεκριμένο κώδικα ή οτιδήποτε 1765 01:23:45,570 --> 01:23:49,270 όπως αυτό που θα μπορούσε να προκαλέσει αυτό, αλλά έχει κάποια ιδέα για το τι 1766 01:23:49,270 --> 01:23:51,400 οι μεταβλητές που εμπλέκονται σε αυτό είναι. 1767 01:23:51,400 --> 01:23:53,897 Και μετά το χειρισμό κεφαλίδα δεδομένων είναι ένα άλλο είδος της επίθεσης 1768 01:23:53,897 --> 01:23:55,230 ότι έχει ο David έχει μιλήσει. 1769 01:23:55,230 --> 01:23:59,730 Και αναφέρεται μόνο σε τι μπορεί να συμβεί όταν 1770 01:23:59,730 --> 01:24:04,300 η απάντηση, το HTTP ανταπόκριση στο εσωτερικό της επικεφαλίδας μας 1771 01:24:04,300 --> 01:24:05,720 δεν απολυμαίνονται σωστά. 1772 01:24:05,720 --> 01:24:14,340 >> Και κάθε της fields-- για παράδειγμα, αν κάποιος αντικαθιστά ένας από την επικεφαλίδα 1773 01:24:14,340 --> 01:24:18,860 οι τιμές περιέχουν τίποτα περισσότερο από τι πρέπει να contain-- και πραγματικότητα 1774 01:24:18,860 --> 01:24:22,720 περιέχουν, για παράδειγμα, ένα 200 Εντάξει κωδικό κατάστασης, τότε 1775 01:24:22,720 --> 01:24:26,890 θα μπορούσε ενδεχομένως να κάνει κακόβουλα τα πράγματα όταν κατέστη σαφές πως δεν έπρεπε. 1776 01:24:26,890 --> 01:24:30,815 Αλλά εγώ δεν θα ανησυχούσα πάρα πολύ πολύ για το συγκεκριμένο κωδικό 1777 01:24:30,815 --> 01:24:34,110 ότι θα μπορούσε να προκαλέσει αυτό, ακριβώς το είδος της κατανόησης 1778 01:24:34,110 --> 01:24:37,290 τα πράγματα σε υψηλό επίπεδο όπως αυτό. 1779 01:24:37,290 --> 01:24:39,570 >> Νομίζω ότι αυτό είναι το μόνο ότι θα πρέπει να καλύψουμε. 1780 01:24:39,570 --> 01:24:40,090 Καταπληκτικός. 1781 01:24:40,090 --> 01:24:43,310 Όποιος έχει οποιαδήποτε απορία σχετικά με οποιαδήποτε από τα πράγματα που καλύψαμε; 1782 01:24:43,310 --> 01:24:44,213 Ναί. 1783 01:24:44,213 --> 01:24:48,077 >> Κοινό: Έτσι, ένα είδος περισσότερα υλικοτεχνική ερώτηση. 1784 01:24:48,077 --> 01:24:53,400 Είναι το περιεχόμενο επικεντρώθηκε κυρίως για τα πράγματα μετά την 1η κουίζ; 1785 01:24:53,400 --> 01:24:55,730 >> ΜΑΡΙΑ ZLATKOVA: Λοιπόν ερώτημα είναι, είναι το περιεχόμενο 1786 01:24:55,730 --> 01:24:59,720 επικεντρώθηκε κυρίως σε πράγματα μετά κουίζ 1; 1787 01:24:59,720 --> 01:25:06,070 Έτσι, η εστίαση είναι στην μετά κουίζ 1, με την εξαίρεση 1788 01:25:06,070 --> 01:25:10,914 ότι πρέπει να επικεντρωθεί σε πράγματα σε pset5 και πολλές από τις δομές δεδομένων 1789 01:25:10,914 --> 01:25:11,580 ότι καλύψαμε. 1790 01:25:11,580 --> 01:25:14,300 Και δεν μπορούμε να πούμε ότι μπορεί να αγνοήσει τίποτα πριν 1791 01:25:14,300 --> 01:25:17,120 ότι επειδή στηρίζεται σ 'αυτήν, καθώς και. 1792 01:25:17,120 --> 01:25:21,845 >> Έτσι επικεντρωθεί σε αυτό, συν το υλικό pset5 όπως περιλαμβανομένων συνδεδεμένες λίστες, στοίβες, 1793 01:25:21,845 --> 01:25:23,720 ουρές, και τα πάντα ότι η Hannah πήγε πάνω. 1794 01:25:23,720 --> 01:25:24,050 >> ΧΑΝΑ Μπλούμπεργκ: Δεξιά. 1795 01:25:24,050 --> 01:25:27,450 Ναι, πήγαμε πάνω από όλα τα πράγματα C Στην αρχή πολύ γρήγορα. 1796 01:25:27,450 --> 01:25:29,090 Αλλά φροντίστε να επανεξετάσει αυτό. 1797 01:25:29,090 --> 01:25:32,700 Πηγαίνετε πίσω και να παρακολουθήσετε το κουίζ 0 κριτική. 1798 01:25:32,700 --> 01:25:36,110 >> Ένα ζευγάρι σημειώσεις πιο υλικοτεχνική, μόνο, ενώ έχουμε την προσοχή σας. 1799 01:25:36,110 --> 01:25:39,100 Θα έχετε ώρες γραφείου τόσο τη Δευτέρα και την Τρίτη το βράδυ. 1800 01:25:39,100 --> 01:25:41,540 Είναι πρόκειται να είναι σε MD 119. 1801 01:25:41,540 --> 01:25:44,220 Αυτό είναι όλο στην ιστοσελίδα, έτσι αν δεν το κάνει, μην ανησυχείτε ακούσετε. 1802 01:25:44,220 --> 01:25:45,266 >> ΜΑΡΙΑ ZLATKOVA: 8:30 - 11:00. 1803 01:25:45,266 --> 01:25:46,260 >> ΧΑΝΑ Blumberg: Ναι, 8:30 - 11:00. 1804 01:25:46,260 --> 01:25:46,910 Θα είμαστε εκεί. 1805 01:25:46,910 --> 01:25:48,368 Θα είμαστε εκεί για να απαντήσει σε ερωτήσεις. 1806 01:25:48,368 --> 01:25:49,480 Είναι αρκετά διασκεδαστικό και ψύχρα. 1807 01:25:49,480 --> 01:25:53,240 Εσείς μπορείτε να κάνετε ερωτήσεις ότι έχετε στο κουίζ 1. 1808 01:25:53,240 --> 01:25:55,740 Και κουίζ είναι για 1 Τετάρτη, τόσο καλή τύχη. 1809 01:25:55,740 --> 01:25:59,770 Εάν έχετε οποιεσδήποτε ερωτήσεις, ίσως Ελάτε να μιλήσουμε για μας μέχρι εδώ one-on-one. 1810 01:25:59,770 --> 01:26:00,880 Δροσερός. 1811 01:26:00,880 --> 01:26:01,630 Ευχαριστώ πολύ. 1812 01:26:01,630 --> 01:26:02,880 >> ΜΑΡΙΑ ZLATKOVA: Ευχαριστώ πολύ, παιδιά. 1813 01:26:02,880 --> 01:26:03,480 >> Κοινό: Yay. 1814 01:26:03,480 --> 01:26:05,930 >> [ΧΕΙΡΟΚΡΟΤΉΜΑΤΑ] 1815 01:26:05,930 --> 01:26:07,530