1 00:00:00,000 --> 00:00:05,616 2 00:00:05,616 --> 00:00:07,030 >> HANNAH BLUMBERG: Hi ყველას. 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 ჩვენ ვნახეთ მათ გამოყენებული hash მაგიდები, როდესაც ჩვენ 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 უნდა iterate ყველა გზა დასაწყისში. 34 00:01:26,510 --> 00:01:30,610 ასე რომ, გახსოვდეთ, რომ ყველაზე ძირითადი ოპერაციების omega 1. 35 00:01:30,610 --> 00:01:32,130 ასე რომ, ჩანართით მხოლოდ აპირებს 1. 36 00:01:32,130 --> 00:01:37,520 წაშალე აპირებს n, რადგან ჩვენ უნდა წავიდეს, რათა იგი სიიდან. 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 >> ცოტა stacks. 44 00:01:50,270 --> 00:01:53,980 ეს, კიდევ ერთხელ, გამოვიდა ინტელექტუალური 0, ასე რომ თქვენ უნდა იყოს სუპერ კომფორტულად იგი. 45 00:01:53,980 --> 00:01:57,210 მაგრამ stacks, ჩვენ ვთხოვთ თქვენ უნდა გვახსოვდეს, დასტის ქაღალდის. 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-- რომელიც ჩვენ მოვუწოდებთ popping off 49 00:02:04,980 --> 00:02:06,581 დასტის ჩვენ მოვა off დაბრუნება. 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 >> ჩვენ ვნახეთ stacks განხორციელდა ორივე უკავშირდება სიები და მასივები. 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 ასე რომ, ზომა იქნება მიმდინარე რიგი რამ თქვენს დასტის, 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 ეს იქნება პირველი, პირველი გარეთ. 62 00:02:40,697 --> 00:02:42,780 ასე რომ, თუ თქვენ უგულებელყოფა up რაღაც მაღაზიაში, 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 ჩვენ უბრალოდ, ვამბობთ enqueue და 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 >> OK, hash მაგიდები. 74 00:03:08,564 --> 00:03:10,605 აქ, სადაც იგი იწყებს მისაღებად ნამდვილად საინტერესო. 75 00:03:10,605 --> 00:03:14,150 ასე რომ, hash მაგიდა ერთი განხორციელება ასოციაციურ მასივში. 76 00:03:14,150 --> 00:03:16,700 ასე რომ, ძირითადად, თუ რა მოხდა არის, ჩვენ გვაქვს ყველა ამ input, 77 00:03:16,700 --> 00:03:18,750 და ვაძლევთ მას hash ფუნქცია, რომელიც ამბობს, 78 00:03:18,750 --> 00:03:21,840 OK, ეს არის, სადაც hash მაგიდა მას ეკუთვნის. 79 00:03:21,840 --> 00:03:24,860 >> ასე რომ მარტივი ქეშირების ფუნქცია რომელიც ჩვენ ვნახეთ, უბრალოდ ვამბობ, 80 00:03:24,860 --> 00:03:28,170 OK, ვფიქრობ, ჩვენ გვინდა, რომ სიმები ჩვენს hash მაგიდა. 81 00:03:28,170 --> 00:03:30,870 და ნამდვილად მარტივი იდეა შეიძლება ვთქვათ, OK, 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 მაგიდა, როგორც bunch სხვადასხვა თაიგულების. 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 >> ასე რომ, diving ცოტა მეტი შევიდა hash ფუნქცია, აქ 89 00:03:57,820 --> 00:03:59,870 მაგალითად მე აღწერილი, სადაც ჩვენ უბრალოდ, ვამბობთ, 90 00:03:59,870 --> 00:04:02,460 OK, მიიღოს პირველი წერილი სიტყვა და ჩვენ 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 >> აუდიტორია: თქვენ აპირებს collisions. 97 00:04:15,790 --> 00:04:16,390 >> HANNAH 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 და ჩვენ ვსაუბრობთ იმაზე, თუ როგორ შეუძლია დაფიქსირება collisions მხოლოდ მეორე. 101 00:04:21,620 --> 00:04:23,980 კიდევ ერთი პრობლემა, ამ კერძოდ hash ფუნქცია 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 >> ჩვენ ვიცით, რომ არსებობს მთელი ბევრი მეტი სიტყვა, რომ იწყება, ვიდრე X, 105 00:04:33,840 --> 00:04:38,980 ასე რომ, ჩვენ ვაპირებთ, რომ ძალიან დაუბალანსებელი თაიგულების ჩვენს hash მაგიდა. 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 ასე რომ, ერთი, ასე მგონია, ჩვენ ვცდილობთ, იმისათვის, რომ berry ჩვენი hash მაგიდა. 111 00:04:47,600 --> 00:04:50,370 და ჩვენ ვხედავთ, oh, ჩვენ გვინდა იმისათვის, რომ ეს ინდექსი 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 >> პუნქტების არის შეიძლება ითქვას, OK, არ არსებობს ოთახი ინდექსი 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 ეს მოუწოდა ხაზოვანი probing. 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 და ეს OK თუ არსებობს უფრო მეტი ვიდრე ერთი რამ bucket. 123 00:05:21,910 --> 00:05:23,820 ჩვენ უბრალოდ აპირებს დამატება იგი გადატანა წინ. 124 00:05:23,820 --> 00:05:26,032 ასე რომ, აქ თქვენ შეგიძლიათ ნახოთ, OK, როდესაც ჩვენ ჩასმული ბერი, ჩვენ 125 00:05:26,032 --> 00:05:28,240 უბრალოდ აიღო ბანანის, სახის აიძულა მას მეტი ცოტა 126 00:05:28,240 --> 00:05:29,842 და ესროლა berry არსებობს. 127 00:05:29,842 --> 00:05:31,050 ეს ასევე სრულიად ჯარიმა. 128 00:05:31,050 --> 00:05:32,830 ეს ეწოდება ცალკე chaining. 129 00:05:32,830 --> 00:05:38,100 თქვენ შეგიძლიათ წარმოიდგინოთ, რომ ეს ერთგვარი მოსწონს მასივი ხელმძღვანელები დაკავშირებული სიები. 130 00:05:38,100 --> 00:05:41,950 ნებისმიერი კითხვები hash მაგიდები, hash ფუნქციები? 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 და ეს გახდება სუპერ ნათელია, როდესაც ჩვენ ვხედავთ მაგალითს. 137 00:05:53,580 --> 00:05:56,960 და ჩვენ ვხედავთ, ლელო, გასწვრივ ერთად hash მაგიდები, 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 >> ახლა მოდით კიდევ უფრო კონკრეტული და ვისაუბროთ ორობითი ხე ორობითი ძებნა 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 HANNAH BLUMBERG: ორობითი ძებნა. 174 00:07:32,480 --> 00:07:35,150 იმის გამო, რომ, თუ თქვენ ეძებს კერძოდ ნომერი ხე, 175 00:07:35,150 --> 00:07:38,800 ყოველ ეტაპზე, თქვენ შეგიძლიათ უბრალოდ დაარტყა off ნახევარი ხე, რომელიც არის დიდი. 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 და ჩვენ ვხედავთ, OK, იქ უნდა იყოს ლოგიკური და კვანძის, 187 00:08:07,532 --> 00:08:09,170 მომცეთ კვანძის. 188 00:08:09,170 --> 00:08:11,400 და ჩვენ ვხედავთ, რომ ლოგიკური ეწოდება 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 >> ჩვენ ვიცით, რომ "turing" მეტი აქ არის სრული სიტყვა, 193 00:08:23,670 --> 00:08:28,030 ხოლო მხოლოდ T-U-R არ არის სიტყვა იმიტომ, რომ ჩვენ ვერ ვხედავთ, რომ პატარა დელტა. 194 00:08:28,030 --> 00:08:31,440 და რომ პატარა დელტა, კიდევ ერთხელ, შეესაბამება ამ is_word, 195 00:08:31,440 --> 00:08:34,480 ეს ლოგიკური 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 >> ასე რომ თქვენ ხედავთ, კიდევ ერთხელ, ამ სურათზე მე ვარ 200 00:08:44,346 --> 00:08:48,170 ვაპირებ შენარჩუნება jumping უკან და forth--, რომ მასივი ზედა 201 00:08:48,170 --> 00:08:51,640 აქვს bunch სხვადასხვა კვანძების მოდის off იგი. 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 >> აუდიტორია: [INAUDIBLE]. 207 00:09:07,970 --> 00:09:08,300 >> HANNAH BLUMBERG: ჰო. 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 >> HANNAH 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 ასე რომ, ეს არსებითად ეს სახის იგრძნობა უკავშირდება სიაში ამ გზით 225 00:09:42,910 --> 00:09:46,620 სადაც თითოეული მათგანი ბავშვები უბრალოდ მიუთითებს შემდეგი კვანძში. 226 00:09:46,620 --> 00:09:49,030 >> და ისე, რომ ჩვენ რეალურად განაპირობებს, hey, OK, 227 00:09:49,030 --> 00:09:52,320 ჩვენ iterated მეშვეობით მთელი სიტყვა, ეს სიტყვა ლექსიკონი, 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 რა იყო runtime, რომ trie? 233 00:09:57,470 --> 00:09:58,386 >> HANNAH BLUMBERG: რა თქმა უნდა. 234 00:09:58,386 --> 00:10:01,852 ასე რომ, runtime ამისთვის trie for ძიება იქნება მუდმივი დრო. 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 >> ამ შემთხვევაში, თქვენ ხედავთ, რომ სიტყვა bat არის ლექსიკონი 240 00:10:15,430 --> 00:10:18,900 და თქვენ უნდა zoom, მაგრამ თქვენ არ აქვს რაღაც ზოოპარკში. 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 მართალია [INAUDIBLE]. 245 00:10:27,014 --> 00:10:27,930 HANNAH BLUMBERG: კარგი. 246 00:10:27,930 --> 00:10:31,731 ასე რომ, ჩვენ მინდა ვთქვა, Z-O-O, და მაშინ ჩვენ მინდა გსურთ შეამოწმოთ off რომ ყუთში ასევე. 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 მოდით შევადაროთ ძალიან მოკლედ ცდილობს წინააღმდეგ hash მაგიდები. 250 00:10:37,930 --> 00:10:39,770 ლელო მართლაც დიდი რადგან, როგორც ვთქვით, 251 00:10:39,770 --> 00:10:41,610 ისინი მუდმივი დროში lookup. 252 00:10:41,610 --> 00:10:44,285 მაგრამ დიდი მინუსი არის ისინი humongous. 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 ასე რომ, ისინი, იქნება ბევრად უფრო მეტია, ვიდრე hash მაგიდები, 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 MARIA ZLATKOVA საყვარელი. 264 00:11:08,280 --> 00:11:09,036 კარგი. 265 00:11:09,036 --> 00:11:10,380 >> HANNAH BLUMBERG: თქვენ შეგიძლიათ გამოიყენოთ ჩემი ლეპტოპი. 266 00:11:10,380 --> 00:11:11,255 >> MARIA ZLATKOVA: Nice. 267 00:11:11,255 --> 00:11:13,320 268 00:11:13,320 --> 00:11:14,912 OK, მაგარი. 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, სია, მ. 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 ასე რომ, დ ეხება დირექტორია. 283 00:12:01,260 --> 00:12:05,930 და მაშინ ჩვენ გვაქვს სამი triads, რომელიც ძირითადად 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 ჩვენ რომ აკრიფოთ გარკვეული რაოდენობის რომ შედგებოდა სამი ბიტი. 290 00:12:32,960 --> 00:12:36,990 ასე რომ, ჩვენ შეგვიძლია ამის გაკეთება, როგორც 777, რომელიც ძირითადად 291 00:12:36,990 --> 00:12:40,450 მოხსენიებული დამატებული ღირებულების თითოეული ამ triads 292 00:12:40,450 --> 00:12:45,060 იმიტომ, რომ r ეხება, 4, w გვინდა ეხება 2 და x ეხება 1, 293 00:12:45,060 --> 00:12:50,020 ასე რომ, როდესაც დასძინა up, თითოეული ნომრები მოვიდოდა ქვემოთ კუმულაციურ ნომერი 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 MARIA ZLATKOVA: დიახ. 301 00:13:06,164 --> 00:13:07,568 აუდიტორია: [INAUDIBLE]. 302 00:13:07,568 --> 00:13:08,504 HANNAH BLUMBERG: Yup. 303 00:13:08,504 --> 00:13:11,790 აუდიტორია: და მერე დასძინა ყველა იმ სხვები მიუთითეთ თქვენი ნომერი. 304 00:13:11,790 --> 00:13:12,665 MARIA 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 და ეს არის markup ენა, რომელიც არის სტანდარტული 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 უბრალოდ განსაზღვრავს და აღწერილია, თუ როგორ ვებგვერდი 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 tags, რომ ჩვენ წავიდა არიან შემდეგ. 319 00:13:57,110 --> 00:14:00,500 ყველა ჩვენი HTML დოკუმენტი დაიწყო DOCTYPE html. 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 და მაშინ ეს ხდება ძალიან მკაფიო, როდესაც ჩვენ უნდა გახსნა და რეალურად ახლო tags. 325 00:14:13,200 --> 00:14:18,400 ჩვენ ყოველთვის უნდა დახუროს tags, რომ ჩვენ გაიხსნა. 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 და ჩვენ შეგვიძლია ასევე ეხება სხვადასხვა რამ tags ასევე, 341 00:15:09,870 --> 00:15:13,830 მაგრამ პირადობის მოწმობა და კლასების მხოლოდ გვაწვდიან versatility და რა კონკრეტულად ჩვენ 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 და პერსონალის მაგდაგვარს ჩვენ შეგვიძლია განსაზღვროს სტილის ორგანო. 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 და dot ეხება ჩვენი კლასი. 350 00:15:40,390 --> 00:15:44,760 >> და შემდეგ .info, ჩვენ ასევე შეუძლია შექმნას გარკვეული ატრიბუტები. 351 00:15:44,760 --> 00:15:49,750 და ისევ, როდესაც ჩვენ დავბრუნდებით, ჩვენ გვქონდა ჩვენი კლასის მოუწოდა ინფორმაცია და ჩვენი ID ტიტული. 352 00:15:49,750 --> 00:15:53,422 და ჩვენ ვხედავთ, რომ ჩვენ ეხება მათ მიერ #title და .ინფორმაცია. 353 00:15:53,422 --> 00:15:55,380 აუდიტორია: იტყვით ჰაშთაგი [? მიღება ჩემთვის? ?] 354 00:15:55,380 --> 00:15:55,725 MARIA ZLATKOVA: ბოდიში? 355 00:15:55,725 --> 00:15:58,120 აუდიტორია: იტყვით ჰაშთაგი [? მიღება ჩემთვის? ?] 356 00:15:58,120 --> 00:16:01,400 MARIA ZLATKOVA: Hashtag ნიშნავს ID, ასე #title 357 00:16:01,400 --> 00:16:07,890 ეხება რაც ელემენტები აქვს ამ ID მოუწოდა სათაური. 358 00:16:07,890 --> 00:16:10,735 და მაშინ dot ეხება კლასი. 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 MARIA ZLATKOVA: ეს მხოლოდ მდე you-- 364 00:16:22,610 --> 00:16:24,151 HANNAH BLUMBERG: გაიმეორეთ კითხვაზე. 365 00:16:24,151 --> 00:16:25,370 MARIA 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 ეს გაძლევთ უამრავი versatility მყოფი 369 00:16:38,520 --> 00:16:43,250 შეუძლია იმის თქმა მინდა, რომ ეს კონკრეტული ნივთი აქვს ამ ID, რადგან მათ სურთ 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 ნაცვლად აკეთებს ის მიერ tag რადგან tag გვინდა 376 00:17:03,840 --> 00:17:07,369 მითითებული საკანში მთელი tag ყოველ ჯერზე, რომ ტეგი გამოიყენება, 377 00:17:07,369 --> 00:17:09,740 თქვენ შეგიძლიათ დააყენოთ კლასის მრავალი საკითხი. 378 00:17:09,740 --> 00:17:15,109 და მაშინ უბრალოდ შედიხართ, რომ კლასი და ამბობენ, მინდა სტილი ამ კლასში, რომ გზა. 379 00:17:15,109 --> 00:17:17,579 >> ისევ და ისევ, კლასის შეუძლია შეიძლება მრავალი სხვადასხვა ნივთები 380 00:17:17,579 --> 00:17:21,150 და ID უნდა იყოს უნიკალური. 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 OK, გასაოცარია. 384 00:17:26,220 --> 00:17:30,680 385 00:17:30,680 --> 00:17:35,330 ისევ და ისევ, ეს არის, თუ ეს სელექციონერები დამოწმებული in CSS, ერთად hashtag, 386 00:17:35,330 --> 00:17:40,031 ერთად dot, ან მის გარეშე არაფერი მინიჭების სტილის ზოგიერთი tag, 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 დამტკიცება. 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 და მაშინ თქვენი markup ამბობდა, თუ როგორ რამ არიან ერთმანეთთან არის 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, რომ [INAUDIBLE] ის? 406 00:18:47,945 --> 00:18:49,850 >> MARIA 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 ძირითადად, ჩვენ უნდა გავაკეთოთ, რომ იმიტომ, რომ ბევრი ჯერ, ბრაუზერში, 410 00:18:59,180 --> 00:19:01,390 თუ არ დახუროს tag ან რამე მაგდაგვარს, 411 00:19:01,390 --> 00:19:05,680 თქვენი ბრაუზერის კვლავ აპირებს გამოიტანოს გვერდი და, შესაძლოა, დღესაც მუშაობს, 412 00:19:05,680 --> 00:19:10,840 მაგრამ ეს საუკეთესო პრაქტიკა უნდა დავრწმუნდეთ, რომ თქვენ, კიდევ ერთხელ, დახურულია ყველა თქვენი tags, 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 აუდიტორია: არა, მე უბრალოდ [INAUDIBLE]. 422 00:19:31,240 --> 00:19:33,800 >> MARIA ZLATKOVA: OK. 423 00:19:33,800 --> 00:19:34,640 >> აუდიტორია: დიდი მადლობა. 424 00:19:34,640 --> 00:19:36,181 >> MARIA 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 >> ასე რომ, მაშინ ჰიპერტექსტის გადაცემის პროტოკოლი არის კიდევ ერთი ოქმის ან მითითებული 443 00:20:33,050 --> 00:20:37,470 კონვენციები, რომელიც განსაზღვრავს, თუ როგორ ბრაუზერში და სერვერზე 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 და რომ OK მხოლოდ ფრაზა დაყრდნობით კოდი. 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 და რომ თქვენი ბრაუზერის შეიძლება გამოიტანოს შემდეგ. 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 >> MARIA ZLATKOVA: ეს მხოლოდ მობილური of-- oh, რას 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 >> MARIA 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 MARIA ZLATKOVA: ბოდიში? 489 00:23:03,390 --> 00:23:05,380 აუდიტორია: არის, რომ რაც ოქმის ვთქვა? 490 00:23:05,380 --> 00:23:05,915 MARIA ZLATKOVA: საქართველოს პროტოკოლი 491 00:23:05,915 --> 00:23:07,940 აუდიტორია: --what Content-Type ან what-- 492 00:23:07,940 --> 00:23:12,040 MARIA 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 HANNAH BLUMBERG თქვენ შეიძლება ვიფიქროთ, რომ ოქმი 499 00:23:30,070 --> 00:23:33,300 როგორც a-- ვფიქრობ, პროფესორი Malan აღწერილი, 500 00:23:33,300 --> 00:23:36,910 კლასში როგორც სახის, როგორიცაა a-- ის მსგავსად ექვივალენტი ადამიანის handshaking. 501 00:23:36,910 --> 00:23:44,930 ამბობენ, ისევე, hey, მე თხოვნა და მე ვიცი, როგორ გაუმკლავდეს HTTP ვერსია 1.1. 502 00:23:44,930 --> 00:23:48,770 და მაშინ სერვერზე ამბობს, oh, OK, არ მე და ორივე არსებობს. 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 ამ შემთხვევაში, ის აპირებს იყოს ტიპის ტექსტი / html. 506 00:23:56,230 --> 00:23:58,480 ასე რომ, ეს სახის მხოლოდ გზა მათგანი communicating-- 507 00:23:58,480 --> 00:24:00,480 >> MARIA ZLATKOVA: უბრალოდ ადასტურებს, რომ თქვენ 508 00:24:00,480 --> 00:24:03,290 როგორც შემდეგ იგივე ოქმი და რომ ორივე 509 00:24:03,290 --> 00:24:06,620 კლიენტს და სერვერზე ასე თქვენი ბრაუზერის და სერვერზე 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-- ინფორმაციის გაცნობის ტექსტი / 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 >> MARIA ZLATKOVA: 200 აცხადებს, რომ ყველა წავიდა OK. 517 00:24:23,770 --> 00:24:27,900 და მაშინ content type არის ერთგვარი ცალკე ნაწილი იმავე გაგზავნა, 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 OK, 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 არ ნაპოვნია 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 ზოგი, რომ თქვენ შეიძლება მივიღო 301, გადატანილი მუდმივმოქმედი; 537 00:25:37,810 --> 00:25:41,300 302, ნაპოვნია; 304, მოდიფიცირებული; 400, ცუდი მოთხოვნა; 538 00:25:41,300 --> 00:25:47,330 და შემდეგ Internal Server Error for 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 MARIA ZLATKOVA: მე უნდა მათ თქვენი cheat ფურცელი. 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 MARIA ZLATKOVA: ისინი? 545 00:26:00,995 --> 00:26:03,870 HANNAH BLUMBERG: იყიდება პირობა, რომ ჩვენ აწარმოებს into-- ასე რომ კითხვა was-- 546 00:26:03,870 --> 00:26:08,010 MARIA 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 OK და ლექციებს იგი 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 >> HANNAH BLUMBERG: მე ამბობენ, 500, როგორც ჩანს, სამართლიანი თამაში. 553 00:26:22,690 --> 00:26:23,330 >> MARIA ZLATKOVA: 500, yeah. 554 00:26:23,330 --> 00:26:24,246 >> HANNAH BLUMBERG: ჰო. 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 >> HANNAH BLUMBERG: ეს ღირს ნულოვანი რაოდენობა. 562 00:26:42,883 --> 00:26:45,870 კითხვა on 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 >> HANNAH 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 >> MARIA 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 MARIA 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 მაგრამ yeah. 580 00:27:23,000 --> 00:27:23,250 >> HANNAH BLUMBERG: რა თქმა უნდა. 581 00:27:23,250 --> 00:27:25,625 ასე მაგალითად, როგორიცაა მოდით ამბობენ, რომ თქვენ მუშაობენ mashup 582 00:27:25,625 --> 00:27:30,440 და Google სერვერზე დაიწია გარკვეული მიზეზი, დენის outage, ასე ვთქვათ. 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 >> MARIA 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 ასე რომ, jumping შევიდა 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 ჰიპერტექსტის Preprocessor, 596 00:28:11,870 --> 00:28:15,360 ასე რომ, ეს რეკურსიული backnorym თავისთავად. 597 00:28:15,360 --> 00:28:22,330 და გახსნის tags for PHP ჩვენ მარცხენა და მარჯვენა ისრის ერთად კითხვის ნიშნები 598 00:28:22,330 --> 00:28:23,060 და php. 599 00:28:23,060 --> 00:28:25,890 >> ასე რომ, ჩვენ უკვე ჩანს bunch of იგი. 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 >> ჩვენ შეგვიძლია ამის გაკეთება bunch სხვადასხვა პერსონალის ცვლადები. 606 00:28:44,490 --> 00:28:47,750 ჩვენ შეგვიძლია, რომ მათ ერთად მიერ ინტეგრირების მათ 607 00:28:47,750 --> 00:28:52,900 ერთად dot ნოტაცია, რომელიც ჩვენ ვერ გააკეთებს C ერთხელ. 608 00:28:52,900 --> 00:28:57,490 კიდევ ერთხელ, ჩვენ ცოტა უფრო versatility ერთად 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 MARIA 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 ჩვენ ვერ დააყენა ცვლადები ერთად გამოსული dot მათ შორის 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 >> ასე რომ, თუ ჩვენ გვქონდა სიმებიანი ორმაგი შეთავაზებები და ჩვენ დააყენა dot მას შემდეგ, 625 00:30:00,680 --> 00:30:03,660 და მაშინ ჩვენ გვქონდა სხვა სიმებიანი, რომ რომ შევქმნათ სიმებიანი საერთოდ. 626 00:30:03,660 --> 00:30:05,242 >> აუდიტორია: OK. 627 00:30:05,242 --> 00:30:06,450 MARIA ლატვია: ეს რომ ნათელი? 628 00:30:06,450 --> 00:30:07,099 აუდიტორია: Yeah. 629 00:30:07,099 --> 00:30:07,890 MARIA 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 MARIA 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 HANNAH 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 >> MARIA 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 ასე რომ კოლექტორები in 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 >> MARIA 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 loop in 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 loop რომ გადის ყოველ 675 00:32:26,260 --> 00:32:31,240 ღირებულებების გასაღები მასივი. 676 00:32:31,240 --> 00:32:36,180 ასე რომ, სინტაქსი foreach loop, ჩვენ დავიწყებთ მასივი. 677 00:32:36,180 --> 00:32:38,720 678 00:32:38,720 --> 00:32:43,900 ეს $ arr ცვლადი ჩვენი ფაქტობრივი მასივი რომ ჩვენ განსაზღვრულია წინა slide 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 loop. 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 loop რომ გადის მასივი, როგორც გასაღები ღირებულება 685 00:33:09,730 --> 00:33:11,900 და შემდეგ რაღაც გასაღები და / ან ღირებულება. 686 00:33:11,900 --> 00:33:15,980 მაგრამ ჩვენ არ არის აუცილებელი ყოველთვის უნდა ჰქონდეს foreach მარყუჟების, რომ 687 00:33:15,980 --> 00:33:19,410 გადის მასივი, როგორც გასაღები რუკა ღირებულება. 688 00:33:19,410 --> 00:33:26,060 ჩვენ შეგვიძლია გავლა foreach loop მასივი, როგორც ღირებულება. 689 00:33:26,060 --> 00:33:28,990 >> HANNAH BLUMBERG: და მე ვფიქრობ, რომელთა მიზანია იყო თქვენი შეკითხვა, რა 690 00:33:28,990 --> 00:33:31,229 არის დაფარული ინდექსი? 691 00:33:31,229 --> 00:33:31,895 აუდიტორია: Kinda. 692 00:33:31,895 --> 00:33:32,240 MARIA ZLATKOVA: Oh. 693 00:33:32,240 --> 00:33:33,406 HANNAH BLUMBERG: ჰო, ჰო. 694 00:33:33,406 --> 00:33:36,150 ასე რომ, ძირითადად, თუ თქვენ არ დააკონკრეტა გასაღები, ის იქნება 01. 695 00:33:36,150 --> 00:33:37,140 >> MARIA 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 >> MARIA 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 ან არის ამ 704 00:33:51,680 --> 00:33:54,930 აუდიტორია: ასე რომ წინა slide-- თუ შეიძლება მხოლოდ დაბრუნდეს ერთი მეორე. 705 00:33:54,930 --> 00:33:57,313 MARIA 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 MARIA ZLATKOVA: მარჯვენა, სწორი. 709 00:34:05,343 --> 00:34:07,608 აუდიტორია: ასე რომ, თუ როგორ, რომ მუშაობს როცა ამბობენ, რომ ეს ყველაფერი ან არა. 710 00:34:07,608 --> 00:34:08,969 ჩემთვის, რომ ჰგავს a [? foo?] უკვე. 711 00:34:08,969 --> 00:34:10,093 >> MARIA 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 >> HANNAH BLUMBERG: არა, იქ ცარცით აქ. 719 00:34:36,524 --> 00:34:36,929 ეს, ფაქტობრივად, მართლაც ლამაზი. 720 00:34:36,929 --> 00:34:37,460 >> MARIA ZLATKOVA: სწორედ დიდი. 721 00:34:37,460 --> 00:34:38,260 კარგი. 722 00:34:38,260 --> 00:34:49,489 ასე რომ კიდევ ერთხელ, $ arr 0 იქნება გასაღები ღირებულება 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 >> HANNAH BLUMBERG ყველა უფლება, nevermind. 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 MARIA 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-- yeah. 734 00:35:10,020 --> 00:35:12,740 ასე რომ, ნაცვლად, რომელმაც გამოკვეთილ გასაღებები, ისინი 735 00:35:12,740 --> 00:35:17,180 ერთგვარი გაგებული, როგორც ინდექსების დაწყებული 0. 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 loop, თუ გვინდოდა, რომ ნახოთ, როგორც ღირებულება, 740 00:35:30,914 --> 00:35:33,245 ეს უბრალოდ ავტომატურად ინდექსი 0? 741 00:35:33,245 --> 00:35:34,120 MARIA ZLATKOVA: ჰო. 742 00:35:34,120 --> 00:35:35,745 ეს იქნებოდა გავლა თითოეულ ღირებულებებს. 743 00:35:35,745 --> 00:35:39,130 აუდიტორია: [INAUDIBLE] როგორც 0 ან იქნებოდა, რომ მხოლოდ ამის 0? 744 00:35:39,130 --> 00:35:43,710 >> MARIA ZLATKOVA თქვენ ექნება უნდა ითქვას, დოლარის ნიშანი და შემდეგ 745 00:35:43,710 --> 00:35:46,266 ზოგიერთი ცვლადის სახელი, ღირებულება. 746 00:35:46,266 --> 00:35:47,182 აუდიტორია: [INAUDIBLE]. 747 00:35:47,182 --> 00:35:50,048 748 00:35:50,048 --> 00:35:50,964 MARIA 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 >> MARIA ZLATKOVA: როგორ გავაკეთოთ, რომ თუ არ აქვს კონკრეტული გასაღები სახელები? 752 00:36:00,780 --> 00:36:01,710 >> აუდიტორია: Yeah. 753 00:36:01,710 --> 00:36:07,820 >> MARIA ZLATKOVA თქვენ უბრალოდ define-- უბრალოდ, ვამბობთ, საკუთარ თავს, როგორც ზოგიერთი სახელი. 754 00:36:07,820 --> 00:36:17,950 ასე რომ, თქვენს psets, თქვენ ბიჭები შეიძლება მახსოვს foreach $ ზედიზედ $ რიგები, 755 00:36:17,950 --> 00:36:24,610 ჩვენ შევქმენით ourself ამ $ row განაცხადა, ჩვენ გვინდა, რომ გავლა ზედიზედ $ რიგები. 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 >> აუდიტორია: ასე ღირებულების ახალი ცვლადი ჩვენ შექმნის შესანახად [INAUDIBLE]? 761 00:36:41,660 --> 00:36:46,820 762 00:36:46,820 --> 00:36:49,990 >> MARIA ZLATKOVA: ასე რომ, ეს არ არის არსებითად ახალი ცვლადი. 763 00:36:49,990 --> 00:37:00,310 ეს არის ცვლადი, რომელიც ეხება შიგნით მასივი თითოეულ მათგანს. 764 00:37:00,310 --> 00:37:02,060 HANNAH BLUMBERG: ეს არის ახალი ცვლადის სახელი. 765 00:37:02,060 --> 00:37:04,018 MARIA ZLATKOVA: ჰო, ეს არის ახალი ცვლადის სახელი, 766 00:37:04,018 --> 00:37:06,680 მაგრამ ეს არ inherently-- yeah. 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 loop. 770 00:37:17,980 --> 00:37:22,065 ეს არ უნდა preexist მანამდე. 771 00:37:22,065 --> 00:37:25,777 >> აუდიტორია: იქნებ გაიაროს ლოგიკა თითოეულ გამოყენებით მაგალითზე არსებობს? 772 00:37:25,777 --> 00:37:26,610 MARIA ZLATKOVA: mhm. 773 00:37:26,610 --> 00:37:31,240 774 00:37:31,240 --> 00:37:32,080 ბოდიში. 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 ამიტომ თითოეული მასივი ასე ეს ნიშნავს, რომ წავიდეს ამ მასივი 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 და მერე მეორე iteration of ამისთვის მარყუჟის, 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 >> MARIA 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 >> MARIA ZLATKOVA: რა არის იმისათვის, რომ foreach 793 00:38:37,770 --> 00:38:39,210 loop გადის მასივი? 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 >> MARIA ZLATKOVA: ახალი ელემენტები can-- ძირითადად, ახალი ელემენტები ემატება, 803 00:39:14,280 --> 00:39:16,520 ისინი დასძინა ბოლომდე მასივი? 804 00:39:16,520 --> 00:39:17,632 >> აუდიტორია: Yeah. 805 00:39:17,632 --> 00:39:18,840 MARIA ZLATKOVA: მჯერა ისე. 806 00:39:18,840 --> 00:39:20,850 დიახ. 807 00:39:20,850 --> 00:39:24,330 და მაშინ თქვენი foreach loop, მას შემდეგ, რაც თქვენ დასძინა, ახალი ელემენტები 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 >> აუდიტორია: შეგიძლიათ უბრალოდ მისცეს მაგალითი რაღაც, რომელიც [INAUDIBLE] 811 00:39:34,416 --> 00:39:37,404 რაღაც ღირებულების როგორც [INAUDIBLE] და ღირებულება, 812 00:39:37,404 --> 00:39:38,910 მომწონს როგორ ნეტავ ფორმატში, რომ? 813 00:39:38,910 --> 00:39:39,785 >> MARIA 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 არა, რომ აზრი, თუ გვინდა, რომელთა მიზანია: 820 00:40:02,674 --> 00:40:04,340 აუდიტორია: ჩვენ ბეჭდვა ამ ფასეულობების გარეთ? 821 00:40:04,340 --> 00:40:13,220 MARIA ZLATKOVA: ჰო, ჩვენ შეგვიძლია ბეჭდვა და მაშინ ძირითადად $ მნიშვნელობა იმიტომ, რომ 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 მარყუჟების? 826 00:40:27,020 --> 00:40:30,430 >> MARIA ZLATKOVA: არსებობს ასევე მარყუჟების PHP. 827 00:40:30,430 --> 00:40:33,399 მათი ლოგიკა ძირითადად იგივე, რაც თქვენ უკვე გამოიყენება. 828 00:40:33,399 --> 00:40:34,690 აუდიტორია: ასე რომ მისი ღირებულება null. 829 00:40:34,690 --> 00:40:35,090 MARIA 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 რჩეულებში და წართმევას ელემენტები [INAUDIBLE]. 835 00:40:44,417 --> 00:40:45,250 MARIA 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 ერთად, ის, რაც ჩვენ არ ჩანს კარგად, 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 და როდესაც თქვენ დააჭირეთ Submit ღილაკს, ჩვენი hello.php ფაილი, 847 00:41:26,040 --> 00:41:32,130 იმიტომ, რომ მეთოდი ფორმა მისაღებად, ჩვენ შეუძლია რაც at სახელი 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 MARIA ZLATKOVA აქ. 855 00:41:59,150 --> 00:42:01,150 ასე რომ, ეს არის ჩვენი გახსნის ტეგი PHP. 856 00:42:01,150 --> 00:42:01,530 >> აუდიტორია: Oh, მარჯვნივ. 857 00:42:01,530 --> 00:42:02,363 >> MARIA ZLATKOVA: დიახ. 858 00:42:02,363 --> 00:42:05,320 859 00:42:05,320 --> 00:42:09,609 >> HANNAH BLUMBERG: საქართველოს? = არის სტენოგრამის ეს არის PHP და მხოლოდ ეხმიანება. 860 00:42:09,609 --> 00:42:10,150 აუდიტორია: Oh. 861 00:42:10,150 --> 00:42:10,720 MARIA ZLATKOVA: ჰო, ბოდიში. 862 00:42:10,720 --> 00:42:12,040 მე უნდა გააკეთა, რომ წმინდა. 863 00:42:12,040 --> 00:42:13,759 >> HANNAH BLUMBERG: ბეჭდვა. 864 00:42:13,759 --> 00:42:16,800 MARIA 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 MARIA ZLATKOVA: აქ შეიძლება იყოს სამართლიანი ოდენობით ინტერპრეტაცია 873 00:42:38,810 --> 00:42:43,330 PHP და HTML, არ არის აუცილებელი როგორიცაა დიდი ოდენობით კოდირება, 874 00:42:43,330 --> 00:42:46,960 მიუხედავად იმისა, რომ თქვენ შეიძლება უნდა დაწეროს foreach loop, თუმცა, ამისთვის loop. 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 HANNAH BLUMBERG: მე მზად. 878 00:42:53,430 --> 00:42:57,010 ანალოგიურად, რომ ჩვენ გთხოვეთ, წერენ bunch of C ფუნქციები ინტელექტუალური 0, 879 00:42:57,010 --> 00:42:59,766 მე მზად უნდა გააკეთოს იგივე PHP და JavaScript. 880 00:42:59,766 --> 00:43:00,640 MARIA ZLATKOVA: ჰო. 881 00:43:00,640 --> 00:43:03,210 HANNAH BLUMBERG: მე ვიტყოდი little--, როგორც ჩვენ არ ვართ 882 00:43:03,210 --> 00:43:06,251 ვაპირებ, რომ წერთ დიდი HTML გვერდი მხოლოდ იმიტომ, რომ ცოტა 883 00:43:06,251 --> 00:43:08,240 tedious, მაგრამ ალბათ ნაწილები. 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 HANNAH BLUMBERG: ჰო. 889 00:43:14,730 --> 00:43:15,250 JavaScript სამართლიანი თამაში. 890 00:43:15,250 --> 00:43:15,635 >> MARIA ZLATKOVA: ჰო. 891 00:43:15,635 --> 00:43:16,801 ეს არის სრულიად სამართლიანი თამაში. 892 00:43:16,801 --> 00:43:19,280 HANNAH BLUMBERG: ჩვენ კიდევ უნდა, რომ ისევე, როგორც 10-ე წუთზე. 893 00:43:19,280 --> 00:43:23,750 >> MARIA ZLATKOVA: SQL, კიდევ ერთხელ, სტრუქტურირებული შეკითხვის ენა. 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 ბევრი საერთო პირობა UPDATE, INSERT, SELECT და წაშლა. 901 00:43:47,560 --> 00:43:50,790 >> ასე რომ, UPDATE, ეს არის სინტაქსი განახლებაზე მონაცემები მონაცემთა ბაზაში. 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 და რომ შეიძლება გამოყენებით WHERE. 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 ასე რომ, ჩვენ მხოლოდ ცვლილებები ფასეულობები სადაც სახლი უდრის კურიერი, 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 ასე რომ, INSERT INTO მაგიდა, და შემდეგ ღირებულებებს, 914 00:44:35,150 --> 00:44:39,080 და შემდეგ ფრჩხილებში, ჩვენ დააკონკრეტა რომელიც აფასებს გსურთ ჩადეთ. 915 00:44:39,080 --> 00:44:43,220 ასე რომ, INSERT INTO მაგიდა, col1 და 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 >> ასე რომ, SELECT ვარსკვლავი იმას ნიშნავს, აირჩიეთ ყველა. 926 00:45:10,260 --> 00:45:13,280 ეს მხოლოდ სტენოგრამის შერჩევის ყველა. 927 00:45:13,280 --> 00:45:19,760 FROM table WHERE, ჩვენ ვეძებთ გარკვეულ პირობებში, 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 >> და მერე წაშლა მაგიდა WHERE col უდრის რაღაც, 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 რომ ჩადეთ ახალი row. 938 00:45:50,400 --> 00:45:56,380 და თუ ჩვენ გვქონდა ავტომატური-წამიანი, ამ შემთხვევაში უბრალოდ გავზარდოთ ჩვენი ID 0-დან 1 2. 939 00:45:56,380 --> 00:46:00,010 >> თუ შევარჩიეთ ყველა მხრიდან სტუდენტები, ის მხოლოდ ბრუნდება ყველა სფეროში და ყველა რიგები. 940 00:46:00,010 --> 00:46:02,430 სად შედარებით მეტია მეტი ან ტოლია 2016, 941 00:46:02,430 --> 00:46:04,390 რომ დააბრუნებს Hannah და მეც. 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 >> თუ ჩვენ წაიშლება სტუდენტები სადაც სახელი ტოლია Rob, 945 00:46:14,430 --> 00:46:16,760 რომ წაშალოთ მთელი რიგი. 946 00:46:16,760 --> 00:46:19,696 და მაშინ თუ ჩვენ მითითებული სახელი, UPDATE სტუდენტები 947 00:46:19,696 --> 00:46:21,570 SET სახელი უტოლდება Daven WHERE სახლი უდრის 948 00:46:21,570 --> 00:46:27,010 Cabot House, რომ აპირებს მისვლას იმ სტრიქონების და შემდეგ განახლება სახელი. 949 00:46:27,010 --> 00:46:31,470 >> და შემდეგ რამდენიმე SQL მონაცემთა ტიპები CHAR, 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 და მათ თქვენი cheat ფურცელი, რა თითოეული მათგანი გმირები 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 სხვადასხვა მონაცემთა ტიპები თქვენი pset. 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 MARIA 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 >> MARIA ZLATKOVA: ეს შეიძლება იყოს სხვადასხვა ნივთები. 965 00:47:15,000 --> 00:47:19,690 >> HANNAH BLUMBERG: ჩვენ interfaced ერთად 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 >> MARIA ZLATKOVA: უბრალოდ დამოკიდებულია როგორ გსურთ ამის გაკეთება თავს. 969 00:47:27,950 --> 00:47:30,075 მაგრამ ჩვენ უკვე შენახვა მათ, როგორც Hannah აღნიშნა, 970 00:47:30,075 --> 00:47:31,755 on 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 ინექცია tags. 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 >> სწრაფი მიმოხილვა მოდელი View Controller მოდელი, 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 მოთხოვნები იგზავნება სერვერზე. 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 >> ნახეთ, პრეზენტაცია ინფორმაციის შესახებ, UI, ან ინტერფეისი. 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 ასე რომ, ამისთვის loop რომ iterates მეტი მონაცემები, რომლებიც იბეჭდება 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 >> Jumping შევიდა დოკუმენტი ობიექტის მოდელი, ეს მხოლოდ 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 ასე რომ, თუ ჩვენ გვაქვს წვდომა [INAUDIBLE] წარმომადგენლობის დოკუმენტი, 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 ჩვენ გვაქვს ბევრი ჩვენი სხვადასხვა tags რეაგირება 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 უფროსი აქვს სათაური და შემდეგ სათაური შეიცავს hello, world. 1039 00:51:22,810 --> 00:51:24,860 და ჩვენი სხეულის მხოლოდ შეიცავს hello, world ისევე. 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 და თუ არა, Hannah იქნება აღება JavaScript. 1043 00:51:35,891 --> 00:51:36,390 გასაოცარია. 1044 00:51:36,390 --> 00:51:37,473 >> HANNAH BLUMBERG: OK, მაგარი. 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 აპირებს საშუალებას მოგვცემს გამოიყენოს ეს მუშაობს ძალიან ლამაზად ვებ გვერდებზე. 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 >> ჩვენ ვაპირებთ, რომ ნახოთ ცოტა Ajax. 1064 00:52:32,330 --> 00:52:36,140 ეს საშუალებას გვაძლევს კომუნიკაციის asynchronously სხვადასხვა სერვერები 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 როგორც წესი, სერვერული. 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 მოქმედებს კლიენტის მხარეს, რაც იმას ნიშნავს, რომ ბრაუზერი არის რეალურად 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 >> HANNAH BLUMBERG: Ah, რა ამჯამად asynchronously ნიშნავს? 1078 00:53:13,620 --> 00:53:14,250 დიდი კითხვა. 1079 00:53:14,250 --> 00:53:17,890 Asynchronously ნიშნავს ასევე, შინაარსი, რომელიც 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 >> Asynchronously ნიშნავს, რომ ჩვენ ყველაფერს მიდის ჩვენი საქმე, 1090 00:53:50,020 --> 00:53:52,529 გაწევის გვერდზე და ჩვენ გამოგიგზავნით off თხოვნა 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 ჩვენ მიცემას ბევრი უფრო ასინქრონული მოითხოვს Ajax. 1101 00:54:15,020 --> 00:54:18,287 >> აუდიტორია: არა JavaScript-- სად ის დაეცემა მოდელის ხედვის კონტროლერი? 1102 00:54:18,287 --> 00:54:19,620 HANNAH BLUMBERG: დიდი კითხვა. 1103 00:54:19,620 --> 00:54:23,320 სად JavaScript შემოდგომაზე მოდელის ხედვის კონტროლერი? 1104 00:54:23,320 --> 00:54:23,930 Hm. 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 OK, ასე რომ 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 ერთად bunch of HTML. 1122 00:55:05,680 --> 00:55:08,800 და რაც მინდა, ფოკუსირება არის ეს სცენარი აქვს. 1123 00:55:08,800 --> 00:55:13,280 და ეს ამბობს, OK, მე მინდა, რომ აწარმოებს რამდენიმე 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 >> HANNAH BLUMBERG: ჰო. 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 >> და ყველა ის ამბობს, არის alert Hello, world. 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 არის ის აპირებს ამბობენ, OK, მე აპირებს ამ JavaScript კოდი. 1141 00:55:53,330 --> 00:55:56,370 ეს JavaScript კოდი უბრალოდ ამბობს alert Hello, world. 1142 00:55:56,370 --> 00:55:59,090 ამიტომ, მე ვაპირებ, რომ ამ მეგობრული პატარა pop-up. 1143 00:55:59,090 --> 00:56:00,360 >> Cool? 1144 00:56:00,360 --> 00:56:04,746 სწორედ ასეთი, როგორც ჩვენი პირველი JavaScript პროგრამა, ჩვენი Hello, world. 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, მინდა ცვლადი მოუწოდა მე და მისი ღირებულება 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 ყოველი შემდგომი დრო, რომ მე i, მე არ უნდა დაწეროთ 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 Cool? 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 გამოიყურება, ზუსტად მე ვფიქრობ, რომ ისინი ზუსტად იგივე, რაც 1165 00:57:06,720 --> 00:57:09,799 მარყუჟების ვაპირებთ ჰგავს რაღაც C, სადაც თქვენი for loop 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 ხოლო მარყუჟის, ეს გამოიყურება ზუსტად იგივე. 1169 00:57:15,340 --> 00:57:16,390 ჩვენ მხოლოდ მისთვის მდგომარეობაში. 1170 00:57:16,390 --> 00:57:18,264 >> და ნუ ხოლო მარყუჟის, ერთხელ, ზუსტად იგივე. 1171 00:57:18,264 --> 00:57:20,190 ჩვენ გაძლევთ ეს მდგომარეობა. 1172 00:57:20,190 --> 00:57:24,510 ვთქვათ, მე სურდა iterate over-- მინდოდა, რომ რამე ხუთჯერ. 1173 00:57:24,510 --> 00:57:27,840 In C, ჩვენ შეიძლება დაწეროს ამისთვის init i = 0. 1174 00:57:27,840 --> 00:57:30,480 i ნაკლებია, ვიდრე 5, მე ++. 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 HANNAH BLUMBERG: ჰო. 1184 00:57:50,480 --> 00:57:52,310 ასე რომ, PHP, ის აპირებს იყოს დოლარის ნიშანი. 1185 00:57:52,310 --> 00:57:59,450 ასე რომ, ის აპირებს $ i ტოლობის 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 In 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, ჩვენ გვაქვს ამ სიტყვით დაბრუნების, 1198 00:58:26,280 --> 00:58:29,140 ასე რომ, ჩვენ შეგვიძლია გავაკეთოთ რაღაც მოსწონს დაბრუნების 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 ვინაიდან ეს ამბობს ფუნქცია თანხა, blah, blah, blah, 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 ასე რომ, ჩვენ შეგვიძლია ვთქვათ, OK, მე მინდა ცვლადი, ეს ე.წ. თანხა, 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 HANNAH BLUMBERG: ჰო. 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 ამას მე ვიცი, რომ ჩემი მხრივ, მაგრამ ვიტყვი, მე წაიშალოს ამას მაშინ 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 >> HANNAH 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 HANNAH BLUMBERG: მარჯვენა. 1240 01:00:15,410 --> 01:00:18,980 ასე რომ, თანხა არის ცვლადი, მაგრამ ეს რეალურად 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 HANNAH BLUMBERG: ჰო. 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 HANNAH 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 თქვენ შეიძლება დავიწყო აკეთებს i = 50. 1255 01:00:54,840 --> 01:00:57,490 და უბრალოდ მიიღოს i გლობალური ცვლადი. 1256 01:00:57,490 --> 01:01:00,550 >> ეს არის ძალიან ცუდი პრაქტიკა არასოდეს თქვა explicity 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 ჩვენ მას ანალოგიურად, x, y, ისევე როგორც ყველა დროის? 1271 01:01:29,864 --> 01:01:30,780 HANNAH BLUMBERG: ჰო. 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 HANNAH 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 HANNAH 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 >> MARIA ZLATKOVA: შემდეგ შეგიძლიათ დარეკოთ ფუნქცია 1292 01:02:21,193 --> 01:02:23,272 და გამოიყენოს იგი მისაღებად გარკვეული მნიშვნელობა. 1293 01:02:23,272 --> 01:02:24,230 HANNAH BLUMBERG: მარჯვენა. 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 უდრის თანხა ორი ღირებულებებს 1298 01:02:31,430 --> 01:02:32,420 >> HANNAH BLUMBERG: ჰო. 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 Like თუ თქვენ მოვუწოდებთ თქვენი ცვლადი თანხა, რომ თქვენ მოვუწოდებთ ფუნქცია თანხა? 1305 01:02:45,062 --> 01:02:45,895 HANNAH BLUMBERG: Mm. 1306 01:02:45,895 --> 01:02:46,395 Mm. 1307 01:02:46,395 --> 01:02:51,253 თუ თქვენ გააკეთეთ რამე როგორიცაა, თანხა შეადგენს თანხა 2, 5? 1308 01:02:51,253 --> 01:02:53,170 >> აუდიტორია: Yeah. 1309 01:02:53,170 --> 01:02:56,465 >> HANNAH BLUMBERG: მჯერა, რომ რომ გადავაწერო ღირებულება თანხა. 1310 01:02:56,465 --> 01:02:59,290 ასე რომ, კიდევ ერთი საინტერესო რამ, JavaScript 1311 01:02:59,290 --> 01:03:02,950 ის არის, რომ ერთი ცვლადი შეუძლია წლის bunch სხვადასხვა ტიპის. 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 ჩვენ ვიცით, რომ ეს არასოდეს არ არის აპირებს გახდეს სიმებიანი. 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 Doing ყველა უფლება დროს. 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 რომ ისინი C. ჩვენ შეუძლია ელემენტები მხოლოდ კვადრატულ ფრჩხილებში. 1328 01:03:37,990 --> 01:03:41,720 >> ეს ძალიან ჰგავს PHP და ბევრი როგორიცაა C, სადაც ჩვენ შეგვიძლია ვთქვათ, ამ შემთხვევაში, 1329 01:03:41,720 --> 01:03:48,360 თუ მინდოდა სიტყვა JavaScript, მე არ სია თურქეთიდან კვადრატულ ფრჩხილებში 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 ყველა ვაკეთებთ, .სიგრძე. 1335 01:03:59,910 --> 01:04:01,120 აძლევს lengths. 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 >> HANNAH BLUMBERG: ჰო, რაც თქვენს ცხოვრებაში ბევრი ადვილია. 1339 01:04:05,306 --> 01:04:08,950 1340 01:04:08,950 --> 01:04:11,560 OK, object-- არ არსებობს. 1341 01:04:11,560 --> 01:04:15,480 ობიექტების JavaScript შეგრძნებას ბევრი მოსწონს structs დო 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 ნოტაცია. 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 და როდესაც ვამბობ, კლასი, მე ვგულისხმობ, რა თქმა უნდა, არ მოსწონს ჰო, რა თქმა უნდა, CS50. 1349 01:04:37,790 --> 01:04:40,730 და დაინახავთ, რომ ყველაფერი ობიექტი 1350 01:04:40,730 --> 01:04:43,526 იქნება შეიცავს in curly braces. 1351 01:04:43,526 --> 01:04:48,260 >> და ჩვენ ვიწყებთ გაერთიანდნენ სფეროში სახელები ან გასაღებები განსხვავებული ღირებულებები. 1352 01:04:48,260 --> 01:04:52,920 ასე რომ თქვენ შეგიძლიათ ნახოთ, თუ როგორ ამ სახის იგრძნობა ასოციაციურ მასივში 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 ჩვენ ვაპირებთ, რომ TFs. 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 HANNAH BLUMBERG: რა ზუსტად არ JSON ნიშნავს? 1367 01:05:33,890 --> 01:05:36,470 JSON მხოლოდ დგას JavaScript Object ნოტაცია. 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 >> In 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 HANNAH 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 დავუშვათ, ჩვენ გადავწყვიტეთ, რომ თქვენ სურდა ერთი ნაკლები pset ამ სემესტრში. 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 პუნქტების არის ერთად dot notation და ნომერი ორი 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 კვადრატული braces, Psets. 1390 01:06:42,050 --> 01:06:42,837 Cool? 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 ჩვენ გამოყოფა მას out [INAUDIBLE]? 1394 01:06:51,814 --> 01:06:52,730 HANNAH BLUMBERG: რა თქმა უნდა. 1395 01:06:52,730 --> 01:06:56,290 ასე რომ, კითხვა, არის JavaScript და JSON ექვივალენტი? 1396 01:06:56,290 --> 01:07:00,750 ასე რომ, JSON არის notation, ძირითადად, ისე, რომ ჩვენ წერენ გარეთ 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 >> აუდიტორია: ასე რომ, რა [INAUDIBLE] დასრულებას? 1406 01:07:24,144 --> 01:07:25,060 HANNAH BLUMBERG: რა თქმა უნდა. 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 ცხრიდან რვა. 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 >> და რაც მინდა ფოკუსირება არის ამ კონკრეტულ tag, რომელიც ღილაკს, 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 მაგრამ ეს ძირითადად ამბობს, OK, დარეკეთ ეს ფუნქცია, როდესაც window იტვირთება. 1432 01:08:33,660 --> 01:08:35,080 >> ასე რომ, მხოლოდ სახის setup კოდი. 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 OK, წავიდეთ მოვძებნოთ ელემენტი პირადობის 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 >> ასე რომ, აქ მე ვიტყვი, OK, ახლა რომ მაქვს რომ ღილაკს, როდესაც დააწკაპებთ, 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 მე კიდევ ლამაზი პატარა alert რომელიც ამბობს, თქვენ დააწკაპებთ ღილაკს. 1451 01:09:33,729 --> 01:09:40,710 ასე რამ ფოკუსირება აქ document.getElementByID 1452 01:09:40,710 --> 01:09:44,960 იღებს კონკრეტულ HTML ელემენტის მოცემულ ID. 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 >> HANNAH BLUMBERG: ბოდიში? 1457 01:09:53,162 --> 01:09:55,130 >> აუდიტორია: გვაქვს ფიზიკური კოდექსში ყველა რომ? 1458 01:09:55,130 --> 01:09:56,340 >> HANNAH 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 HANNAH BLUMBERG: მარჯვენა. 1464 01:10:02,532 --> 01:10:03,610 ჩვენ შეიძლება გამოიყენოთ რაღაც. 1465 01:10:03,610 --> 01:10:08,140 და ში კერძოდ oh, ეს მეუბნებოდა, მე უნდა ასწავლოს განყოფილებაში. 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 რაც ანიმაცია ადვილი და ეს რაც Ajax ადვილია. 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-- სახელი selector, dot და შემდეგ აქცია. 1481 01:10:56,030 --> 01:10:58,860 მოდით ვნახოთ, ზოგიერთი კონკრეტული მაგალითები, რომ. 1482 01:10:58,860 --> 01:11:02,980 >> ასე რომ, ეს რეალურად არის იგივე კოდი ღონისძიება slide. 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 ეს ამბობს, OK, jQuery-- ამ დოლარის sign-- jQuery, მოვძებნოთ მე ფანჯარა. 1486 01:11:17,090 --> 01:11:18,480 ასე რომ, selector. 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 HANNAH BLUMBERG: ჰო. 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 და როცა გვინდოდა აირჩიეთ რაღაც კლასი, ჩვენ ვიყენებთ dot. 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 HANNAH BLUMBERG: რა თქმა უნდა. 1514 01:12:21,510 --> 01:12:25,812 ასე რომ, ფუნქცია მხოლოდ სიტყვით რომ ამბობს, მე ვარ დაახლოებით განსაზღვრავს ფუნქცია. 1515 01:12:25,812 --> 01:12:26,520 აუდიტორია: Oh, OK. 1516 01:12:26,520 --> 01:12:27,353 HANNAH BLUMBERG: OK? 1517 01:12:27,353 --> 01:12:32,120 და მაშინ ჩვენ გაივლის მას, როგორც არგუმენტი, რომელთა მიზანია ავიღოთ 1518 01:12:32,120 --> 01:12:37,040 ამ შიდა one-- იმ ღილაკის ფუნქცია. 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 აუდიტორია: Oh, OK. 1523 01:12:44,340 --> 01:12:45,256 HANNAH BLUMBERG: ჰო. 1524 01:12:45,256 --> 01:12:46,035 მე მინდა, რომ "რა". 1525 01:12:46,035 --> 01:12:47,490 Nice. 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 MARIA ZLATKOVA: კარგი. 1529 01:12:51,380 --> 01:12:52,760 კარგი. 1530 01:12:52,760 --> 01:12:54,210 >> HANNAH BLUMBERG: გასაოცარია. 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 ეს სლაიდები იქნება up ონლაინ ცოტა 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 OK, hey, jQuery, აქ არის ჩემი არჩევის და მერე აქ action. 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 ასე რომ, იმის გათვალისწინებით, რომ ჩვენ კოპირება / პასტა jQuery დოკუმენტაცია ჩვენი cheat ფურცელი, 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 HANNAH 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 მიმდინარეობს შეუძლია შეარჩიოს ით და by კლასის ისე, ისევე, როგორც CSS. 1553 01:13:58,310 --> 01:14:01,876 და მერე რეალურ ფუნქციები themself, ჩვენ სავარაუდოდ გეტყვით. 1554 01:14:01,876 --> 01:14:02,376 ჰო. 1555 01:14:02,376 --> 01:14:05,591 >> აუდიტორია: ასე რომ, როდესაც თქვენ აირჩიეთ კლასი იმას ნიშნავს, dot. 1556 01:14:05,591 --> 01:14:06,840 HANNAH 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 შორის შერჩევის ით და კლასში? 1562 01:14:14,310 --> 01:14:14,560 >> HANNAH BLUMBERG: რა თქმა უნდა. 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 შეიძლება იყოს მხოლოდ ერთი ელემენტი მოცემულ ID, ხოლო კლასი, 1566 01:14:26,280 --> 01:14:29,740 ეს საშუალებას გვაძლევს ჯგუფის bunch სხვადასხვა ელემენტების ერთად, 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 >> HANNAH 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 Relax. 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 ასე რომ, აიაქსი იქნება 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 ძირითადად იქნება [INAUDIBLE] რომელზეც ტიპის ჩვენი მონაცემებით. 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 >> ასე რომ, ძირითადად, ეს არის გარკვეული მონაცემები ასინქრონული, 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 გვინდა ვიცოდეთ ამაზე ამ დოლარის ნიშანი. 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 და პარამეტრების იყო წასვლა = ზოგიერთ საფოსტო კოდი. 1616 01:16:33,520 --> 01:16:41,580 ის ამბობს, OK, თხოვნით ამ 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 >> ასე რომ, იმ შემთხვევაში, თუ თქვენ კეთდება, თქვენ იტყვით, მე გაკეთდეს. 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 HANNAH BLUMBERG: რა თქმა უნდა. 1637 01:17:44,380 --> 01:17:46,713 ისე ჰო, მე ვფიქრობ, რომ pset, ჩვენ ვნახეთ ფუნქცია მონაცემები. 1638 01:17:46,713 --> 01:17:48,700 ასე რომ, ეს უბრალოდ the-- დიახ, OK. 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 HANNAH BLUMBERG: 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 HANNAH BLUMBERG: ჰო. 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 მარია აპირებს გადაიტანოთ up უსაფრთხოების 1663 01:18:45,080 --> 01:18:47,464 და მაშინ ჩვენ ვაპირებთ უნდა მხოლოდ გააკეთა. 1664 01:18:47,464 --> 01:18:48,630 MARIA ZLATKOVA: გასაოცარია, OK. 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 ეს შეიძლება overflow. 1673 01:19:11,454 --> 01:19:12,370 MARIA 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 >> აუდიტორია: ბუფერული overflow. 1678 01:19:16,840 --> 01:19:18,381 >> MARIA ZLATKOVA: Yup, ბუფერული overflow. 1679 01:19:18,381 --> 01:19:21,230 ასე რომ, ეს არის ის, რასაც ჩვენ ეხება როგორც ბუფერული overflow. 1680 01:19:21,230 --> 01:19:25,500 და ჩვენ ვხედავთ, რომ შიგნით foo, ჩვენ განისაზღვრება ჩვენი ბუფერული, c, 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 რომ override დაბრუნების მისამართი 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 MARIA 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 MARIA ZLATKOVA: ოჰ, უკაცრავად. 1711 01:21:05,443 --> 01:21:06,040 დიახ. 1712 01:21:06,040 --> 01:21:11,290 Memcpy იღებს რასაც is-- ბოდიში, OK. 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 ასე რომ, ის აპირებს ბარი და ის აპირებს კოპირება შევიდა გ. 1718 01:21:24,453 --> 01:21:25,402 >> აუდიტორია: OK. 1719 01:21:25,402 --> 01:21:28,360 MARIA ZLATKOVA: და ის აპირებს copy-- მესამე არგუმენტი უბრალოდ ეხება 1720 01:21:28,360 --> 01:21:30,601 რომ, თუ რამდენად აპირებს კოპირება გ. 1721 01:21:30,601 --> 01:21:31,142 აუდიტორია: Ah. 1722 01:21:31,142 --> 01:21:33,030 ასე რომ, ეს ერთ-ერთი ის გადაწერა ყველა ის შემდეგ. 1723 01:21:33,030 --> 01:21:34,310 >> MARIA ZLATKOVA: ჰო, ის გადაწერა ყველა ის. 1724 01:21:34,310 --> 01:21:34,810 Yep. 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 რომ დავით აღნიშნა ლექცია, 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, ციტირებით unquote "შეკითხვაზე," 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 და ნაჭდევები არ შეიცვლება სხდომაზე. 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 და მაშინ პირი, რომელიც მიდის უკან შემდეგ შეგიძლიათ კვლავ გამოიყენოთ მათი სხდომაზე ID 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 და მაშინ მანიპულირების header მონაცემები სხვა ტიპის თავდასხმა 1768 01:23:53,897 --> 01:23:55,230 რომ აქვს დავით ისაუბრა. 1769 01:23:55,230 --> 01:23:59,730 და ეს მხოლოდ ეხება რა შეიძლება მოხდეს, როდესაც 1770 01:23:59,730 --> 01:24:04,300 საპასუხოდ, HTTP პასუხი შიგნით ჩვენი header 1771 01:24:04,300 --> 01:24:05,720 არ არის შერაცხული სწორად. 1772 01:24:05,720 --> 01:24:14,340 >> და ნებისმიერ სფეროებში, მაგალითად, თუ ვინმე overwrites ერთი header 1773 01:24:14,340 --> 01:24:18,860 ღირებულებები უნდა შეიცავდეს არაფერი მეტი რა უნდა contain-- და რეალურად 1774 01:24:18,860 --> 01:24:22,720 შეიცავდეს, მაგალითად, 200 OK სტატუსის კოდი, შემდეგ კი 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 შინაარსი ძირითადად ორიენტირებულია რამ შემდეგ Quiz 1? 1785 01:24:53,400 --> 01:24:55,730 >> MARIA ZLATKOVA: ასე რომ, კითხვა, შინაარსი 1786 01:24:55,730 --> 01:24:59,720 ძირითადად, რამ შემდეგ Quiz 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 მასალა მოსწონს, მათ შორის დაკავშირებული სიები, stacks, 1793 01:25:21,845 --> 01:25:23,720 რიგები და ყველაფერი რომ ხანა წავიდა. 1794 01:25:23,720 --> 01:25:24,050 >> HANNAH BLUMBERG: მარჯვენა. 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 >> MARIA ZLATKOVA: 8:30 11:00. 1803 01:25:45,266 --> 01:25:46,260 >> HANNAH 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 ეს არის საკმაოდ chill და სახალისო. 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 თუ თქვენ გაქვთ რაიმე შეკითხვები, შესაძლოა, მოდის განხილვა ჩვენთვის აქ ერთ-ერთი. 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 >> MARIA 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