1 00:00:00,000 --> 00:00:02,964 2 00:00:02,964 --> 00:00:05,434 >> [მუსიკალური სათამაშო] 3 00:00:05,434 --> 00:00:11,825 4 00:00:11,825 --> 00:00:12,700 HANNAH: Hi, ყველას. 5 00:00:12,700 --> 00:00:15,866 დიდი მადლობა ბიჭებს იმდენად გამოდის ამ ამაზრზენი ამინდი ვიქტორინა ერთი 6 00:00:15,866 --> 00:00:16,910 განხილვის სხდომაზე. 7 00:00:16,910 --> 00:00:20,020 როგორც თქვენ ბიჭები ვიცი, ვიქტორინა ერთი არის ოთხშაბათს. 8 00:00:20,020 --> 00:00:22,209 ასე რომ, ჩვენ ვაპირებთ წავიდეთ მეშვეობით bunch of თემა. 9 00:00:22,209 --> 00:00:24,000 Davin: Hey, შემიძლია ვთქვა, რაღაც რეალური სწრაფი? 10 00:00:24,000 --> 00:00:25,215 HANNAH: ჰო, Davin აპირებს ამბობენ, რომ რაღაც რეალური სწრაფი. 11 00:00:25,215 --> 00:00:25,780 Davin: უკაცრავად. 12 00:00:25,780 --> 00:00:29,490 მხოლოდ რეალური სწრაფი, თუ თქვენ გაქვთ შეკითხვები შესახებ ვიქტორინა, შეგიძლიათ ონლაინ. 13 00:00:29,490 --> 00:00:32,420 წასვლა 2014 ვიქტორინა ერთი, შესახებ ვიქტორინა. 14 00:00:32,420 --> 00:00:34,680 ის მივიღე ლოგისტიკის შესახებ სად უნდა წავიდეს, როდესაც წასვლა. 15 00:00:34,680 --> 00:00:38,100 თუ თქვენ ერთდროულად ჩაირიცხა, ჩვენ აპირებს აქვს სახე ვიქტორინა at 5:30. 16 00:00:38,100 --> 00:00:40,350 ან თუ გამომგზავნა საკითხი, თქვენ გაქვთ რაიმე სხვა საკითხი. 17 00:00:40,350 --> 00:00:42,640 მაგრამ 5:30 არის მაკიაჟი ოთხშაბათს. 18 00:00:42,640 --> 00:00:44,540 მაგრამ თუ თქვენ გაქვთ შეკითხვები, ზოგადი კითხვები, 19 00:00:44,540 --> 00:00:45,748 ამჟამად ყველა ლოგისტიკის. 20 00:00:45,748 --> 00:00:47,690 ამიტომ შეამოწმეთ იქ პირველი. 21 00:00:47,690 --> 00:00:49,070 >> HANNAH: გასაოცარია. 22 00:00:49,070 --> 00:00:53,030 ასე რომ, აქ არის დიდი ჩამონათვალი თემები რომ ჩვენ ვაპირებთ გავლა დღეს. 23 00:00:53,030 --> 00:00:57,390 მე ვაპირებ დაფარავს ყველა C პერსონალი, რომელიც არის, რომ პირველი სვეტი. 24 00:00:57,390 --> 00:01:00,710 ასე რომ, C პერსონალი, რომ ჩვენ დაფარული შემდეგ ვიქტორინა ნულოვანი. 25 00:01:00,710 --> 00:01:05,459 დაწყებული უკავშირდება სია, რომელიც მოიცავს მითითებას. 26 00:01:05,459 --> 00:01:07,668 >> ყველა უფლება, ასე ჩვენ ვნახეთ ამ ბოლო განხილვის სხდომაზე, 27 00:01:07,668 --> 00:01:10,000 ამიტომ მე ვაპირებ გავლა ეს არის ცოტა უფრო სწრაფია. 28 00:01:10,000 --> 00:01:13,500 მხოლოდ გაზარდოთ თქვენი მხრივ, თუ გსურთ ჩემთვის შენელდება ან სიტყვით რაიმე შემდგომი. 29 00:01:13,500 --> 00:01:17,150 მაგრამ ჩვენ ვიყენებთ დაკავშირებული სიები, რადგან ჩვენ დავიწყეთ C მასივები. 30 00:01:17,150 --> 00:01:20,920 და კოლექტორები არის დიდი, მაგრამ პრობლემა ის არის, რომ მათ აქვთ ფიქსირებული ზომა. 31 00:01:20,920 --> 00:01:24,925 დაკავშირებული სიები საშუალებას მოგვცემს შევქმნათ დინამიურად ზომის მონაცემთა სტრუქტურები. 32 00:01:24,925 --> 00:01:28,520 33 00:01:28,520 --> 00:01:32,320 >> და ჩვენ გვაქვს ჩვენი ძირითადი ოპერაციები, ჩადეთ, წაშლა, და ძიება. 34 00:01:32,320 --> 00:01:36,780 და ჩვენ შეგვიძლია გავაკეთოთ ჩასმა უარეს შემთხვევაში მუდმივი დრო 35 00:01:36,780 --> 00:01:39,140 თუ ჩვენ უბრალოდ დააყენა იგი თავიდანვე. 36 00:01:39,140 --> 00:01:45,220 წაშლა და ძებნის, უარეს საქმე დიდი oh of n დროს. 37 00:01:45,220 --> 00:01:47,140 ასე რომ კიდევ ერთხელ, უბრალოდ flip მეშვეობით ეს სურათები, 38 00:01:47,140 --> 00:01:50,860 მე ვიცი, რომ ჩვენ ვნახეთ ამ ბოლო დროს, მაგრამ ჩვენ გვინდა, რომ შევინარჩუნოთ სიმღერა ჩვენი უკავშირდება სია 39 00:01:50,860 --> 00:01:53,440 მიერ შენახვა სიმღერა ხელმძღვანელი ჩვენს უკავშირდება სიაში. 40 00:01:53,440 --> 00:01:55,580 იმიტომ, რომ ჩვენ ვიცით, რომ თითოეული ჩვენი კვანძების 41 00:01:55,580 --> 00:01:58,610 უბრალოდ აპირებს აღვნიშნო, რომ შემდეგი კვანძის ჩვენს უკავშირდება სიაში. 42 00:01:58,610 --> 00:02:00,460 >> ასე რომ, თუ ჩვენ ტრეკზე. 43 00:02:00,460 --> 00:02:02,910 მიუხედავად იმისა, რომ ეს არ არის უწყვეტი ცალი მეხსიერების, 44 00:02:02,910 --> 00:02:07,410 ჩვენ შეგვიძლია მოვძებნოთ მათ მხოლოდ შემდეგ სხვადასხვა ისრებით. 45 00:02:07,410 --> 00:02:09,800 აქ არის ჩვენი სტრუქტურა უკავშირდება სიაში კვანძის. 46 00:02:09,800 --> 00:02:11,440 ჩვენ ვნახეთ ამ ბოლო დროს. 47 00:02:11,440 --> 00:02:13,080 ჩვენ გვაქვს ჩვენი struct კვანძში. 48 00:02:13,080 --> 00:02:14,340 და მას აქვს ორი თვისებები. 49 00:02:14,340 --> 00:02:17,020 ნომერ პირველი, ფაქტობრივი მნიშვნელობა გვინდა შესანახად. 50 00:02:17,020 --> 00:02:18,290 ამ შემთხვევაში, ის რიცხვი. 51 00:02:18,290 --> 00:02:21,100 ეს შეიძლება იყოს ტექსტი, იგი იქნებოდა იყოს char, რაც თქვენ გინდათ. 52 00:02:21,100 --> 00:02:24,710 და შემდეგ, ჩვენ უნდა შევინარჩუნოთ სიმღერა შემდეგი კვანძის ჩვენს უკავშირდება სიაში. 53 00:02:24,710 --> 00:02:29,797 ასე რომ, ეს იქნება მომცეთ შემდეგი კვანძში. 54 00:02:29,797 --> 00:02:31,880 თუ თქვენ მხოლოდ აკეთებს ძებნა, როგორც ვთქვი ადრე, 55 00:02:31,880 --> 00:02:34,900 ნეტავ უნდა დაიცვას თქვენი ისრებით ქვემოთ. 56 00:02:34,900 --> 00:02:40,720 Insertion, თქვენ შენარჩუნება სიმღერა სადაც დანარჩენი თქვენი სია. 57 00:02:40,720 --> 00:02:44,150 და გსურთ გადამისამართება ხელმძღვანელი უნდა აღვნიშნო, რომ ჩვენს ახალ ელემენტს, რომელიც 58 00:02:44,150 --> 00:02:46,640 ამ შემთხვევაში არის ერთი, და მაშინ ერთი იქნება აღვნიშნო, 59 00:02:46,640 --> 00:02:49,480 დარჩენილი უკავშირდება სიაში. 60 00:02:49,480 --> 00:02:52,996 ასე რომ კიდევ ერთხელ, მე ვიცი, რომ ეს არის პატარა ცოტა განმეორებითი from ვიქტორინა ნულოვანი. 61 00:02:52,996 --> 00:02:55,370 ამიტომ ჩვენ უნდა ვიყოთ ძალიან ფრთხილად, შესახებ ბრძანება, სადაც ჩვენ 62 00:02:55,370 --> 00:03:00,390 გავაკეთოთ ეს pointings ასე რომ, ჩვენ არ დასაკარგი სიმღერა უკან სიაში. 63 00:03:00,390 --> 00:03:04,122 OK, ნებისმიერი კითხვები უბრალოდ საგნით უკავშირდება სიები? 64 00:03:04,122 --> 00:03:06,060 გასაოცარია, OK, მაგარი. 65 00:03:06,060 --> 00:03:09,410 >> ახლა, ჩვენ ვაპირებთ წასვლა გადატანა რაღაც ოდნავ უფრო რთული, 66 00:03:09,410 --> 00:03:10,920 ორმაგად უკავშირდება სიები. 67 00:03:10,920 --> 00:03:13,680 ასე რომ, გარდა შენახვის სიმღერა შემდეგი კვანძში, 68 00:03:13,680 --> 00:03:16,220 ჩვენ ასევე გვინდა, რომ შევინარჩუნოთ სიმღერა წინა კვანძის. 69 00:03:16,220 --> 00:03:19,580 და ეს საშუალებას გვაძლევს, თუ ჩვენ რაღაც მომენტში ჩვენი უკავშირდება სია, 70 00:03:19,580 --> 00:03:23,110 არა მხოლოდ წავიდეთ წინ, მაგრამ ასევე iterate უკან. 71 00:03:23,110 --> 00:03:25,220 იმიტომ, რომ, როგორც ჩვენ ვნახეთ საგნით უკავშირდება სია, 72 00:03:25,220 --> 00:03:27,980 თუ ჩვენ ვიყავით რაღაც კვანძი, და უეცრად, ჩვენ გადავწყვიტეთ, 73 00:03:27,980 --> 00:03:30,160 ფაქტობრივად, მინდა წასვლა კვანძის უფლება ჩემს წინაშე, 74 00:03:30,160 --> 00:03:32,034 ნეტავ უნდა წავიდეთ ყველა გზა უკან ხელმძღვანელი 75 00:03:32,034 --> 00:03:35,710 და iterate მეშვეობით სანამ ი კვანძის ეძებდით. 76 00:03:35,710 --> 00:03:37,680 >> ასე რომ, ეს ხდის რამ ოდნავ უფრო ადვილია, როგორც ჩვენ 77 00:03:37,680 --> 00:03:39,670 ცდილობს iterate ჩვენი უკავშირდება სიაში. 78 00:03:39,670 --> 00:03:47,870 მაგრამ ეს მოითხოვს, რომ შევინარჩუნოთ სიმღერა ერთი მეტი მაჩვენებელი, ამიტომ კიდევ ერთი კვანძის ვარსკვლავი. 79 00:03:47,870 --> 00:03:50,830 ყველა უფლება, ამიტომ აქ მოდის fun ნაწილი. 80 00:03:50,830 --> 00:03:55,600 ჩვენ ვაპირებთ, რომ პრაქტიკაში ახორციელებს ამოიღონ ორმაგად უკავშირდება სიები. 81 00:03:55,600 --> 00:03:58,660 ასე რომ, ეს არის ის, რომ სრულიად სამართლიანი თამაში ვიქტორინა. 82 00:03:58,660 --> 00:04:00,750 რომ გამოჩნდა წარსულში ტესტებში. 83 00:04:00,750 --> 00:04:04,220 ამიტომ აუცილებლად უნდა მომზადდეს კოდირებისათვის ცოტა C. 84 00:04:04,220 --> 00:04:07,900 ნუ დაგავიწყდებათ, რომ ყველა ამ fun PHP და JavaScript, 85 00:04:07,900 --> 00:04:10,560 ჩვენ ჯერ კიდევ უნდა გვახსოვდეს უნდა გავაკეთოთ C. ასე ფუნჯი up on რომ 86 00:04:10,560 --> 00:04:12,146 თუ თქვენ შეგრძნება ჟანგიანი. 87 00:04:12,146 --> 00:04:14,580 >> ყველა უფლება, მოდით ვნახოთ, თუ ჩვენ შეგვიძლია ამის გაკეთება. 88 00:04:14,580 --> 00:04:16,312 OK, მაგარი. 89 00:04:16,312 --> 00:04:18,600 ასე რომ, ჩვენ ვაპირებთ, რომ ცდილობენ რედაქტირება უფლება აქ, 90 00:04:18,600 --> 00:04:20,707 და იმედია ეს მიდის როგორც დაგეგმილი. 91 00:04:20,707 --> 00:04:23,915 ყველა უფლება, ვინმეს სურს, რომ მომეცი წინადადება, თუ როგორ მე უნდა დაიწყოს? 92 00:04:23,915 --> 00:04:27,030 ეს მხოლოდ ვარაუდია ვარ მიღების, რომ მე უკვე 93 00:04:27,030 --> 00:04:30,180 არ სტრუქტურა განისაზღვრება, ერთი მე აჩვენა ბოლო გვერდზე, 94 00:04:30,180 --> 00:04:31,420 ბოლო slide. 95 00:04:31,420 --> 00:04:39,250 და მე შენახვის ხელმძღვანელი ჩემი უკავშირდება სიაში გარკვეული მაჩვენებელი მოუწოდა სიაში. 96 00:04:39,250 --> 00:04:42,190 ჯერ არავის მინდა ჩემთვის დაიწყო? 97 00:04:42,190 --> 00:04:45,410 >> აუდიტორია: შეგიძლიათ შექმნათ ახალი კვანძის მოვუწოდებთ მეშვეობით სიაში? 98 00:04:45,410 --> 00:04:46,410 >> HANNAH: გასაოცარია, ასე ჩვენ ვაპირებთ, რომ შევქმნათ 99 00:04:46,410 --> 00:04:47,951 ახალი კვანძის სეირნობისას მეშვეობით სიაში. 100 00:04:47,951 --> 00:04:48,570 მინდა, რომ. 101 00:04:48,570 --> 00:04:50,799 მე უბრალოდ ეძახით მაჩვენებელი, თუ ეს OK. 102 00:04:50,799 --> 00:04:52,340 და სად უნდა ეს თავდაპირველად დავიწყოთ? 103 00:04:52,340 --> 00:04:57,280 104 00:04:57,280 --> 00:04:59,840 >> აუდიტორია: ალბათ at უფროსი სიაში. 105 00:04:59,840 --> 00:05:00,590 HANNAH: Beautiful. 106 00:05:00,590 --> 00:05:03,670 ჩვენ გვინდა, რომ დაიწყოს ხელმძღვანელი, რომელიც მე ვთქვი, რომ იქნება შენახული სიაში. 107 00:05:03,670 --> 00:05:04,170 გასაოცარია. 108 00:05:04,170 --> 00:05:05,220 ჯერჯერობით, იმდენად კარგი. 109 00:05:05,220 --> 00:05:08,260 და ახლა, ჩვენი მიზანია iterate მეშვეობით სია 110 00:05:08,260 --> 00:05:12,870 სანამ ჩვენ კვანძის მნიშვნელობა n, რომ ჩვენ გვინდა წაშლა. 111 00:05:12,870 --> 00:05:13,540 OK? 112 00:05:13,540 --> 00:05:15,910 >> ასე რომ, ახლა არის ის ნაწილი, სადაც ჩვენ გვინდა iterate მეშვეობით. 113 00:05:15,910 --> 00:05:19,488 შეიძლება ვინმეს ვარაუდობენ გზა iterate მეშვეობით? 114 00:05:19,488 --> 00:05:20,979 >> აუდიტორია: loop. 115 00:05:20,979 --> 00:05:21,840 >> HANNAH: loop. 116 00:05:21,840 --> 00:05:22,620 მე მიყვარს იგი. 117 00:05:22,620 --> 00:05:25,550 კერძოდ, ჩვენ შეგვიძლია ვცდილობთ ხოლო loop. 118 00:05:25,550 --> 00:05:30,919 OK, და ჩვენ ვიცით, რომ ჩვენ მიაღწია ბოლოს ჩვენი სიაში, როდესაც რა? 119 00:05:30,919 --> 00:05:32,210 აუდიტორია: როდესაც კურსორი არის null. 120 00:05:32,210 --> 00:05:33,418 HANNAH: როდესაც კურსორი არის null. 121 00:05:33,418 --> 00:05:34,320 ლამაზი, მე მიყვარს იგი. 122 00:05:34,320 --> 00:05:35,110 OK, მაგარი. 123 00:05:35,110 --> 00:05:39,300 124 00:05:39,300 --> 00:05:43,190 ასე რომ, ბოდიში თუ ჩემი bounding გაუწიოს არის სახის დაცემით off ეკრანზე. 125 00:05:43,190 --> 00:05:44,090 ჩვენ მოიტანა უკან. 126 00:05:44,090 --> 00:05:46,610 OK, მაგარი. 127 00:05:46,610 --> 00:05:48,690 რა არის შემდეგი? 128 00:05:48,690 --> 00:05:51,950 >> ასე ვიცით ჩვენ გვინდა წაშლა კვანძში, რომელსაც აქვს მნიშვნელობა n. 129 00:05:51,950 --> 00:05:56,340 მოდით ვიპოვოთ იმ შემთხვევაში, თუ ჩვენ რეალურად ჩვენი კვანძში. 130 00:05:56,340 --> 00:05:57,840 ისე როგორ იქნებოდა I შეამოწმოს, რომ? 131 00:05:57,840 --> 00:06:02,210 მე უბრალოდ ვიტყვი, თუ მაჩვენებელი, და მაშინ, თუ მე გვინდა ღირებულების მაჩვენებელი, 132 00:06:02,210 --> 00:06:08,940 მე უბრალოდ arrow n, უდრის n, პარამეტრი 133 00:06:08,940 --> 00:06:14,490 რომელიც ჩვენ მივეცით ამ ფუნქციას, კვანძში, რომ ჩვენ გვინდა, რომ რეალურად წაშლა. 134 00:06:14,490 --> 00:06:17,090 რაიმე შეკითხვები წლამდე აქ? 135 00:06:17,090 --> 00:06:18,360 ყველა უფლება. 136 00:06:18,360 --> 00:06:24,140 OK, ასე რომ, ახლა მოდით დავხატოთ სწრაფი სურათი ფორუმში, რათა წარმოვიდგინოთ. 137 00:06:24,140 --> 00:06:30,710 >> ასე ვთქვათ, იქ ჩვენი ლამაზი კვანძი. 138 00:06:30,710 --> 00:06:34,480 და მას აქვს მნიშვნელობა, მე უბრალოდ, ვამბობთ ოთხ. 139 00:06:34,480 --> 00:06:40,340 და ეს მიუთითებს შემდეგი კვანძის ჩვენს უკავშირდება სიაში. 140 00:06:40,340 --> 00:06:42,220 და არაფერი, სანამ. 141 00:06:42,220 --> 00:06:45,800 ასე რომ, ჩვენ გვაქვს ჩვენი წინა მიუთითებს არაფერი. 142 00:06:45,800 --> 00:06:48,110 ამ შემთხვევაში, ჩვენ აღვნიშნო უკან. 143 00:06:48,110 --> 00:06:50,960 OK, უბრალოდ შექმნის ჩემი უკავშირდება სიაში აქ. 144 00:06:50,960 --> 00:06:53,630 და ჩვენ გვაქვს სია, რომელიც მიუთითებს ამ სტრუქტურის უნდა დაიწყოს. 145 00:06:53,630 --> 00:06:57,220 146 00:06:57,220 --> 00:07:00,485 მე მიაპყროს კიდევ ერთი გულისთვის სისრულეზე. 147 00:07:00,485 --> 00:07:04,209 148 00:07:04,209 --> 00:07:06,117 OK. 149 00:07:06,117 --> 00:07:07,480 მე აღვნიშნო ამ პროცესის შეჩერება. 150 00:07:07,480 --> 00:07:09,550 და მე მინდა აღვნიშნო, რომ ერთი უკან. 151 00:07:09,550 --> 00:07:10,360 Oops, უკაცრავად. 152 00:07:10,360 --> 00:07:12,710 ჰო, მე მივიღე ეს უკან. 153 00:07:12,710 --> 00:07:15,548 154 00:07:15,548 --> 00:07:16,967 ამას კიდევ ერთხელ. 155 00:07:16,967 --> 00:07:18,330 OK, იქ ჩვენ წავიდეთ. 156 00:07:18,330 --> 00:07:19,910 ყველა უფლება მიიღო. 157 00:07:19,910 --> 00:07:21,780 OK, აქ არის ჩვენი სურათი. 158 00:07:21,780 --> 00:07:24,860 >> OK, ასე რომ ჩვენ გვინდა განვიხილოთ ორი შემთხვევა. 159 00:07:24,860 --> 00:07:27,330 პირველ შემთხვევაში, თუ კვანძის გვინდა წაშლა 160 00:07:27,330 --> 00:07:29,420 არის ძალიან დაწყების ჩვენს სიაში. 161 00:07:29,420 --> 00:07:34,070 და შემდეგ, მეორე შემთხვევაში, რომ ჩვენ გვინდა განიხილოს არის, თუ ის არსად. 162 00:07:34,070 --> 00:07:37,660 მესმის, რომ ეს სრულიად messy ხატვის ყველა ჩემი erasing, 163 00:07:37,660 --> 00:07:40,400 მაგრამ იმედია, ჩვენ შევეცდებით ეს ნათელია რამდენიმე კოდი. 164 00:07:40,400 --> 00:07:45,450 >> OK, მოდით მოიცავს საქმე სადაც ჩვენ ვნახეთ ჩვენი კვანძის, 165 00:07:45,450 --> 00:07:48,900 და ეს ძალიან დაიწყოს ჩვენი უკავშირდება სიაში. 166 00:07:48,900 --> 00:07:50,810 ვინმეს მომეცი წინადადება, აქ, რა 167 00:07:50,810 --> 00:07:54,684 მე უნდა გავაკეთოთ იმისათვის, რომ რეალურად ამოიღონ ჩვენი კვანძის? 168 00:07:54,684 --> 00:07:55,970 ეს არის პატარა სახიფათო. 169 00:07:55,970 --> 00:07:56,470 OK? 170 00:07:56,470 --> 00:07:59,628 >> აუდიტორია: თქვენ უნდა მიიღოს კვანძი, რომელიც იქნება, სანამ ის 171 00:07:59,628 --> 00:08:01,794 და რათა ის აღვნიშნო, რომ ერთი, რომ იქნება მას შემდეგ, 172 00:08:01,794 --> 00:08:03,004 და მიიღოს კვანძი, რომელიც იქნება მას შემდეგ და 173 00:08:03,004 --> 00:08:04,554 ის აღვნიშნო, რომ კვანძის მის წინაშე. 174 00:08:04,554 --> 00:08:05,220 HANNAH: ზუსტად. 175 00:08:05,220 --> 00:08:10,640 OK, ასე რომ ეს არის საქმე where-- ჩვენ გვაქვს ორი შემთხვევა. 176 00:08:10,640 --> 00:08:14,100 ჩვენ გვაქვს საქმე, სადაც კვანძში, რომ ჩვენ ვეძებთ 177 00:08:14,100 --> 00:08:18,270 არის წინა სიაში. 178 00:08:18,270 --> 00:08:23,110 OK, შემდეგ კი იმ შემთხვევაში, რომ თქვენ აღწერილი, წინააღმდეგ შემთხვევაში, უფლება? 179 00:08:23,110 --> 00:08:24,500 ეს სხვაგან სიაში. 180 00:08:24,500 --> 00:08:27,460 181 00:08:27,460 --> 00:08:32,840 ასე რომ თქვენ განაცხადა, ჩვენ უნდა შევხედოთ კვანძის წინა, 182 00:08:32,840 --> 00:08:36,500 და წინა კვანძის აღვნიშნო, რომ მომდევნო კვანძის. 183 00:08:36,500 --> 00:08:40,510 ასე ვთქვათ ჩვენ ცდილობს აიღოს ხუთ 184 00:08:40,510 --> 00:08:43,059 ჩემი ძალიან რთული ნახაზი აქ. 185 00:08:43,059 --> 00:08:47,530 ჩვენ გვინდა დავრწმუნდეთ, რომ ოთხი ახლა რაოდენობა ექვსი. 186 00:08:47,530 --> 00:08:49,590 ოთხი მომდევნო რაოდენობა ექვსი. 187 00:08:49,590 --> 00:08:52,150 და ექვსი წინა რაოდენობა ოთხ. 188 00:08:52,150 --> 00:08:53,960 ეს ჩვენი მიზანი აქ, არა? 189 00:08:53,960 --> 00:08:56,150 ეს არის ის, რაც მე ვფიქრობ, თქვენ უბრალოდ ამბობს იქ. 190 00:08:56,150 --> 00:08:58,450 >> OK, მოდით, რომ პირველ ჯერზე. 191 00:08:58,450 --> 00:09:02,300 მოდით აქვს წინა მაჩვენებელი წინა. 192 00:09:02,300 --> 00:09:06,550 193 00:09:06,550 --> 00:09:09,690 ამიტომ ოთხი მომდევნო უნდა აღვნიშნო, რომ რა? 194 00:09:09,690 --> 00:09:13,210 195 00:09:13,210 --> 00:09:14,900 ზუსტად, ამ შემთხვევაში, ექვსი. 196 00:09:14,900 --> 00:09:18,470 ასე რომ, ჩვენ უნდა ვთქვათ, მაჩვენებელი, შემდეგი. 197 00:09:18,470 --> 00:09:20,600 OK? 198 00:09:20,600 --> 00:09:21,150 ყველა უფლება. 199 00:09:21,150 --> 00:09:24,870 მოდით, თავი დაეღწია ამ მახინჯი სურათი და ცდილობენ მიაპყროს ოდნავ უკეთესი ერთი. 200 00:09:24,870 --> 00:09:29,040 201 00:09:29,040 --> 00:09:31,172 ჩვენ გვაქვს ჩვენი სია ხელმძღვანელი აქ. 202 00:09:31,172 --> 00:09:36,440 203 00:09:36,440 --> 00:09:42,740 და რომელიც მიუთითებს პირველი კვანძი, ჩვენი უკავშირდება სია, რომელშიც ნათქვამია, არის ოთხი. 204 00:09:42,740 --> 00:09:45,620 აქ არის ჩვენი მეორე კვანძის, ხუთი. 205 00:09:45,620 --> 00:09:47,307 და ჩვენი მესამე კვანძის, ექვსი. 206 00:09:47,307 --> 00:09:50,265 უბრალოდ ცდილობს გავამახვილო ზუსტად იგივე სურათი, უბრალოდ ცოტა მეტი cleanly. 207 00:09:50,265 --> 00:09:52,780 208 00:09:52,780 --> 00:09:56,280 OK, ასე რომ ოთხი შემდეგი თავდაპირველად აღნიშნავს ხუთ. 209 00:09:56,280 --> 00:09:58,620 ხუთი მომდევნო რაოდენობა ექვსი. 210 00:09:58,620 --> 00:10:00,170 ექვსი წინა რაოდენობა ხუთ. 211 00:10:00,170 --> 00:10:02,470 და ხუთ წინა რაოდენობა ოთხ. 212 00:10:02,470 --> 00:10:03,360 იმდენად გავალამაზოთ, 213 00:10:03,360 --> 00:10:04,530 OK, მაგარი. 214 00:10:04,530 --> 00:10:07,770 >> ახლა, რაც ჩვენ გავაკეთეთ მხოლოდ აქ, ამ ხაზი კოდი, 215 00:10:07,770 --> 00:10:12,680 რომელიც ამბობს მაჩვენებელი წინა შემდეგი, ასე რომ, რას ნიშნავს? 216 00:10:12,680 --> 00:10:17,540 ეს ნიშნავს, რომ თუ ჩვენ შევხედავთ ხუთი, წასვლა წინა კვანძის, 217 00:10:17,540 --> 00:10:21,970 და ეს მომავალი უნდა წერტილი ხუთი მომდევნო. 218 00:10:21,970 --> 00:10:27,840 ასე რომ, არსებითად, რა, რომ აკეთებს ის არის, რომ ის წაშლა ამ arrow 219 00:10:27,840 --> 00:10:29,640 და რაც გამოტოვოთ უფლება ხუთ. 220 00:10:29,640 --> 00:10:31,360 არის, რომ წმინდა? 221 00:10:31,360 --> 00:10:33,200 მე ვიცი, რომ შეიძლება ცოტა არადამაჯერებელი. 222 00:10:33,200 --> 00:10:34,480 მე ვხედავ ზოგიერთი ხელმძღვანელი nods. 223 00:10:34,480 --> 00:10:35,390 ეს არის კარგი. 224 00:10:35,390 --> 00:10:36,670 OK, მაგარი. 225 00:10:36,670 --> 00:10:39,590 ახლა, რა არის შემდეგი ნაბიჯი? 226 00:10:39,590 --> 00:10:42,060 >> მე გადატვირთვის შემდეგ. 227 00:10:42,060 --> 00:10:45,297 ახლა, რაც სხვა arrow შემიძლია უნდა შეცვალოს? 228 00:10:45,297 --> 00:10:46,130 ამ ერთი უფლება აქ. 229 00:10:46,130 --> 00:10:47,560 ექვსი წინა. 230 00:10:47,560 --> 00:10:50,620 ჩვენ არ გვინდა, რომ ექვსი წინა უნდა აღვნიშნო, რომ ხუთ აღარ. 231 00:10:50,620 --> 00:10:54,580 ჩვენ გვინდა, რომ აღვნიშნო, რომ ოთხი. 232 00:10:54,580 --> 00:10:56,190 იმას, რომ სურათი აზრი? 233 00:10:56,190 --> 00:10:58,370 ასე რომ, ახლა ჩვენ შეგვიძლია რეალურად ხუთ out. 234 00:10:58,370 --> 00:10:59,370 მოდით, რომ ცალი. 235 00:10:59,370 --> 00:11:03,390 236 00:11:03,390 --> 00:11:11,180 რა უნდა გავაკეთოთ, სანამ მე გადატვირთვის ექვსი წინა ოთხი? 237 00:11:11,180 --> 00:11:14,360 ნებისმიერი იდეები იქ? 238 00:11:14,360 --> 00:11:17,369 >> აუდიტორია: უფასო კვანძის შორის მათ მიიღწევა მას null? 239 00:11:17,369 --> 00:11:17,910 HANNAH: Cool. 240 00:11:17,910 --> 00:11:21,100 აუცილებლად, ჩვენი თვითმიზანი არ არის იქნება გასათავისუფლებლად კვანძის. 241 00:11:21,100 --> 00:11:22,490 ასე რომ, ჩვენ შეგვიძლია გავაკეთოთ, რომ უფლება აქ. 242 00:11:22,490 --> 00:11:23,540 უფასო მაჩვენებელი. 243 00:11:23,540 --> 00:11:24,810 აბსოლუტურად. 244 00:11:24,810 --> 00:11:29,160 მაგრამ მანამდე, მოდით just-- ჩვენი მიზანი 245 00:11:29,160 --> 00:11:38,730 აქ არის მითითებული მომცეთ შემდეგი წინა ტოლია მაჩვენებელი წინა. 246 00:11:38,730 --> 00:11:40,760 მე ვიცი, რომ ეს ხდება დაფარული. 247 00:11:40,760 --> 00:11:45,440 OK, მოდით take-- cool. 248 00:11:45,440 --> 00:11:46,990 შეგიძლიათ ყველამ ნახოთ ეს დედააზრი? 249 00:11:46,990 --> 00:11:47,840 თუ ეს სუპერ პატარა? 250 00:11:47,840 --> 00:11:50,430 251 00:11:50,430 --> 00:11:54,300 >> ასე რომ, სანამ ჩვენ შეასრულოს ამ ხაზის აქ, ჩვენ გვინდა 252 00:11:54,300 --> 00:11:58,375 დარწმუნდით, რომ მაჩვენებელი მომავალი არ null. 253 00:11:58,375 --> 00:12:00,500 იმიტომ, რომ თუ მაჩვენებელი მომავალი null, რა სახის შეცდომა 254 00:12:00,500 --> 00:12:02,727 მივიღებ როდესაც ვცდილობ მითითებას null მაჩვენებელი? 255 00:12:02,727 --> 00:12:03,560 აუდიტორია: Seg ბრალია. 256 00:12:03,560 --> 00:12:05,660 HANNAH: seg ბრალია, ლამაზი. 257 00:12:05,660 --> 00:12:09,690 OK, ასე რომ, თუ არ არის null, მაშინ ჩვენ შეგვიძლია გადატვირთვის. 258 00:12:09,690 --> 00:12:14,420 და ჩვენ გვაქვს ექვსი წერტილი ერთხელ ოთხ. 259 00:12:14,420 --> 00:12:17,440 კითხვები წლამდე ამ ეტაპზე? 260 00:12:17,440 --> 00:12:17,940 დიახ? 261 00:12:17,940 --> 00:12:19,814 >> აუდიტორია: თქვენი პირველი თუ განაცხადი, არ 262 00:12:19,814 --> 00:12:23,817 ნიშნავს, რომ ისარი შემდეგი, ან [INAUDIBLE]? 263 00:12:23,817 --> 00:12:25,150 HANNAH: ვგულისხმობდი მაჩვენებელი ისარი n. 264 00:12:25,150 --> 00:12:30,270 ასე რომ, ძირითადად, რასაც მე ვცდილობ ამბობენ, მიმდინარე კვანძის რომ მე ვარ 265 00:12:30,270 --> 00:12:34,100 iterating მეტი, მიმდინარე კვანძის რომ მე ეძებს, მე შენახვის მაჩვენებელი. 266 00:12:34,100 --> 00:12:37,630 და მინდა იცოდეს მაჩვენებელი ღირებულება, რომელიც ამ შემთხვევაში არის n. 267 00:12:37,630 --> 00:12:39,500 და მე მინდა, არის კვანძის ვეძებ 268 00:12:39,500 --> 00:12:42,790 კვანძის მე მიზნად ისახავს წაშლა? 269 00:12:42,790 --> 00:12:47,657 სწორედ ამიტომ ჩვენ გვაქვს აქ მაჩვენებელი n. 270 00:12:47,657 --> 00:12:49,857 >> აუდიტორია: ასე arrow აპირებს ო, თქვენ მითითებული ღირებულება 271 00:12:49,857 --> 00:12:52,058 და შეინახოს იგი კვანძის მოუწოდა n? 272 00:12:52,058 --> 00:12:55,410 273 00:12:55,410 --> 00:12:58,820 >> HANNAH: ასე რომ, თუ მე ვარ გადის ამ სიაში 274 00:12:58,820 --> 00:13:00,310 და მიუთითებს ხუთ. 275 00:13:00,310 --> 00:13:03,600 თუ მინდა, რომ მიიღოს, რომ ღირებულება, თუ მინდა კიდევ, რომ ნომერი, 5, 276 00:13:03,600 --> 00:13:06,400 მე უნდა გავაკეთოთ მაჩვენებელი ისარი n. 277 00:13:06,400 --> 00:13:06,900 მაგარი? 278 00:13:06,900 --> 00:13:07,900 Yeah. 279 00:13:07,900 --> 00:13:11,200 >> აუდიტორია: არის n ცვლადის სახელი? 280 00:13:11,200 --> 00:13:11,700 HANNAH: დიახ. 281 00:13:11,700 --> 00:13:14,870 ასე რომ, თუ ჩვენ Flip უკან ერთი slide, n არის სახელი 282 00:13:14,870 --> 00:13:18,660 ღირებულება შიგნით კვანძის ჩვენს უკავშირდება სიაში. 283 00:13:18,660 --> 00:13:21,510 და მე ვიცი, რომ შეიძლება კიდევ ცოტა ცოტა გაუგებარია, რადგან ჩვენ ასევე 284 00:13:21,510 --> 00:13:24,680 მოუწოდებენ რამ ჩვენ გვინდა, რომ წაშალოთ n. 285 00:13:24,680 --> 00:13:26,717 ასე რომ, სადაც, რომ ერთი ხაზი მოდის. 286 00:13:26,717 --> 00:13:27,671 ჰო? 287 00:13:27,671 --> 00:13:31,010 >> აუდიტორია: რა გაქვთ [INAUDIBLE] როგორ მუშაობს? 288 00:13:31,010 --> 00:13:33,872 289 00:13:33,872 --> 00:13:35,780 მაჩვენებელი [INAUDIBLE]? 290 00:13:35,780 --> 00:13:37,520 >> HANNAH: რა თქმა უნდა. 291 00:13:37,520 --> 00:13:40,027 თქვენ ვსაუბრობთ ამაზე ხაზი? 292 00:13:40,027 --> 00:13:41,526 აუდიტორია: ბოლო ხაზი [INAUDIBLE]. 293 00:13:41,526 --> 00:13:44,280 294 00:13:44,280 --> 00:13:45,250 >> HANNAH: რა თქმა უნდა, OK. 295 00:13:45,250 --> 00:13:48,540 ასე რომ, მოდით შევხედოთ სურათს იმისათვის, რომ ცდილობს ახსნას ამ. 296 00:13:48,540 --> 00:13:51,030 მე ვწუხვარ, რომ კამერა, კითხვა იყო 297 00:13:51,030 --> 00:13:54,580 ავხსნათ მაჩვენებელი arrow შემდეგი მაჩვენებელი წინა. 298 00:13:54,580 --> 00:14:01,510 OK, ასე ვთქვათ ჩვენ ვართ ხუთ და ჩვენი მიზანია წაშლა ხუთ. 299 00:14:01,510 --> 00:14:07,240 ამიტომ კურსორი შემდეგ, რაც ამ სამი კვანძების გვაძლევს? 300 00:14:07,240 --> 00:14:10,840 რომ მოაქვს მეექვსე კვანძის, არა? 301 00:14:10,840 --> 00:14:16,490 >> OK, ასე რომ, ახლა ჩვენ ითხოვს იმ ექვსი წინა. 302 00:14:16,490 --> 00:14:17,060 OK? 303 00:14:17,060 --> 00:14:20,210 და ჩვენ გადატვირთვის ეს თანაბარი უნდა იყოს ოთხი, 304 00:14:20,210 --> 00:14:23,214 რაც მოხდა, რომ ხუთ წინა. 305 00:14:23,214 --> 00:14:25,180 მე ვიცი, ეს სუპერ იმისთვის, რომ შევინარჩუნოთ სიმღერა. 306 00:14:25,180 --> 00:14:29,286 მე ნამდვილად გირჩევთ გავამახვილო სურათები თუ თქვენ გაქვთ შეკითხვა მოსწონს ეს. 307 00:14:29,286 --> 00:14:30,242 დიახ? 308 00:14:30,242 --> 00:14:32,617 >> აუდიტორია: არის მიზეზი, რომ ჩვენ არ გვაქვს [INAUDIBLE]? 309 00:14:32,617 --> 00:14:37,430 310 00:14:37,430 --> 00:14:38,570 >> HANNAH: ზუსტად. 311 00:14:38,570 --> 00:14:44,800 ასე რომ კითხვა იყო, რატომ ჩვენ არ უნდა შეამოწმეთ აქ? 312 00:14:44,800 --> 00:14:48,160 რატომ არ გვჭირდება, რათა შეამოწმოს, მაჩვენებელი წინა არ არის ტოლი null? 313 00:14:48,160 --> 00:14:50,070 და ეს იმიტომ, რომ ჩვენ უკვე გამოყოფილია 314 00:14:50,070 --> 00:14:52,490 იმ შემთხვევაში, თუ მაჩვენებელი თავიდანვე. 315 00:14:52,490 --> 00:14:54,060 ძალიან კარგი კითხვაა. 316 00:14:54,060 --> 00:14:56,880 არაფერი ეს? 317 00:14:56,880 --> 00:14:57,380 OK, მაგარი. 318 00:14:57,380 --> 00:14:58,360 მოდით დავამთავროთ ეს up. 319 00:14:58,360 --> 00:14:59,890 ჩვენ თითქმის არ არსებობს. 320 00:14:59,890 --> 00:15:01,310 >> ასე რომ, თუ ის არის უფროსი? 321 00:15:01,310 --> 00:15:03,360 რა, თუ ნაცვლად ცდილობს წაშლა ხუთ, 322 00:15:03,360 --> 00:15:06,240 ჩვენ რეალურად სურდა წაშლა ოთხი? 323 00:15:06,240 --> 00:15:07,270 რა უნდა გავაკეთოთ? 324 00:15:07,270 --> 00:15:09,610 ისე, მე მინდა აღადგინოთ ჩემი უფროსი, თუ რა? 325 00:15:09,610 --> 00:15:14,288 326 00:15:14,288 --> 00:15:15,585 Shout it out? 327 00:15:15,585 --> 00:15:16,710 აუდიტორია: ერთი მის შემდეგ. 328 00:15:16,710 --> 00:15:17,460 HANNAH: Beautiful. 329 00:15:17,460 --> 00:15:26,430 OK, ასე რომ, ჩვენ გვინდა სია უნდა მიუთითებს რაც არ უნდა ჩვენი მომცეთ შემდეგი კვანძის. 330 00:15:26,430 --> 00:15:29,040 კარგი. 331 00:15:29,040 --> 00:15:30,810 და მხოლოდ სისრულის მიერ გულისთვის, ჩვენ გვინდა 332 00:15:30,810 --> 00:15:35,590 გსურთ შეამოწმოთ, რომ სანამ ჩვენს სიაში არ არის null, რადგან ჩვენს სიაში არ არის 333 00:15:35,590 --> 00:15:42,730 ცარიელი, მაშინ ჩვენ გვინდა მითითებული ჩვენი წინა ტოლია null. 334 00:15:42,730 --> 00:15:46,960 335 00:15:46,960 --> 00:15:50,230 კითხვა აქამდე? 336 00:15:50,230 --> 00:15:53,205 ერთი ნაბიჯია აქედან? 337 00:15:53,205 --> 00:15:55,530 >> აუდიტორია: უნდა იყოს თუ სიაში არ არის ტოლი null? 338 00:15:55,530 --> 00:15:56,950 >> HANNAH: დიახ, თქვენ მთლიანად უფლება. 339 00:15:56,950 --> 00:15:58,130 მე ასე უკაცრავად. 340 00:15:58,130 --> 00:16:00,040 არის სიაში არ არის ტოლი null. 341 00:16:00,040 --> 00:16:01,915 გასაოცარია. 342 00:16:01,915 --> 00:16:04,245 ცდილობს, რომ ეს ყველაფერი ეკრანზე. 343 00:16:04,245 --> 00:16:06,870 ეს სახის დაცემა off. 344 00:16:06,870 --> 00:16:07,730 უკაცრავად, ბიჭები. 345 00:16:07,730 --> 00:16:11,874 და ბოლო, მაგრამ არანაკლებ, ყველა ჩვენ უნდა გავაკეთოთ არის დაბრუნების. 346 00:16:11,874 --> 00:16:12,840 OK. 347 00:16:12,840 --> 00:16:15,400 ეს იყო ბევრი გაჭედილია მართლაც სწრაფად. 348 00:16:15,400 --> 00:16:16,800 მიიღოს მეორე შევხედოთ ამ დასრულდა. 349 00:16:16,800 --> 00:16:18,216 მეუბნებოდა, თუ თქვენ გაქვთ რაიმე შეკითხვები. 350 00:16:18,216 --> 00:16:20,232 351 00:16:20,232 --> 00:16:20,732 ჰო? 352 00:16:20,732 --> 00:16:26,940 >> აუდიტორია: თუ სიაში არის ხელმძღვანელი, შემდეგ კი დაველოდოთ, nevermind. 353 00:16:26,940 --> 00:16:27,700 >> HANNAH: OK, კარგი. 354 00:16:27,700 --> 00:16:30,987 ასე რომ, ეს არის, თუ სიაში არის ხელმძღვანელი, ჩვენ ამოიღონ ის რაც ჩვენ შეიყვანეს. 355 00:16:30,987 --> 00:16:31,486 ჰო? 356 00:16:31,486 --> 00:16:33,777 >> აუდიტორია: ახსნით პირველი, თუ განაცხადი კიდევ ერთხელ? 357 00:16:33,777 --> 00:16:36,149 თუ მომცეთ n უდრის n? 358 00:16:36,149 --> 00:16:36,690 HANNAH: რა თქმა უნდა. 359 00:16:36,690 --> 00:16:42,780 ამიტომ ჩვენი მიზანია ეს მთელი ფუნქცია წაშლა კვანძში, რომელსაც აქვს მნიშვნელობა n. 360 00:16:42,780 --> 00:16:47,460 ასე რომ, თუ ჩვენ, როგორც ჩვენ iterating მეშვეობით ჩვენს სიაში, 361 00:16:47,460 --> 00:16:51,770 კვანძის ღირებულების n, რომ ერთი გვინდა წაშლა. 362 00:16:51,770 --> 00:16:57,286 ასე რომ, ყველა წაშლა ხდება შიგნით რომ დიდი თუ განცხადებაში. 363 00:16:57,286 --> 00:16:58,593 ამჯამად რომ აზრი? 364 00:16:58,593 --> 00:16:59,480 მაგარი. 365 00:16:59,480 --> 00:16:59,990 ჰო? 366 00:16:59,990 --> 00:17:02,864 >> აუდიტორია: იქნებ უბრალოდ ვერ ვხედავ ეს, მაგრამ არ თქვენ ასევე უნდა ხაზი 367 00:17:02,864 --> 00:17:06,024 სენსორული მეშვეობით სიაში? 368 00:17:06,024 --> 00:17:06,690 HANNAH: გასაოცარია. 369 00:17:06,690 --> 00:17:10,896 მოდით, რათა ეს up ცოტა, და ჩვენ ყველაფერს იმისათვის, რომ უფლება ბოლოში. 370 00:17:10,896 --> 00:17:13,282 371 00:17:13,282 --> 00:17:15,490 იქნებ ფორუმში გვაქვს უკვე ოდნავ უკეთესი იდეა. 372 00:17:15,490 --> 00:17:17,829 ისე როგორ იქნებოდა მე გადაადგილება მაჩვენებელი ნაბიჯია? 373 00:17:17,829 --> 00:17:20,184 >> აუდიტორია: Pointer შეადგენს მაჩვენებელი პლუს ერთი. 374 00:17:20,184 --> 00:17:21,599 >> HANNAH: Beautiful. 375 00:17:21,599 --> 00:17:25,050 ასე რომ საშუალებას გვაძლევს გაგრძელდება iterating მეშვეობით. 376 00:17:25,050 --> 00:17:26,251 OK. 377 00:17:26,251 --> 00:17:27,750 აუდიტორია: თუ არ იყოს, სხვა? 378 00:17:27,750 --> 00:17:29,028 HANNAH: კიდევ ერთხელ? 379 00:17:29,028 --> 00:17:32,444 აუდიტორია: თუ არ იყოს, სხვაგან შემდეგ დიდი ძველი თუ 380 00:17:32,444 --> 00:17:35,519 განაცხადი [INAUDIBLE]? 381 00:17:35,519 --> 00:17:36,310 HANNAH: რომელი ნაწილი? 382 00:17:36,310 --> 00:17:38,350 მე ბოდიში. 383 00:17:38,350 --> 00:17:41,800 >> აუდიტორია: traversal, არ იყოს, სხვა? 384 00:17:41,800 --> 00:17:43,550 HANNAH თქვენ აბსოლუტურად შეიძლება ჰქონდეს სხვა. 385 00:17:43,550 --> 00:17:46,930 იმიტომ, რომ მე დაბრუნების უფლება არსებობს, თქვენ არ გჭირდებათ სხვა. 386 00:17:46,930 --> 00:17:48,760 მაგრამ ჰო, კარგი კითხვა. 387 00:17:48,760 --> 00:17:50,170 OK, არა? 388 00:17:50,170 --> 00:17:52,878 აუდიტორია: ჩვენ ვფიქრობთ მაჩვენებელი რომ მოძრაობს მეშვეობით სია 389 00:17:52,878 --> 00:17:56,610 როგორც აღების ღირებულება თითოეული კვანძის სიაში? 390 00:17:56,610 --> 00:18:00,650 ან უნდა ვიფიქროთ, რომ ეს სახის გარე სიაში? 391 00:18:00,650 --> 00:18:02,350 >> HANNAH: ან ერთი ჯარიმა, ვფიქრობ. 392 00:18:02,350 --> 00:18:05,880 სხვათა შორის, მე წარმომიდგენია, რომ ეს არის მე ვიტყვი, OK, მე ვარ მაჩვენებელი. 393 00:18:05,880 --> 00:18:06,520 და ეს არის ჩემთვის. 394 00:18:06,520 --> 00:18:07,150 ეს არის ჩემი მხრივ. 395 00:18:07,150 --> 00:18:09,960 მე ვაპირებ აღვნიშნო, რომ სხვადასხვა რამ, რომ მინდა iterate მეშვეობით. 396 00:18:09,960 --> 00:18:12,270 პირველი, მე ვაპირებ აღვნიშნო ხელმძღვანელი სიაში. 397 00:18:12,270 --> 00:18:14,144 და რომ მეუბნება მე აპირებს აღვნიშნო, რომ ოთხი. 398 00:18:14,144 --> 00:18:18,060 და ასე ჩემთვის, როგორც გარე სია, მე შემიძლია აღვნიშნო, რომ თითოეული ეს ელემენტები. 399 00:18:18,060 --> 00:18:19,520 ასე რომ, მე ვფიქრობ, რომ თავს მაჩვენებელი. 400 00:18:19,520 --> 00:18:21,645 აუდიტორია: ასე რომ, როდესაც თქვენ წაშლა ერთი იმ ელემენტებს, 401 00:18:21,645 --> 00:18:23,404 წაშლა თავს, ასე ვთქვათ. 402 00:18:23,404 --> 00:18:24,070 HANNAH: ზუსტად. 403 00:18:24,070 --> 00:18:25,920 ასე რომ თქვენ წაშლა რამ თქვენ მიუთითებს. 404 00:18:25,920 --> 00:18:28,340 ასე მაგალითად, რომ ჩვენ ვნახეთ, სადაც ჩვენ ვართ 405 00:18:28,340 --> 00:18:31,670 ცდილობს წაშლა ხუთ, როდესაც მე მიუთითებს ხუთ, 406 00:18:31,670 --> 00:18:34,200 მინდა წაშლა რამ მე მიუთითებს. 407 00:18:34,200 --> 00:18:35,870 სწორედ. 408 00:18:35,870 --> 00:18:36,577 დიახ? 409 00:18:36,577 --> 00:18:39,410 აუდიტორია: გვაქვს აღებული ზრუნვა იმ შემთხვევაში, სადაც n არ არის სიაში? 410 00:18:39,410 --> 00:18:40,460 HANNAH: თუ n არ არის სიაში? 411 00:18:40,460 --> 00:18:43,501 ყველა რომ მოხდება არის თქვენ აპირებს iterate მეშვეობით და iterate 412 00:18:43,501 --> 00:18:47,616 მეშვეობით, ხოლო შემდეგ, თქვენ აპირებს მისაღებად მაჩვენებელი მყოფი null, 413 00:18:47,616 --> 00:18:48,990 და მაშინ თქვენ უნდა გაკეთდეს. 414 00:18:48,990 --> 00:18:50,812 >> აუდიტორია: ასე რომ, ჩვენ გვაქვს დაბრუნდეს არაფერი? 415 00:18:50,812 --> 00:18:51,520 HANNAH: ჩვენ შეგვეძლო. 416 00:18:51,520 --> 00:18:54,500 ისე, რომ თუ განსაზღვრული ამ ფუნქცია, მე უბრალოდ, ვამბობთ, რომ ის დააბრუნებს 417 00:18:54,500 --> 00:18:55,770 ბათილად მიუხედავად. 418 00:18:55,770 --> 00:18:58,360 მაგრამ თქვენ შეიძლება რაღაც როგორიცაა დაბრუნების რიცხვი, 419 00:18:58,360 --> 00:19:00,920 და არ დაბრუნდება უარყოფითი 1 თუ იგი არ. 420 00:19:00,920 --> 00:19:03,070 რაღაც ამის მსგავსი. 421 00:19:03,070 --> 00:19:04,494 კითხვები with-- yes? 422 00:19:04,494 --> 00:19:05,410 აუდიტორია: [INAUDIBLE]? 423 00:19:05,410 --> 00:19:05,993 HANNAH: ბოდიში? 424 00:19:05,993 --> 00:19:07,419 აუდიტორია: [INAUDIBLE]? 425 00:19:07,419 --> 00:19:07,960 HANNAH: რა თქმა უნდა. 426 00:19:07,960 --> 00:19:11,730 ასე რომ actual-- ერთხელ ჩვენ ამ ყველაფერს მუშაობის მოძრავი 427 00:19:11,730 --> 00:19:16,530 ყველა ამ ისრებით გარშემო, მთელი ჩვენი მიზანი იყო, თავი დაეღწია კვანძის 428 00:19:16,530 --> 00:19:18,230 ჩვენ ვეძებთ. 429 00:19:18,230 --> 00:19:21,610 ასე რომ, ამ შემთხვევაში, ათავისუფლებს მაჩვენებელი, თუ მე მიუთითებს ხუთ, 430 00:19:21,610 --> 00:19:24,670 ეს იგივეა, წაშლა ამ შუა კვანძის. 431 00:19:24,670 --> 00:19:27,250 ეს არის ის, უფასო მაჩვენებელი ნაწილი. 432 00:19:27,250 --> 00:19:29,090 რომ აზრი? 433 00:19:29,090 --> 00:19:31,390 >> აუდიტორია: ასე კი ფიქრობდა თქვენ არ [INAUDIBLE]? 434 00:19:31,390 --> 00:19:36,060 >> HANNAH: ასე რომ, ჩვენ ვივარაუდოთ დასაწყისში ჩვენ გვქონდა სია, რომელიც იყო already-- 435 00:19:36,060 --> 00:19:37,220 მათ დააყენა ერთად. 436 00:19:37,220 --> 00:19:39,761 ასე რომ, რათა მშენებლობა სიაში, ისინი must've [INAUDIBLE]. 437 00:19:39,761 --> 00:19:42,190 438 00:19:42,190 --> 00:19:42,750 მაგარი. 439 00:19:42,750 --> 00:19:44,490 არაფერი ეს? 440 00:19:44,490 --> 00:19:46,386 დიახ? 441 00:19:46,386 --> 00:19:49,204 >> აუდიტორია: რა მოხდება, თუ სიაში არ გაუტოლდება null ხაზი? 442 00:19:49,204 --> 00:19:49,704 [INAUDIBLE]? 443 00:19:49,704 --> 00:19:52,289 444 00:19:52,289 --> 00:19:53,080 HANNAH: მარჯვენა აქ? 445 00:19:53,080 --> 00:19:53,840 აუდიტორია: Yeah. 446 00:19:53,840 --> 00:19:57,370 HANNAH: OK, ყველა მე ვაკეთებ არის მე უბრალოდ მიღების დარწმუნებული ვარ, 447 00:19:57,370 --> 00:20:03,250 რომ სანამ ვცდილობ dereference სია, ადრე ვცდილობ წვდომისათვის წინა, 448 00:20:03,250 --> 00:20:07,210 მინდა, რათა დავრწმუნდეთ, რომ ეს არ არის null ასე რომ არ მიიღოთ seg ბრალია. 449 00:20:07,210 --> 00:20:08,400 მაგარი. 450 00:20:08,400 --> 00:20:10,820 >> OK, მე ვიცი, ეს იყო საკმაოდ ბევრი მისაღებად მეშვეობით. 451 00:20:10,820 --> 00:20:14,950 ასე რომ, ეს slide იქნება ხელმისაწვდომი თქვენ. 452 00:20:14,950 --> 00:20:17,341 ასე რომ თქვენ შეგიძლიათ გაიაროს ეს უფრო დეტალურად. 453 00:20:17,341 --> 00:20:17,841 დიახ? 454 00:20:17,841 --> 00:20:19,749 >> აუდიტორია: რატომ სია [INAUDIBLE]? 455 00:20:19,749 --> 00:20:24,129 456 00:20:24,129 --> 00:20:24,670 HANNAH: რა თქმა უნდა. 457 00:20:24,670 --> 00:20:27,390 ასე სიაში ნამდვილად მიუთითებს ამ ელემენტს უფლება აქ, 458 00:20:27,390 --> 00:20:29,200 პირველი ელემენტია სიაში. 459 00:20:29,200 --> 00:20:30,748 ასე რომ არ აქვს წინა. 460 00:20:30,748 --> 00:20:31,736 დიახ? 461 00:20:31,736 --> 00:20:35,194 >> აუდიტორია: არა მომცეთ წერტილი იმავე მისამართზე მეხსიერება? 462 00:20:35,194 --> 00:20:38,404 ჯერ ეს აღვნიშნო, რომ იგივე მისამართი მეხსიერებაში, როგორც კვანძის 463 00:20:38,404 --> 00:20:40,640 რომ ეს მიუთითებს? 464 00:20:40,640 --> 00:20:43,865 >> HANNAH: დიახ, ეს მიუთითებს, ამ კვანძის მეხსიერებაში. 465 00:20:43,865 --> 00:20:47,190 >> აუდიტორია: მარჯვენა, როდესაც თქვენ [INAUDIBLE]? 466 00:20:47,190 --> 00:20:50,580 >> HANNAH: In გრძნობა, დიახ. 467 00:20:50,580 --> 00:20:51,280 OK. 468 00:20:51,280 --> 00:20:52,997 ყველა უფლება, მოდით გადაადგილება ერთად ამ. 469 00:20:52,997 --> 00:20:55,330 და თუ თქვენ გაქვთ მეტი შეკითხვები გამყარებაში გარშემო დასასრულს, 470 00:20:55,330 --> 00:20:57,130 და ჩვენ შეგვიძლია გაიაროს კიდევ ერთხელ. 471 00:20:57,130 --> 00:20:58,120 OK, მაგარი. 472 00:20:58,120 --> 00:21:00,490 ახლა ჩვენ კიდევ გადაადგილება რომ hash მაგიდები, ლელო, 473 00:21:00,490 --> 00:21:04,940 და ხეები, რომლებიც თქვენ მიიღო super იცნობს p-ხუთ, speller. 474 00:21:04,940 --> 00:21:11,020 >> ასე hash მაგიდასთან მხოლოდ array საგნით დაკავშირებული სიები 475 00:21:11,020 --> 00:21:14,050 ან ორმაგად უკავშირდება სიები მოდის off მას. 476 00:21:14,050 --> 00:21:16,380 ასე რომ, ჩვენ გვაქვს გარკვეული ასოციაციური მასივი. 477 00:21:16,380 --> 00:21:21,280 და ვიცით, რომელიც ამ კოლექტორები თაიგულების შეღწევას, 478 00:21:21,280 --> 00:21:24,137 ჩვენ ვიყენებთ ქეშირების ფუნქცია. 479 00:21:24,137 --> 00:21:26,470 ასე რომ, ამ შემთხვევაში, შეიძლება ვინმეს გამოიცანით რა hash ფუნქცია 480 00:21:26,470 --> 00:21:28,636 იქნება უბრალოდ ეფუძნება ზოგიერთი შემავალი და გამომავალი? 481 00:21:28,636 --> 00:21:31,392 482 00:21:31,392 --> 00:21:33,194 >> აუდიტორია: Letter ნომერი ანბანი. 483 00:21:33,194 --> 00:21:33,860 HANNAH: ზუსტად. 484 00:21:33,860 --> 00:21:36,160 უბრალოდ აყენებს მათ ანბანური თანმიმდევრობით. 485 00:21:36,160 --> 00:21:39,280 ყველაფერი, რაც იწყება შევიდა პირველი bucket. 486 00:21:39,280 --> 00:21:43,340 ყველაფერი B არის ამოქმედებული მეორე bucket, ასე შემდეგ, და ასე შემდეგ. 487 00:21:43,340 --> 00:21:45,620 გასაოცარია, OK. 488 00:21:45,620 --> 00:21:48,980 და ქეშირების ფუნქცია არის ნებისმიერი ფუნქცია, რომელიც იღებს სიტყვა 489 00:21:48,980 --> 00:21:51,910 და გეტყვით, თუ რა bucket იგი ეკუთვნის. 490 00:21:51,910 --> 00:21:55,150 ასე რომ, რომელიც შესვლის ჩვენს array მას ეკუთვნის. 491 00:21:55,150 --> 00:21:58,080 >> ასე რომ ყოველ ჯერზე მე ვაძლევ ჩემს hash ფუნქციონირებს ერთი სიტყვით, 492 00:21:58,080 --> 00:22:00,660 უნდა გითხრათ, მე იგივე განათავსეთ თითოეული დრო. 493 00:22:00,660 --> 00:22:03,270 ასე რომ, თუ ჩვენ ვიყენებთ hash ფუნქცია საწყისი წინა slide 494 00:22:03,270 --> 00:22:05,950 სადაც ჩვენ დახარისხება მიერ პირველი წერილი ანბანი, 495 00:22:05,950 --> 00:22:08,230 ყოველ ჯერზე მე ვაძლევ ჩემს hash ფუნქცია "ვაშლის" 496 00:22:08,230 --> 00:22:10,180 იგი ყოველთვის უნდა მისცეს ჩემს უკან 0. 497 00:22:10,180 --> 00:22:12,890 ასე რომ, თუ მე მაქვს ვაშლი დააყენა ჩემი hash მაგიდა, 498 00:22:12,890 --> 00:22:17,700 თუ მე "ვაშლის" ჩემი hash ფუნქცია, უნდა ვთქვა, რომ წავიდეს დააყენოს ის bucket 0. 499 00:22:17,700 --> 00:22:19,980 თუ ვეძებ apple ჩემი hash მაგიდასთან 500 00:22:19,980 --> 00:22:24,340 და მე ვიტყვი, სად შეიძლება ვაშლის ცოცხალი, თქვენ თქვენს hash ფუნქცია. 501 00:22:24,340 --> 00:22:26,900 და ამბობს, რომ წასვლა bucket 0. 502 00:22:26,900 --> 00:22:29,150 ყველა უფლება? 503 00:22:29,150 --> 00:22:32,660 კითხვები hash ფუნქციები? 504 00:22:32,660 --> 00:22:34,570 გასაოცარია. 505 00:22:34,570 --> 00:22:37,320 >> აქ არის ოდნავ მეტი დეტალური ახსნა 506 00:22:37,320 --> 00:22:39,570 რა hash ფუნქცია შეიძლება გამოიყურებოდეს. 507 00:22:39,570 --> 00:22:42,230 508 00:22:42,230 --> 00:22:42,960 ყველა უფლება. 509 00:22:42,960 --> 00:22:45,960 ახლა, პრობლემა hash ფუნქციები იდეალური მსოფლიოში, 510 00:22:45,960 --> 00:22:48,870 ჩვენ გვინდა მხოლოდ ერთი რამ თითოეულ bucket. 511 00:22:48,870 --> 00:22:50,900 მაგრამ სინამდვილეში, არსებობს არა მხოლოდ ერთი სიტყვა 512 00:22:50,900 --> 00:22:54,280 რომელიც იწყება A. იქ არ არის მხოლოდ ერთი სიტყვა, რომელიც იწყება B. ასე 513 00:22:54,280 --> 00:22:56,960 ამ შემთხვევაში, თუ ჩვენ მოულოდნელად მისაღებად "berry" 514 00:22:56,960 --> 00:22:58,710 და ჩვენ გვინდა ვთქვათ ჩვენი hash მაგიდა, 515 00:22:58,710 --> 00:23:03,640 და ჩვენ ვხედავთ, ო, არა, banana არის უკვე არსებობს, რასაც ჩვენ ვაპირებთ გავაკეთოთ? 516 00:23:03,640 --> 00:23:05,900 >> ასევე, ჩვენ გვაქვს ორი ვარიანტი. 517 00:23:05,900 --> 00:23:07,990 პირველი ვარიანტი ხაზოვანი probing, რომელიც 518 00:23:07,990 --> 00:23:11,100 მხოლოდ იმას ნიშნავს, წასვლა შემდეგი ცარიელი bucket. 519 00:23:11,100 --> 00:23:14,100 წასვლა მომდევნო ცარიელ მასივი ჩანაწერს. 520 00:23:14,100 --> 00:23:15,750 და მხოლოდ დააყენა "berry" არსებობს. 521 00:23:15,750 --> 00:23:18,880 ასე რომ მე ვიცი, ის უნდა წავიდეთ ერთად ბანანის bucket ერთი. 522 00:23:18,880 --> 00:23:22,155 მაგრამ მხოლოდ მისი bucket სამი, იმიტომ, bucket სამი ცარიელია. 523 00:23:22,155 --> 00:23:24,806 524 00:23:24,806 --> 00:23:26,680 კიდევ ერთი ვარიანტი, ალბათ, რას განხორციელება 525 00:23:26,680 --> 00:23:29,220 თქვენს p-set, სადაც თქვენ ჰქონდა ცალკე chaining. 526 00:23:29,220 --> 00:23:33,990 ისე თითოეული თაიგულების, თითოეული თქვენი მასივი ელემენტები, 527 00:23:33,990 --> 00:23:38,410 არა მხოლოდ ფლობს ერთი სიტყვა, მაგრამ რეალურად ფლობს მომცეთ სია სიტყვები. 528 00:23:38,410 --> 00:23:41,880 ასე რომ, თუ თქვენ გქონდათ ბანანის თქვენი hash მაგიდასთან 529 00:23:41,880 --> 00:23:44,740 და თქვენ მოულოდნელად სურდა დაამატოთ berry, არ არის პრობლემა. 530 00:23:44,740 --> 00:23:51,110 უბრალოდ დაამატოთ berry წლის ბოლომდე, ან დასაწყისში, თქვენი უკავშირდება სიაში. 531 00:23:51,110 --> 00:23:54,040 OK, გასაოცარია. 532 00:23:54,040 --> 00:23:58,490 კითხვები hash მაგიდები, სანამ ჩვენ? 533 00:23:58,490 --> 00:23:59,850 >> ყველა უფლება. 534 00:23:59,850 --> 00:24:01,070 ხეები და ლელო. 535 00:24:01,070 --> 00:24:07,980 OK, ასე რომ, ეს იყო კიდევ ერთი ვარიანტი განხორციელების ლექსიკონი. 536 00:24:07,980 --> 00:24:09,100 თქვენ შეეძლო გააკეთა ცდილობენ. 537 00:24:09,100 --> 00:24:13,420 ასე რომ, ეს განსაკუთრებული სახის ხე, რომელიც ისე იქცევა, როგორც მრავალ დონის hash მაგიდასთან. 538 00:24:13,420 --> 00:24:16,862 ასე რომ თქვენ ხედავთ სურათზე სადაც თქვენ უნდა მასივი, 539 00:24:16,862 --> 00:24:19,320 მიუთითებს bunch of კოლექტორები რომ წერტილი bunch of კოლექტორები 540 00:24:19,320 --> 00:24:20,390 რომ წერტილი bunch of მასივები. 541 00:24:20,390 --> 00:24:23,140 და ვნახავთ ზუსტად რა, რომ არ ჰგავს სამომავლო slide. 542 00:24:23,140 --> 00:24:26,070 და საერთოდ, ხე არის მხოლოდ ნებისმიერი მონაცემები სტრუქტურა 543 00:24:26,070 --> 00:24:29,710 რომელშიც მონაცემები ორგანიზებული გარკვეული იერარქია. 544 00:24:29,710 --> 00:24:32,610 ასე რომ, სადაც ჩვენ ვნახეთ, რომ ჩვენ გვაქვს გარკვეული გაგებით 545 00:24:32,610 --> 00:24:36,130 დაბრუნება დონეზე, მომდევნო დონეზე, მომდევნო დონეზე, მომდევნო დონეზე. 546 00:24:36,130 --> 00:24:39,690 ასე რომ, ეს, ალბათ, ყველაზე ნათელი ზოგიერთი კონკრეტული მაგალითები. 547 00:24:39,690 --> 00:24:40,880 ასე რომ აქ ჩვენი ხე. 548 00:24:40,880 --> 00:24:42,970 თქვენ ხედავთ, რომ ეს აქვს კონკრეტული დონეზე 549 00:24:42,970 --> 00:24:45,480 რომ ჩვენ დავიწყებთ რომ ძირეული კვანძის, ერთი. 550 00:24:45,480 --> 00:24:47,640 და ჩვენ შეგვიძლია წავიდეთ ქვემოთ ჩვენი ხე. 551 00:24:47,640 --> 00:24:50,730 552 00:24:50,730 --> 00:24:53,910 >> ორობითი ხე არის კონკრეტული ტიპის ხე. 553 00:24:53,910 --> 00:24:56,770 და ერთადერთი დაზუსტება ორობითი ხე 554 00:24:56,770 --> 00:25:01,130 ის არის, რომ თითოეული კვანძის აქვს ორი საუკეთესო ფოთლები. 555 00:25:01,130 --> 00:25:03,960 ასე რომ თქვენ არ ვაპირებთ, რომ ნებისმიერი ამ კვანძების სამი ან ოთხი 556 00:25:03,960 --> 00:25:06,880 ან რაიმე სხვა ფოთლები. 557 00:25:06,880 --> 00:25:11,310 შემდეგ კი კიდევ უფრო კონკრეტული არის ორობითი ძებნა ხე 558 00:25:11,310 --> 00:25:18,010 სადაც ყველა კვანძის მარცხენა კვანძის აქვს მნიშვნელობა მცირეა. 559 00:25:18,010 --> 00:25:21,180 და ყოველ ღირებულებას, უფლება იქნება დიდი. 560 00:25:21,180 --> 00:25:26,900 ასე რომ, თუ ხედავთ 44 არის ჩვენი root, მარცხნივ, 11, 22, და 33 561 00:25:26,900 --> 00:25:28,940 უფრო დაბალია, ვიდრე ჩვენი root. 562 00:25:28,940 --> 00:25:33,890 და მარჯვენა ყველა ციფრები უფრო დიდი 66, 55 და 77. 563 00:25:33,890 --> 00:25:37,380 და ეს ქონება ეხება ყველა დონეზე ხე. 564 00:25:37,380 --> 00:25:42,690 >> ასე რომ, როდესაც ჩვენ დაცემას 22, 11 და 33, ჯერ კიდევ 11 565 00:25:42,690 --> 00:25:46,950 მცირეა 22 და 33 მეტია, ვიდრე 22. 566 00:25:46,950 --> 00:25:50,160 და ეს ხდის ადვილია მოძებნა რადგან თუ ჩვენ ვეძებთ ნომერი, 567 00:25:50,160 --> 00:25:53,877 ჩვენ ვიცით, კონკრეტულად რომელი ფილიალი დაიცვას ქვემოთ. 568 00:25:53,877 --> 00:25:56,210 ასე რომ, ეს უნდა შეგახსენოთ ცოტა ორობითი ძებნა. 569 00:25:56,210 --> 00:25:56,967 ჰო? 570 00:25:56,967 --> 00:25:58,835 >> აუდიტორია: ასე რომ, როდესაც თქვენ აღწერს ორობითი, 571 00:25:58,835 --> 00:26:00,587 თქვენ თქვით, რომ მას აქვს ორი საუკეთესო ფოთლები? 572 00:26:00,587 --> 00:26:01,170 HANNAH: Mm-hm. 573 00:26:01,170 --> 00:26:02,580 აუდიტორია: იქნებ ეს უნდა ნაკლებად? 574 00:26:02,580 --> 00:26:03,121 HANNAH: ჰო. 575 00:26:03,121 --> 00:26:06,720 ასე ვთქვათ, მაგალითად, თქვენ არ აქვს კი რაოდენობის ნივთები 576 00:26:06,720 --> 00:26:11,791 და თქვენ ვერ შეავსოთ თქვენი ფოთლები, ეს ჯარიმა, თუ ერთი. 577 00:26:11,791 --> 00:26:12,290 OK? 578 00:26:12,290 --> 00:26:12,789 გასაოცარია. 579 00:26:12,789 --> 00:26:15,930 ნებისმიერი სხვა კითხვები ხეები? 580 00:26:15,930 --> 00:26:16,670 OK. 581 00:26:16,670 --> 00:26:20,110 >> უკან ჩვენი ცდილობს რაც მე საუბარი შესახებ ცოტა უფრო ადრე, 582 00:26:20,110 --> 00:26:23,900 როგორ გვაქვს ამ მრავალ დონის მასივები. 583 00:26:23,900 --> 00:26:26,280 ასე რომ, ამ შემთხვევაში, ჩვენ დავიწყოთ ზედა. 584 00:26:26,280 --> 00:26:29,030 და ჩვენ შეგიძლიათ მიყევით ნებისმიერი მოცემული სიტყვა ქვემოთ. 585 00:26:29,030 --> 00:26:30,780 ასე ვთქვათ გვინდოდა უნდა ვეძებოთ Turing. 586 00:26:30,780 --> 00:26:34,380 ჩვენ ვიწყებთ T, დაიცვას იგი ქვემოთ მასივი, რომელიც შეიცავს U, 587 00:26:34,380 --> 00:26:37,350 და დაიცვას იგი ქვემოთ სანამ ჩვენ მიღწევა ამ პატარა delta რომელიც 588 00:26:37,350 --> 00:26:39,060 გვეუბნება, დიახ, თქვენ ი სიტყვა. 589 00:26:39,060 --> 00:26:43,200 590 00:26:43,200 --> 00:26:44,120 ნათელი on ლელო? 591 00:26:44,120 --> 00:26:48,138 არაფერი წასვლა იქ? 592 00:26:48,138 --> 00:26:48,908 დიახ? 593 00:26:48,908 --> 00:26:51,866 აუდიტორია: არა სიმბოლო delta უნდა ეკავოს სივრცის ფარგლებში ლელო? 594 00:26:51,866 --> 00:26:54,532 HANNAH: ჰო, ასე რომ არ აუცილებლად კი უნდა იყოს delta. 595 00:26:54,532 --> 00:26:57,760 მაგრამ ჩვენ გვჭირდება გარკვეული გზა ვუთხრა ჩვენს კომპიუტერში უკაცრავად, 596 00:26:57,760 --> 00:27:01,130 ასე, რომ ჩვენ ვიცით, რომ TUR არ არის სიტყვა. 597 00:27:01,130 --> 00:27:04,180 იმის გამო, რომ ვთქვათ, ჩვენ არ გვაქვს ეს კონცეფცია დელტა, ეს კონცეფცია 598 00:27:04,180 --> 00:27:09,850 გილოცავთ, თქვენ ი სიტყვა, ის გავლა და iterate T-U-R, 599 00:27:09,850 --> 00:27:11,300 და მერე ამბობენ, რა, მე ვერ! 600 00:27:11,300 --> 00:27:12,670 ეს უნდა იყოს სიტყვა. 601 00:27:12,670 --> 00:27:13,720 მაგრამ ეს ნამდვილად არ არის. 602 00:27:13,720 --> 00:27:15,310 ჩვენ გვინდა მთელი Turing იყოს სიტყვა. 603 00:27:15,310 --> 00:27:17,760 ასე უნდა გვქონდეს რაღაც ბოლოს, რომელიც ამბობს, რომ, გილოცავთ, 604 00:27:17,760 --> 00:27:19,051 თქვენ ი ლეგიტიმური სიტყვა. 605 00:27:19,051 --> 00:27:21,680 აუდიტორია: ასე რომ, თუ ჰქონდა, როგორიც 26 ასო ანბანი, 606 00:27:21,680 --> 00:27:24,560 რომ თქვენ ნამდვილად აქვს 27 keys თქვენს ლელო? 607 00:27:24,560 --> 00:27:26,010 >> HANNAH: Awesome, yeah. 608 00:27:26,010 --> 00:27:28,210 ასე რომ, რეალურად, მე ვფიქრობ, რომ იქნება შემდეგი slide. 609 00:27:28,210 --> 00:27:29,440 Ta-da! 610 00:27:29,440 --> 00:27:32,880 სადაც, თუ თქვენ გაქვთ კვანძის თქვენს ლელო, თქვენ 611 00:27:32,880 --> 00:27:35,800 აპირებს აქვს 27 ბავშვები არა 26. 612 00:27:35,800 --> 00:27:39,010 613 00:27:39,010 --> 00:27:40,050 რაიმე შეკითხვები, რომ? 614 00:27:40,050 --> 00:27:40,550 ჰო? 615 00:27:40,550 --> 00:27:44,569 აუდიტორია: რატომ ცდილობს გააშუქოს ასე ბევრი სივრცე [INAUDIBLE], როგორც თქვენ წავიდეთ? 616 00:27:44,569 --> 00:27:47,629 რატომ არის იგი ითვლება [INAUDIBLE]? 617 00:27:47,629 --> 00:27:48,170 HANNAH: რა თქმა უნდა. 618 00:27:48,170 --> 00:27:48,790 მოდით დავუბრუნდეთ. 619 00:27:48,790 --> 00:27:52,350 კითხვაზე, თუ რატომ არიან ლელო იმდენად დიდი 620 00:27:52,350 --> 00:27:54,620 ვიდრე რაღაც hash მაგიდასთან. 621 00:27:54,620 --> 00:27:57,790 ასე რომ, თითოეული ამ დონეზე, მაშინაც კი, თუ ისინი არ შედგენილი აქ, 622 00:27:57,790 --> 00:28:01,250 თქვენ უნდა ყველა 26 სიმბოლო. 623 00:28:01,250 --> 00:28:04,420 და მიზეზი, რომ თქვენ ვერ თქვათ, მაგრამ ისევე, როგორც Turing, I 624 00:28:04,420 --> 00:28:07,570 არ უნდა გვაქვს იმ იგივე რამ დონეზე U. ისე, 625 00:28:07,570 --> 00:28:11,390 თუ მოულოდნელად უნდოდა დამატება რაღაც რომ იყო T-H, 626 00:28:11,390 --> 00:28:14,800 ნეტავ უნდა ჰქონდეს შესაძლებლობების და დასძინა, რომ სიტყვა. 627 00:28:14,800 --> 00:28:17,330 ასე რომ, ყოველ ერთი წერილი, თქვენ ვაპირებთ აქვს 628 00:28:17,330 --> 00:28:19,730 აქვს bunch of კოლექტორები მოდის off მას. 629 00:28:19,730 --> 00:28:24,060 ასე რომ თქვენ ხედავთ, როგორ მინდა მისაღებად მართლაც დიდი, მართლაც სწრაფი. 630 00:28:24,060 --> 00:28:26,560 ნებისმიერი სხვა კითხვები? 631 00:28:26,560 --> 00:28:28,980 ყველა უფლება. 632 00:28:28,980 --> 00:28:29,832 ჰო? 633 00:28:29,832 --> 00:28:33,210 >> აუდიტორია: როცა არიან ლელო უფრო სწრაფად, ვიდრე hash მაგიდები? 634 00:28:33,210 --> 00:28:36,280 >> HANNAH: როდის ლელო უფრო სწრაფად, ვიდრე hash მაგიდები? 635 00:28:36,280 --> 00:28:39,120 ასე რომ, თუ თქვენ მართლაც ცუდი hash ფუნქცია. 636 00:28:39,120 --> 00:28:41,840 ასე ვთქვათ, მე კი, როგორიცაა, აქ არის თქვენი hash ფუნქცია. 637 00:28:41,840 --> 00:28:43,660 არ აქვს მნიშვნელობა რა სიტყვა მომეცი, მე ყოველთვის 638 00:28:43,660 --> 00:28:47,740 აპირებს დააყენოს ის მასივი შესვლის 0. 639 00:28:47,740 --> 00:28:52,000 ასე რომ, ჩვენ დასრულდება up ერთად მხოლოდ აყენებს ყველაფერი ერთი დიდი ხნის უკავშირდება სიაში. 640 00:28:52,000 --> 00:28:58,740 და ასე lookup დრო დასჭირდება უარეს n თუ ეს ძალიან ბოლომდე ჩვენს სიაში. 641 00:28:58,740 --> 00:29:03,150 ერთად ცდილობენ, ჩვენ უბრალოდ უნდა iterate მეშვეობით წერილები სიტყვა. 642 00:29:03,150 --> 00:29:07,080 ისე კი, თუ ჩვენ დასძინა რამოდენიმე მეტი სიტყვა ჩვენი ლელო, 643 00:29:07,080 --> 00:29:09,620 ის არ მიიღებს us აღარ რათა იპოვოს კონკრეტული სიტყვა. 644 00:29:09,620 --> 00:29:11,750 >> ყველა ჩვენ უნდა გავაკეთოთ არის, მაგალითად, ამ შემთხვევაში, 645 00:29:11,750 --> 00:29:17,170 ვთქვათ, ჩვენ ვეძებთ zoom, ჩვენ უბრალოდ უნდა iterate 646 00:29:17,170 --> 00:29:19,840 Z-O-O-M, ოთხი ასო. 647 00:29:19,840 --> 00:29:22,250 ასე რომ, ეს მხოლოდ ხანგრძლივობა სიტყვა zoom. 648 00:29:22,250 --> 00:29:25,400 არ აქვს მნიშვნელობა, რამდენი მეტი სიტყვა ჩვენ დააყენა ამ ცდილობენ. 649 00:29:25,400 --> 00:29:30,225 ჩვენ ყოველთვის შეგიძლიათ მიიღოთ ეს იმ ოთხი ნაბიჯები. 650 00:29:30,225 --> 00:29:31,215 გასაოცარია. 651 00:29:31,215 --> 00:29:32,205 დიახ? 652 00:29:32,205 --> 00:29:34,185 >> აუდიტორია: ასე რომ [INAUDIBLE] მასივი, არა? 653 00:29:34,185 --> 00:29:35,322 >> HANNAH: Mm-hm. 654 00:29:35,322 --> 00:29:37,155 აუდიტორია: თუ თქვენ ეძებს [INAUDIBLE], 655 00:29:37,155 --> 00:29:40,929 რომ თქვენ უნდა გაიაროს თქვენი მასივი იპოვონ [INAUDIBLE]? 656 00:29:40,929 --> 00:29:41,470 HANNAH: რა თქმა უნდა. 657 00:29:41,470 --> 00:29:44,000 აუდიტორია: არ, რომ მეტი დრო? 658 00:29:44,000 --> 00:29:46,370 HANNAH: თუ მე ვაპირებ ამბობენ, რომ ჩემი მასივი ყოველთვის 659 00:29:46,370 --> 00:29:49,250 იქნება A, B, C, D, E, F, G, blah blah blah, 660 00:29:49,250 --> 00:29:51,630 ასე რომ, თუ მე ყოველთვის ვიცი, რომ ეს იმავე ზუსტი მიზნით, 661 00:29:51,630 --> 00:29:53,880 თუ მე ყოველთვის ვიცი, რომ ეს ანბანური თანმიმდევრობით, 662 00:29:53,880 --> 00:29:57,860 მე შემიძლია მხოლოდ ვთქვა, O არის ნომერი ასე და ასე ანბანი. 663 00:29:57,860 --> 00:29:59,620 უბრალოდ გადადით ამ ადგილას. 664 00:29:59,620 --> 00:30:01,860 იმიტომ, რომ მახსოვს, მასივები, ჩვენ შეუძლია 665 00:30:01,860 --> 00:30:06,590 ნებისმიერი ელემენტი, რომ მასივი მუდმივ დროს, თუ ჩვენ ვიცით, სადაც ჩვენ ვეძებთ. 666 00:30:06,590 --> 00:30:09,080 667 00:30:09,080 --> 00:30:09,580 ჰო? 668 00:30:09,580 --> 00:30:12,005 >> აუდიტორია: წინა ლღობას [INAUDIBLE] 27 669 00:30:12,005 --> 00:30:14,430 მაგრამ 26 პირველი. 670 00:30:14,430 --> 00:30:15,400 >> HANNAH: ბოდიში? 671 00:30:15,400 --> 00:30:18,800 >> აუდიტორია: პირველი არ არის ერთი 0, ასე რომ არ იყოს, 26? 672 00:30:18,800 --> 00:30:24,900 >> HANNAH: რა თქმა უნდა, ასე რომ, როდესაც ჩვენ ვამბობთ, 27, რომ აპირებს მოგვცეს მაჩვენებლების 0 მეშვეობით 26. 673 00:30:24,900 --> 00:30:28,220 მაგრამ თუ თქვენ ნამდვილად ითვლიან იმ გარეთ, ეს იქნება 27. 674 00:30:28,220 --> 00:30:30,007 კარგი კითხვაა. 675 00:30:30,007 --> 00:30:30,590 არაფერი? 676 00:30:30,590 --> 00:30:31,200 ჰო? 677 00:30:31,200 --> 00:30:34,420 >> აუდიტორია: ასე რომ, ლელო ნელა, ვიდრე hash მაგიდები? 678 00:30:34,420 --> 00:30:37,920 >> HANNAH: ლელო ვაპირებთ იყოს, თეორიულად, ვიდრე hash მაგიდები 679 00:30:37,920 --> 00:30:39,760 მაგრამ დასჭირდეს მეტი მეხსიერება. 680 00:30:39,760 --> 00:30:40,534 ჰო? 681 00:30:40,534 --> 00:30:41,450 აუდიტორია: [INAUDIBLE]? 682 00:30:41,450 --> 00:30:45,770 683 00:30:45,770 --> 00:30:47,484 >> HANNAH: მე ბოდიში, მე არ მესმის თქვენ. 684 00:30:47,484 --> 00:30:48,400 აუდიტორია: [INAUDIBLE]. 685 00:30:48,400 --> 00:30:51,250 686 00:30:51,250 --> 00:30:54,100 0 დან 25 გაძლევთ 26. 687 00:30:54,100 --> 00:30:56,958 >> HANNAH: 0-დან 25 რომ გაძლევთ 26, მარჯვნივ. 688 00:30:56,958 --> 00:30:58,457 >> აუდიტორია: და მერე [INAUDIBLE]. 689 00:30:58,457 --> 00:30:59,040 HANNAH: Right. 690 00:30:59,040 --> 00:31:04,760 ასე რაოდენობის ჩვენ მითითებით არის ხმების რამ ჩვენს მასივი. 691 00:31:04,760 --> 00:31:07,260 ასე რომ, თუ ჩვენ გვაქვს 27, ის აპირებს მოგვცეს 0 692 00:31:07,260 --> 00:31:10,620 მეშვეობით 26, რომელიც მისცემს ჩვენს ოთახში, ამ შემთხვევაში, 693 00:31:10,620 --> 00:31:12,770 მე არ ჩათვლით აპოსტროფი. 694 00:31:12,770 --> 00:31:17,040 ასე რომ, ჩვენ ვიღებთ 0 მეშვეობით 25 პირველი 26 ასო ანბანი, 695 00:31:17,040 --> 00:31:18,990 ან 26 ასო ანბანი. 696 00:31:18,990 --> 00:31:21,190 და შემდეგ რომ ბოლო რამ, ჩანაწერში არის 26 წლის 697 00:31:21,190 --> 00:31:24,598 იქნება გამშვები ნიშნის, ან delta. 698 00:31:24,598 --> 00:31:26,960 არაფერი? 699 00:31:26,960 --> 00:31:29,130 გასაოცარია. 700 00:31:29,130 --> 00:31:30,020 დავკარგე სივრცეში. 701 00:31:30,020 --> 00:31:31,020 OK, მაგარი. 702 00:31:31,020 --> 00:31:33,240 >> ასე რომ, ჩვენ უკვე შეეხო ამ. 703 00:31:33,240 --> 00:31:37,430 მაგრამ დიდი სავაჭრო off შორის ლელო და hash მაგიდები 704 00:31:37,430 --> 00:31:39,720 ის არის, რომ ცდილობს უზრუნველყოფს, თეორიულად, მუდმივი ეძებოთ 705 00:31:39,720 --> 00:31:42,890 ჯერ, მაგრამ გამოიყენოს მთელი მეხსიერების დიდ ნაწილს. 706 00:31:42,890 --> 00:31:46,495 ყველა უფლება, ახლა ჩვენ გვაქვს ოდნავ ნაკლებია რთული სტრუქტურები, 707 00:31:46,495 --> 00:31:49,640 და ჩვენ უნდა გაკეთდეს C, და ჩვენ გადაადგილება უფლება გასწვრივ. 708 00:31:49,640 --> 00:31:51,930 >> ასე stacks, ჩვენ ვნახეთ ეს ლექცია, სადაც თქვენ 709 00:31:51,930 --> 00:31:55,020 აქვს რაღაც დასტის ქაღალდის, სადაც 710 00:31:55,020 --> 00:31:57,330 ბოლო რამ დააყენა დასტის აპირებს 711 00:31:57,330 --> 00:31:59,500 უნდა იყოს პირველი, რაც თქვენ მიიღოს off. 712 00:31:59,500 --> 00:32:02,880 ასე რომ, ეს რა განსაზღვრავს დასტის ის არის, რომ ბოლო რამ დააყენა 713 00:32:02,880 --> 00:32:06,080 იქნება პირველი რამ თქვენ მიიღოს off. 714 00:32:06,080 --> 00:32:09,279 და ტერმინოლოგიის, რომ ჩვენ ვიყენებთ თუ ჩვენ ვაპირებთ, რომ რაღაც, 715 00:32:09,279 --> 00:32:12,070 თუ ჩვენ ვაპირებთ, რომ დაამატოთ რამე ჩვენი დასტის, ჩვენ მოვუწოდებთ, რომ უბიძგებს. 716 00:32:12,070 --> 00:32:14,970 და თუ ჩვენ რაღაც off, ჩვენ მას popping. 717 00:32:14,970 --> 00:32:17,080 და თუ ჩვენ ვაპირებთ განახორციელონ დასტის, ჩვენ 718 00:32:17,080 --> 00:32:20,660 უნდა იყოს დარწმუნებული, რომ ტრეკზე ორივე ზომა და მოცულობა. 719 00:32:20,660 --> 00:32:24,940 ასე რომ საერთო რაოდენობის ელემენტები ჩვენ შეგვიძლია გამართავს და მიმდინარე რაოდენობის ელემენტები 720 00:32:24,940 --> 00:32:27,880 რომ ჩვენ ვაწარმოებთ. 721 00:32:27,880 --> 00:32:29,885 >> და ძალიან ანალოგიურად, ჩვენ გვაქვს რიგები. 722 00:32:29,885 --> 00:32:34,510 და ერთადერთი განსხვავება ნაცვლად ერთად stacks, 723 00:32:34,510 --> 00:32:37,630 ჩვენ ვთქვით, ბოლო რაც ჩვენ დააყენა პირველი, რაც ჩვენ გამეხადა. 724 00:32:37,630 --> 00:32:40,940 ასე რიგები, პირველი, რაც ჩვენ დააყენა 725 00:32:40,940 --> 00:32:43,129 იქნება პირველი, რაც ჩვენ აიღოს. 726 00:32:43,129 --> 00:32:45,420 ასე რომ, ეს, როგორიცაა, თუ თქვენ რეალურად უგულებელყოფა მდე მაღაზიაში 727 00:32:45,420 --> 00:32:48,140 და თქვენ მიმდინარეობს დაეხმარა, მაშინ პირველი პირი ხაზი 728 00:32:48,140 --> 00:32:50,880 უნდა იყოს პირველი, ვინც დაეხმარა. 729 00:32:50,880 --> 00:32:52,220 ისე, რომ იქნება მდგომ. 730 00:32:52,220 --> 00:32:55,880 >> ასე რომ, ჩვენ უნდა შევინარჩუნოთ სიმღერა ზომა, მოცულობა, და ხელმძღვანელი რადგან ჩვენ 731 00:32:55,880 --> 00:33:01,130 აპირებს ყველას off წინა სიის ნაცვლად უკან. 732 00:33:01,130 --> 00:33:03,480 კითხვები რომ? 733 00:33:03,480 --> 00:33:06,330 ნებისმიერი C კითხვებს, რაც აწუხებდა თქვენ? 734 00:33:06,330 --> 00:33:09,590 მონაცემთა სტრუქტურები, რომელიმე რომ fun stuff? 735 00:33:09,590 --> 00:33:10,530 ყველა უფლება, ზემოთ. 736 00:33:10,530 --> 00:33:14,120 ასე რომ მე გადასცემს Alison to ხტომა შევიდა კიდევ რამდენიმე პროგრამირების. 737 00:33:14,120 --> 00:33:15,965 >> ALISON: Oh, ჩვენ დავინახავთ. 738 00:33:15,965 --> 00:33:17,370 ჩვენ დავინახავთ, თუ რამდენად კარგად გავაკეთო აქ. 739 00:33:17,370 --> 00:33:21,410 OK, მე ვაპირებ ცდილობენ და ფრენა ამ პერსონალის, ბიჭები. 740 00:33:21,410 --> 00:33:24,540 Hannah წავიდა ძალიან in სიღრმე ყველა მისი რამ. 741 00:33:24,540 --> 00:33:26,900 მე ვაპირებ ცდილობენ, რათა თქვენ სწრაფი აფეთქების მიმოხილვა 742 00:33:26,900 --> 00:33:31,290 ასე რომ ჩვენ შეგვიძლია მივიღოთ Davin ყველა გართობა JavaScript და უსაფრთხოების საკითხებზე, 743 00:33:31,290 --> 00:33:33,380 რომ იქნებ რეალურად გვინდა მოვისმინოთ მეტი. 744 00:33:33,380 --> 00:33:36,600 >> OK, როგორც Hannah თქმით, თუ თქვენ გაქვთ რაიმე შეკითხვები, 745 00:33:36,600 --> 00:33:39,170 მე ვაპირებ ძალიან სწრაფი, გთხოვთ, ნება მომეცით ვიცი. 746 00:33:39,170 --> 00:33:42,114 მე უპასუხოს კითხვებს, როგორც საჭიროა. 747 00:33:42,114 --> 00:33:45,280 ასე უნდა დაიწყოს, ჩვენ ვაპირებთ, რომ დაიწყოს ალბათ ერთ-ერთი პირველი რამ 748 00:33:45,280 --> 00:33:48,730 თქვენ ისწავლა ვებ პროგრამირების, ნებართვები. 749 00:33:48,730 --> 00:33:52,720 ასე chmod, თქვენ ბიჭები უნდა უკვე ოსტატები ამ ყველა ვებ 750 00:33:52,720 --> 00:33:54,870 პროგრამირების, რომ თქვენ აკეთებდა ბოლო პერიოდში. 751 00:33:54,870 --> 00:33:57,320 ეს, ძირითადად, მხოლოდ ბრძანება რომელიც ცვლის ნებართვები 752 00:33:57,320 --> 00:34:00,779 ან წვდომის უფლებები ჩვენი ფაილური სისტემის ობიექტების. 753 00:34:00,779 --> 00:34:02,570 რა თქმა უნდა, რეალურად ვხედავ ამ, თუ თქვენ 754 00:34:02,570 --> 00:34:04,910 რაიმე პრობლემები ამ დროს თქვენი პრობლემა კომპლექტი, 755 00:34:04,910 --> 00:34:11,460 თქვენ შეიძლება არ გამოიყენება ls-l, რომელიც დიდი ხნის განმავლობაში, მისაღებად კალენდარი სახის როგორც ეს, 756 00:34:11,460 --> 00:34:14,209 სადაც თქვენ რეალურად ვხედავ ყველა ნებართვების ფაილი. 757 00:34:14,209 --> 00:34:16,850 758 00:34:16,850 --> 00:34:20,732 >> და მართლაც, ჩვენ უბრალოდ აპირებს მეშვეობით საკმაოდ სწრაფად მხოლოდ საკმაოდ 759 00:34:20,732 --> 00:34:21,940 ბევრი რა თითოეული ეს ნიშნავს. 760 00:34:21,940 --> 00:34:24,481 ასე რომ, ჩვენ არ მინდა სწორედ აქ, რომელიც უბრალოდ დგას დირექტორია. 761 00:34:24,481 --> 00:34:26,790 762 00:34:26,790 --> 00:34:31,739 ცხადია, აქ, ჩვენ ვხედავთ, rwx, რომელიც იკითხება, ჩაწერა და გაშვება. 763 00:34:31,739 --> 00:34:37,090 ეს შეიძლება წარმოდგენილია როგორც ბიტი, რომელიც ჩვენ შეღწევას მომდევნო გვერდზე. 764 00:34:37,090 --> 00:34:40,699 ასე რომ, ყოველ triad, რომ ჩვენ ვნახეთ აქ, ასე რომ ეს სამი triads. 765 00:34:40,699 --> 00:34:48,120 ჩვენ rwx, r არაფერი x და r არაფერი x ამ პირველი ფაილი. 766 00:34:48,120 --> 00:34:49,690 ეს ამ ზოგადი სტრუქტურა. 767 00:34:49,690 --> 00:34:50,940 >> ასე რომ, ჩვენ გვაქვს დირექტორია. 768 00:34:50,940 --> 00:34:53,999 ჩვენ გვაქვს გარკვეული ჯგუფი ამ უფლებები. 769 00:34:53,999 --> 00:34:57,040 ზოგიერთი ჯგუფი, რომელიც აქვს ეს უფლებები, და მსოფლიოს, რომ აქვს ნებართვა. 770 00:34:57,040 --> 00:34:59,420 თქვენ შეგიძლიათ ვფიქრობ, ეს როგორც triad. 771 00:34:59,420 --> 00:35:01,130 თქვენ შეგიძლიათ ვფიქრობ, ეს როგორც სამი ბიტი. 772 00:35:01,130 --> 00:35:04,060 ასე რომ მათ შეუძლიათ გამართავს ღირებულებები ყველგან 0- 773 00:35:04,060 --> 00:35:07,350 7, რის გამოც ზოგჯერ ჩვენ გვქონდა, რომ თქვენ ამის chmod 774 00:35:07,350 --> 00:35:17,510 600 ნაცვლად chmod rw რასაც. 775 00:35:17,510 --> 00:35:19,170 ჩვენ შეღწევას მაგალითად. 776 00:35:19,170 --> 00:35:24,260 მაგრამ, ძირითადად, შეგიძლიათ წარმოიდგინოთ, ეს როგორც ან უბრალოდ rwx, 777 00:35:24,260 --> 00:35:28,520 ან შეგიძლიათ ვფიქრობ, რომ მათ გარკვეული ნომერი, სადაც ეს პირველი აქ 778 00:35:28,520 --> 00:35:31,480 წარმოადგენს დან 0 და 7, მეორე 779 00:35:31,480 --> 00:35:33,970 წარმოადგენს დან 0 7, ხოლო მესამე 780 00:35:33,970 --> 00:35:38,245 წარმოადგენს რიცხვი 0 და 7, OK? 781 00:35:38,245 --> 00:35:42,700 >> r აქვს მნიშვნელობა 4. w აქვს მნიშვნელობა 2, და x 782 00:35:42,700 --> 00:35:49,230 აქვს მნიშვნელობა 1, რის გამოც ეს ნებართვა აქ იქნება chmod 700. 783 00:35:49,230 --> 00:35:53,520 რადგან ამ შემთხვევაში აქ, იგი ამბობს, რომ ჩვენ არ პირველად ცოტა იქ სავალი შესახებ. 784 00:35:53,520 --> 00:35:55,380 ამიტომ ჩვენ გვაქვს 4 წაკითხული. 785 00:35:55,380 --> 00:35:58,730 მეორე ცოტა სავალი on for w, რომელიც 2, ახლა ჩვენ 6. 786 00:35:58,730 --> 00:36:02,070 და მესამე ცოტა სავალი on x, რომელიც 1, ამიტომ ჩვენ კიდევ შვიდი. 787 00:36:02,070 --> 00:36:04,820 და რა თქმა უნდა, ჩვენი ჯგუფი და ჩვენი სამყაროს თითოეული 0. 788 00:36:04,820 --> 00:36:07,770 ასე რომ, ეს არის ასევე ექვივალენტი chmod 700. 789 00:36:07,770 --> 00:36:12,081 და მე აუცილებლად ცდილობენ მესმის რუკების შორის იმ. 790 00:36:12,081 --> 00:36:14,080 მე არ ვარ დარწმუნებული, თუ მას ამუშავება ვიქტორინა ადრე, 791 00:36:14,080 --> 00:36:18,590 მაგრამ ეს იქნება კითხვა, რომელიც მე შეიძლება ვთხოვოთ. 792 00:36:18,590 --> 00:36:22,110 >> უბრალოდ ცოტა აპირებს კი შემდგომი chmod აქ, აქ 793 00:36:22,110 --> 00:36:27,730 არის ძალიან ზოგადი სტრუქტურა chmod ზარი. 794 00:36:27,730 --> 00:36:29,500 ასე რომ, რა თქმა უნდა, ჩვენ არ chmod აქ. 795 00:36:29,500 --> 00:36:34,410 მითითება, თუ რა ეს შეეხება არის რომლებიც ჩვენ ვაძლევთ ამ ნებართვას 796 00:36:34,410 --> 00:36:36,570 ან რომლებიც ჩვენ აღების ამ ნებართვების დაშორებით. 797 00:36:36,570 --> 00:36:44,330 ამიტომ ჩვენ გვაქვს აქ უფლებები, როგორიცაა ჩვენ მოცემული chmod პლუს x, 798 00:36:44,330 --> 00:36:45,440 როგორც ვნახავთ მალე. 799 00:36:45,440 --> 00:36:48,460 მხოლოდ იმას ნიშნავს, რომ მისცეს ამ კონკრეტული ნებართვების ყველას. 800 00:36:48,460 --> 00:36:49,600 მისცეს მათ ყველა. 801 00:36:49,600 --> 00:36:55,370 ასე რომ თქვენ შეიძლება ძალიან კარგად აქვს u + x ან გ plus x ან o plus x ან მრავალჯერადი 802 00:36:55,370 --> 00:36:55,870 მისი. 803 00:36:55,870 --> 00:36:59,280 ასე რომ, პირველი ნაწილი ყოველთვის იქნება ცნობას. 804 00:36:59,280 --> 00:37:03,220 ვინ ვართ ჩვენ ვაძლევთ ამ ნებართვას, ან რომლებიც ჩვენ არ წაერთმიათ ისინი? 805 00:37:03,220 --> 00:37:04,850 >> მეორე ოპერატორი. 806 00:37:04,850 --> 00:37:07,350 ასე რომ თქვენ ბიჭები ძირითადად შეეხო plus. 807 00:37:07,350 --> 00:37:12,140 ეს აძლევს უფლებები ვინც თქვენ მათთვის, 808 00:37:12,140 --> 00:37:14,840 ხოლო მინუს, ლოგიკურად, შლის მათ. 809 00:37:14,840 --> 00:37:16,880 ასე რომ არაფერი ძალიან საშინელი იყო. 810 00:37:16,880 --> 00:37:23,060 და შემდეგ რეჟიმები არის ის, რაც ჩვენ ვისაუბრეთ ერთად კითხვის, წერის, ან შესრულებაში. 811 00:37:23,060 --> 00:37:29,070 ასე პლუს x ნიშნავს მისცეს შემსრულებელი ნებართვების ყველას. 812 00:37:29,070 --> 00:37:33,430 და მაშინ, რა თქმა უნდა, რომელიც კონკრეტული ფაილი ან დირექტორია. 813 00:37:33,430 --> 00:37:33,980 OK? 814 00:37:33,980 --> 00:37:36,010 ყველას კარგი chmod? 815 00:37:36,010 --> 00:37:37,850 არ არის ძალიან ცუდი? 816 00:37:37,850 --> 00:37:42,417 >> OK, ასე რომ HTML, რომელიმე ხართ ძველი საკმარისი, რომელთა მიზანია: MySpace ასაკი? 817 00:37:42,417 --> 00:37:44,750 მე გაგზავნილი ამ ჩემს განყოფილებიანი, და ფაქტიურად ნახევარი ხალხი 818 00:37:44,750 --> 00:37:45,790 შემომხედა, როგორიც მე ვიყავი გიჟები. 819 00:37:45,790 --> 00:37:47,498 მე კი, როგორიცაა, ბიჭები, ჩვენ არა ვართ, რომ ძველი. 820 00:37:47,498 --> 00:37:48,910 მოდის. 821 00:37:48,910 --> 00:37:53,360 ასე HyperText Markup Language, ეს პატიოსნად მხოლოდ გზა, რომ თქვენ 822 00:37:53,360 --> 00:37:57,990 არაა გარკვეული რამ ინტერნეტში. 823 00:37:57,990 --> 00:37:59,210 ასე რომ, ეს მარკირებას ენა. 824 00:37:59,210 --> 00:38:00,640 ეს არ არის სკრიფტინგის ენა. 825 00:38:00,640 --> 00:38:02,160 არ არსებობს ლოგიკა მას. 826 00:38:02,160 --> 00:38:05,710 ეს არის უბრალოდ შეცვალოს გზა რაღაც არის ნაჩვენები. 827 00:38:05,710 --> 00:38:07,670 OK, ასე რომ, ეს არის მნიშვნელოვანი განსხვავება მიიღოს. 828 00:38:07,670 --> 00:38:12,030 ეს ითვლება მარკირებას ენაზე არ არის სკრიფტინგის ენა. 829 00:38:12,030 --> 00:38:15,100 >> ასე რომ, აქ ჩვენ გვაქვს ჩვენი HTML tags. 830 00:38:15,100 --> 00:38:20,390 ამ slide, ალბათ, ყველაზე პირობა, რომ თქვენ უნდა იყოს იცნობს 831 00:38:20,390 --> 00:38:22,390 და მართლაც კომფორტულად. 832 00:38:22,390 --> 00:38:25,700 ამიტომ ცხადია, რომ ჩვენ გვაქვს ჩვენი HTML tag, რომელიც 833 00:38:25,700 --> 00:38:29,930 ნიშნავს, რომ ყველაფერი ამ ორ იქნება HTML. 834 00:38:29,930 --> 00:38:33,070 ჩვენ გვაქვს გარკვეული კავშირი, რომელიც აშკარად მოგცემთ 835 00:38:33,070 --> 00:38:34,990 ბმული გარე ვებ გვერდზე. 836 00:38:34,990 --> 00:38:37,520 ზოგიერთი სათაური, ჩვენს ხელმძღვანელი აქ. 837 00:38:37,520 --> 00:38:40,020 და ჩვენ გვაქვს ჩვენი სხეულის h1, რომელიც არის header, 838 00:38:40,020 --> 00:38:42,260 ასე რომ ყველაფერს, რათა ის ლამაზი და თამამი და დიდია. 839 00:38:42,260 --> 00:38:46,040 და შემდეგ, ჩვენ გვაქვს p, რომელიც არის პარაგრაფი. 840 00:38:46,040 --> 00:38:49,000 თქვენ ალბათ იცით, და იყოს იცნობს რამ 841 00:38:49,000 --> 00:38:54,030 როგორიცაა, თუ როგორ ჩასვათ გამოსახულება, რომლებიც არსებობს რაიმე სხვა header კლასი? 842 00:38:54,030 --> 00:38:57,240 მე აუცილებლად იქნება კომფორტული div. 843 00:38:57,240 --> 00:39:00,840 ასე რომ, ეს უმრავლესობას tags რომ თქვენ უნდა იყოს იცნობს. 844 00:39:00,840 --> 00:39:04,370 მაგრამ, რა თქმა უნდა, როგორც ყველაფერს CS 50, სია არ არის ამომწურავი. 845 00:39:04,370 --> 00:39:08,200 ასე რომ დარწმუნდით ფუნჯი up on რომ. 846 00:39:08,200 --> 00:39:13,260 >> CSS, ასე რომ CSS, თუ რომელიმე თქვენგანი უყურებს ჩემი სემინარი ორი კვირის წინ, 847 00:39:13,260 --> 00:39:16,250 მართლაც მხოლოდ გზა სტილი თქვენი ვებ გვერდი? 848 00:39:16,250 --> 00:39:18,950 OK, ასე რომ, ჩვენ გვაქვს გარკვეული მარკირებას ენაზე. 849 00:39:18,950 --> 00:39:23,220 HTML, რომელიც ზრუნავს მხოლოდ ტექსტი და სადაც არ უნდა იყოს ის გვერდზე. 850 00:39:23,220 --> 00:39:25,760 მაგრამ CSS მართლაც რა ხდის საკმაოდ. 851 00:39:25,760 --> 00:39:30,690 თქვენ შეიძლება ეს თქვენს HTML ფაილი, მაგრამ, როგორც ჩვენ ვსაუბრობთ შემდეგ, 852 00:39:30,690 --> 00:39:32,660 მე დარწმუნებული ვარ, რომ შესაძლოა იყოს შემდეგი slide, ის 853 00:39:32,660 --> 00:39:35,620 ჩვეულებრივი პრაქტიკაა, და რეალურად პრაქტიკაში, რომ ჩვენ ნამდვილად მოგიწოდებთ, 854 00:39:35,620 --> 00:39:40,670 თქვენ შენარჩუნება მათ გამოეყო, როდესაც ჩვენ ვისაუბროთ MVC და რომ მთელი პარადიგმა. 855 00:39:40,670 --> 00:39:42,490 ეს მართლაც რა ამ არხებს. 856 00:39:42,490 --> 00:39:46,110 >> ასე რომ CSS არის მხოლოდ გზა რათა რამ გამოიყურება საკმაოდ. 857 00:39:46,110 --> 00:39:50,500 რამ აქ, ისევე, სხეულის და #title და .info, 858 00:39:50,500 --> 00:39:54,340 ეს ეწოდება სელექციონერები და რა ისინი აკეთებენ, ისინი შერჩევა კონკრეტული რამ 859 00:39:54,340 --> 00:39:59,260 თქვენი HTML ფაილი და ვრცელდება რასაც სტილი, 860 00:39:59,260 --> 00:40:04,090 რასაც სახის რამ, რომ გსურთ, რომ კონკრეტული ელემენტის თქვენი ვებ 861 00:40:04,090 --> 00:40:04,590 გვერდზე. 862 00:40:04,590 --> 00:40:08,820 ასე რომ, აქ, ჩვენ გვაქვს ფონის ფერი და ფერი 863 00:40:08,820 --> 00:40:12,450 და შრიფტის ოჯახი, რომელიც მიმდინარეობს მიმართა, რაც არის სხეულში. 864 00:40:12,450 --> 00:40:15,530 ასე რომ, თუ ჩვენ ჩანდა უკან აქ, არ ვრცელდება ტიტული. 865 00:40:15,530 --> 00:40:22,340 ეს მხოლოდ ვრცელდება, რა არის ამ ორგანოს სელექციონერები, OK? 866 00:40:22,340 --> 00:40:25,250 >> სათაური აქ, ეს არის იქნება იგივე, 867 00:40:25,250 --> 00:40:28,410 ფერი ტექსტი მყოფი ლურჯი მხოლოდ აპირებს 868 00:40:28,410 --> 00:40:33,870 რომ მოახდენს რა არის შიგნით სათაური სელექციონერები. 869 00:40:33,870 --> 00:40:36,580 ისევე, როგორც ინფორმაცია აქ, ტექსტი იქნება ვარდისფერი, 870 00:40:36,580 --> 00:40:38,600 რასაც ის ინფორმაცია, რომელიც არის სწორი აქ. 871 00:40:38,600 --> 00:40:40,860 ასე რომ, მხოლოდ ის, რომ იქნებოდა ვარდისფერი ამ გვერდზე 872 00:40:40,860 --> 00:40:44,100 არის თარიღი, Monday, November 17, 2014. 873 00:40:44,100 --> 00:40:48,770 OK, ასე რომ CSS არის მხოლოდ გზა უფრო მეტი კონტროლი over-- yes? 874 00:40:48,770 --> 00:40:51,850 >> აუდიტორია: რატომ უნდა გამოიყენოთ hash სათაური? 875 00:40:51,850 --> 00:40:55,170 >> HANNAH შემდეგი slide, გპირდებით! 876 00:40:55,170 --> 00:40:56,810 ჩვენ იქ. 877 00:40:56,810 --> 00:40:59,830 სწორედ ამიტომ ჩვენ უნდა გამოვიყენოთ hash. 878 00:40:59,830 --> 00:41:03,429 ასე სელექციონერები მიიღოს სამი ძირითადი ფორმები, რომ ჩვენ გაიგო, რომ ბიჭების შესახებ. 879 00:41:03,429 --> 00:41:05,595 მე fyou გსურთ შეიტყოთ უფრო, არსებობს უამრავი არსებობს. 880 00:41:05,595 --> 00:41:07,540 არსებობს დიდი CSS დოკუმენტაცია. 881 00:41:07,540 --> 00:41:12,680 არსებობს tag სახელი, რომელიც უნდა გააკეთოს მხოლოდ თქვენი ნორმალური ტეგები HTML. 882 00:41:12,680 --> 00:41:17,210 ასე h1, p, div, h2, იმ სახის ნივთები. 883 00:41:17,210 --> 00:41:20,320 და ჩვენ შეგვიძლია მხოლოდ ასახელებს იმ, როგორც არის. 884 00:41:20,320 --> 00:41:22,650 ასე რომ, როგორც ვხედავთ აქ ორგანო, ნორმალური აქვს. 885 00:41:22,650 --> 00:41:26,660 ასე რომ ჩვენ შეგვიძლია დააყენა სხეულის, როდესაც ჩვენ ვსაუბრობთ ჩვენი CSS ფაილი. 886 00:41:26,660 --> 00:41:29,730 >> სათაური, მთელი მიზეზი აქვს ამ hash გვაქვს, რა არის 887 00:41:29,730 --> 00:41:31,010 ითვლება ID. 888 00:41:31,010 --> 00:41:35,400 ასე ID ყოველთვის უნდა იყოს უნიკალური თქვენი HTML გვერდი 889 00:41:35,400 --> 00:41:37,930 ასე რომ, როდესაც თქვენ ხართ მხედველობაში ის, რომ თქვენ 890 00:41:37,930 --> 00:41:41,990 იცით, რომ თქვენ მხოლოდ გულისხმობდა ერთი კონკრეტული რამ. 891 00:41:41,990 --> 00:41:46,270 ასე რომ, ამ შემთხვევაში აქ, ჩვენს h1 აქ, CS 50 განხილვის სხდომაზე, 892 00:41:46,270 --> 00:41:47,810 ჩვენ გვაქვს id სათაური. 893 00:41:47,810 --> 00:41:54,280 ასე რომ, რათა უბრალოდ ეხება, რომ ნაწილი ჩვენი HTML, ვაკეთებთ hash სათაური. 894 00:41:54,280 --> 00:41:58,080 მხოლოდ კონვენციის, პირადობის ინიშნებიან ერთად hash მათ წინაშე. 895 00:41:58,080 --> 00:42:01,650 იმ გზით, ჩვენ ვხედავთ, ინფორმაცია აქ არის კლასი. 896 00:42:01,650 --> 00:42:06,070 და ასე კლასი CSS არის დანიშნული როგორც dot კლასის 897 00:42:06,070 --> 00:42:08,895 ან dot რასაც კლასში. 898 00:42:08,895 --> 00:42:10,850 ასე რომ, ამ შემთხვევაში აქ, ეს ინფორმაცია. 899 00:42:10,850 --> 00:42:13,090 >> ასე რომ მე მას უკან. 900 00:42:13,090 --> 00:42:16,200 ორივე ეს იქნება ვარდისფერი ჩვენი CSS აქ 901 00:42:16,200 --> 00:42:18,430 რადგან ორივე კლასში ინფორმაცია. 902 00:42:18,430 --> 00:42:23,070 და ჩვენი CSS ფაილი, ჩვენ გვყავს რომ არაფერი ერთად კლასის ინფორმაცია 903 00:42:23,070 --> 00:42:24,120 უნდა იყოს ვარდისფერი. 904 00:42:24,120 --> 00:42:25,968 ამჯამად რომ აზრი? 905 00:42:25,968 --> 00:42:27,435 დიახ? 906 00:42:27,435 --> 00:42:30,731 >> აუდიტორია: თუ იყო, რათა ყველაფერი ორგანო თეთრი, 907 00:42:30,731 --> 00:42:32,814 და შემდეგ თქვენ ცდილობენ რაღაც შიგნით ლურჯი, 908 00:42:32,814 --> 00:42:34,770 მინდა, რომ გამოიწვიოს პრობლემები? 909 00:42:34,770 --> 00:42:37,310 >> HANNAH: So CSS არის კასკადური სტილების. 910 00:42:37,310 --> 00:42:40,730 ასე რომ, რაც არის მიმართული ბოლოში იქნება უპირატესი. 911 00:42:40,730 --> 00:42:44,080 ასე რომ, თუ თქვენ რაღაც სხეულის, და თქვენ ყველაფერი თეთრი, 912 00:42:44,080 --> 00:42:49,300 და შემდეგ თქვენ სახელწოდების შეცვლის ან შეცვალოთ ტექსტი ფარგლებში ორგანოს, 913 00:42:49,300 --> 00:42:50,560 მას overwrites რომ. 914 00:42:50,560 --> 00:42:55,360 ისე არაფერი მიმართ ბოლოში იქნება უპირატესი. 915 00:42:55,360 --> 00:42:56,730 დიახ? 916 00:42:56,730 --> 00:42:59,627 >> აუდიტორია: და პირადობის მოწმობები არის უნიკალური, მაგრამ კლასების შეიძლება იყოს მეტი? 917 00:42:59,627 --> 00:43:00,210 HANNAH: Right. 918 00:43:00,210 --> 00:43:06,320 ასე პირადობის მოწმობები უნდა იყოს უნიკალური და კლასი საიტიდან ეხება, როგორც ბევრი რამ, როგორც თქვენ გსურთ. 919 00:43:06,320 --> 00:43:07,580 ნებისმიერი სხვა კითხვები? 920 00:43:07,580 --> 00:43:09,800 დიახ. 921 00:43:09,800 --> 00:43:11,210 >> აუდიტორია: [INAUDIBLE]. 922 00:43:11,210 --> 00:43:13,509 მე მაინტერესებს, არის თუ არა რომ ქმნის განსხვავებას. 923 00:43:13,509 --> 00:43:15,217 HANNAH: მე ბოდიში, რა იყო კითხვა? 924 00:43:15,217 --> 00:43:18,960 აუდიტორია: არსებობს პატარა "ვ" და კაპიტალის "ფ" 925 00:43:18,960 --> 00:43:21,440 HANNAH: ასე რომ, განსხვავება შორის მცირე "ვ" და კაპიტალის "F" 926 00:43:21,440 --> 00:43:22,606 არ უნდა მიიღოს განსხვავება. 927 00:43:22,606 --> 00:43:26,330 ასე რომ, "ვ" იქნება 15 ან გზა. 928 00:43:26,330 --> 00:43:28,130 მაგარი, არაფერი? 929 00:43:28,130 --> 00:43:29,930 ყველას კარგი, CSS? 930 00:43:29,930 --> 00:43:30,850 დიახ? 931 00:43:30,850 --> 00:43:31,790 >> აუდიტორია: უკაცრავად. 932 00:43:31,790 --> 00:43:35,550 შეგიძლიათ აქვს კლასი და ID? 933 00:43:35,550 --> 00:43:38,030 >> HANNAH: დიახ, შეგიძლიათ. 934 00:43:38,030 --> 00:43:40,420 რამ შეიძლება ორივე კლასი და პირადობის მოწმობა. 935 00:43:40,420 --> 00:43:44,670 და მე მაღალ რეკომენდაციას ტესტირება ეს თქვენი საკუთარი. 936 00:43:44,670 --> 00:43:50,480 CSS თქვენ შეისწავლით საუკეთესო მხოლოდ მიღების რაღაც, ძალიან მარტივი ვებ გვერდზე, 937 00:43:50,480 --> 00:43:53,440 შედგენის ზოგიერთი CSS, და მხოლოდ ხედავს, თუ როგორ შეარჩიონ. 938 00:43:53,440 --> 00:43:56,970 და თქვენ მოიპოვოს ძალიან კარგი, ინტუიციური გრძნობა როგორ მუშაობს. 939 00:43:56,970 --> 00:43:58,810 >> OK, ყველას კარგი CSS? 940 00:43:58,810 --> 00:44:01,280 თქვენ ყველა აპირებს, რათა ლამაზი საიტებზე CSS ახლა. 941 00:44:01,280 --> 00:44:05,460 OK, საუკეთესო პრაქტიკის, უბრალოდ რამ უნდა გვახსოვდეს, რამ 942 00:44:05,460 --> 00:44:09,810 that-- ამიტომ დოკის თქვენ დიზაინერი და whatnot. 943 00:44:09,810 --> 00:44:11,820 ასე ახლოს ყველა თქვენი HTML tags. 944 00:44:11,820 --> 00:44:14,840 ასე რომ, თუ თქვენ გაქვთ ღია ორგანოს, არ უნდა იყოს ახლოს სხეულის. 945 00:44:14,840 --> 00:44:18,180 თუ თქვენ გაქვთ ღია პუნქტის, არ უნდა იყოს ახლოს პუნქტში. 946 00:44:18,180 --> 00:44:19,555 შეამოწმეთ თქვენი გვერდი ამტკიცებს. 947 00:44:19,555 --> 00:44:23,330 თქვენ ბიჭები უნდა იყოს ძალიან ნაცნობი ამ გვ-შვიდი 948 00:44:23,330 --> 00:44:26,350 ერთად CS 50 ფინანსთა ერთად W3 დამტკიცება. 949 00:44:26,350 --> 00:44:28,340 და, როგორც ვთქვი, ჩვენი ერთ-ერთი დიდი პარადიგმები 950 00:44:28,340 --> 00:44:33,780 არის ჰყოფს თქვენი სტილის ცენტრთან თქვენი markup, რომელიც HTML. 951 00:44:33,780 --> 00:44:36,900 და მაშინ, რა თქმა უნდა, ჩვენ გვაქვს ამ დიდი xkcd ქვემოთ აქ. 952 00:44:36,900 --> 00:44:38,280 Yay, კომიკური რელიეფის, 953 00:44:38,280 --> 00:44:41,340 >> OK, TCP / IP. 954 00:44:41,340 --> 00:44:44,650 შორის და HTTP, ძირითადად ისინი ორივე ოქმები. 955 00:44:44,650 --> 00:44:46,810 ასე რომ თქვენ შეიძლება უბრალოდ ვფიქრობ, მათ, როგორც კომპლექტი წესები 956 00:44:46,810 --> 00:44:50,110 რომ არეგულირებს, თუ როგორ რამ გადაადგილება მთელს ინტერნეტში. 957 00:44:50,110 --> 00:44:53,410 ასე გადამცემი კონტროლის ოქმი, ან ინტერნეტ ოქმი, 958 00:44:53,410 --> 00:44:57,280 მხოლოდ გზა დარწმუნდით რომ მონაცემები იღებს, სადაც ის აპირებს 959 00:44:57,280 --> 00:45:00,030 და რომ ჩვენ ვიცით, თუ ჩვენ ოდესმე დაკარგული მონაცემები. 960 00:45:00,030 --> 00:45:03,520 ასე რომ, თუ თქვენ ბიჭები ვფიქრობ, უკან ლექცია რამდენიმე კვირის წინ, დავით 961 00:45:03,520 --> 00:45:06,980 სადაც ჩვენ გვქონდა ოთხი კონვერტები, ისინი იყო დათვლილია, როგორც ერთი ოთხი, 962 00:45:06,980 --> 00:45:11,300 ორი ოთხი, სამი, ოთხი, ოთხი ოთხი, ეს არის უბრალოდ წესები. 963 00:45:11,300 --> 00:45:13,830 ჩვენ ვთქვით, OK, როდესაც ჩვენ გაგზავნის ერთზე მეტი პაკეტი, 964 00:45:13,830 --> 00:45:16,610 ჩვენ ვაპირებთ ნომერზე იგი, რა რაოდენობის, რომ ეს 965 00:45:16,610 --> 00:45:19,040 და რამდენი საერთო, რომ მომხმარებელი უნდა მიიღოს. 966 00:45:19,040 --> 00:45:22,540 >> და ეს უბრალოდ ვეუბნებოდი ყველას, ვინც იღებს მონაცემებს თუ არა ისინი 967 00:45:22,540 --> 00:45:26,120 მიღებული ყველაფერი ან თუ რაღაც დაიკარგა გასწვრივ გზა. 968 00:45:26,120 --> 00:45:28,840 და მათ უნდა ვთხოვო მას ერთხელ. 969 00:45:28,840 --> 00:45:31,140 ეს არის ნამდვილად წესები. 970 00:45:31,140 --> 00:45:33,650 ეს არის ის, თუ როგორ შეიძლება ვიფიქროთ, რომ ეს, OK? 971 00:45:33,650 --> 00:45:37,700 და ასევე, ის განსაზღვრავს პორტი, რომელიც თქვენ ბიჭები can-- ვიცი დროს ლექცია, 972 00:45:37,700 --> 00:45:39,170 მათ ჰქონდათ მთელი სია პორტები. 973 00:45:39,170 --> 00:45:41,630 მაგრამ ჩვენ არ გვაქვს, რომ მათ აქ ახლა. 974 00:45:41,630 --> 00:45:45,290 >> ასე ჰიპერტექსტის გადაცემის პროტოკოლი კიდევ ერთხელ, ეს არის კიდევ ერთი ოქმი. 975 00:45:45,290 --> 00:45:48,630 ასე რომ, ეს არის კიდევ ერთი კომპლექტი წესები რომ მართოს, ამ შემთხვევაში, 976 00:45:48,630 --> 00:45:51,130 როგორ ჰიპერტექსტის გადაეცემა. 977 00:45:51,130 --> 00:45:54,340 ასე რომ, ეს უბრალოდ საშუალებას ბრაუზერები საუბარი ვებ სერვერები. 978 00:45:54,340 --> 00:45:56,910 და, როგორც ვთქვით, აქ ეს როგორიცაა ადამიანის handshaking. 979 00:45:56,910 --> 00:46:00,480 ეს უბრალოდ გზა მართავენ როგორ სერვერზე არის 980 00:46:00,480 --> 00:46:02,690 ხდება ურთიერთქმედება თქვენი ბრაუზერის. 981 00:46:02,690 --> 00:46:05,660 და ჩვენ გვაქვს მხოლოდ რამდენიმე მაგალითი. 982 00:46:05,660 --> 00:46:09,100 ჩვენ გვაქვს გარკვეული მოთხოვნები აქ სადაც GET მეთოდი. 983 00:46:09,100 --> 00:46:13,760 ჩვენ გვაქვს HTTP 1.1, რომელიც ოქმის ვერსია ჩვენთვის. 984 00:46:13,760 --> 00:46:17,230 და მაშინ, მასპინძელი, რაც ჩვენ რეალურად ცდილობს წვდომას. 985 00:46:17,230 --> 00:46:21,800 და შემდეგ, როგორც ხედავთ აქ, ჩვენ მიიღოთ გარკვეული პასუხი ამ 200 986 00:46:21,800 --> 00:46:25,032 OK, როგორც ჩვენი HTTP რეაგირების კოდი. 987 00:46:25,032 --> 00:46:27,240 ჩვენ გვაქვს დიდი ჩამონათვალი მე ვაპირებ დახევის up ერთ წამში 988 00:46:27,240 --> 00:46:29,430 რომ თქვენ ბიჭები უნდა იყოს იცნობს. 989 00:46:29,430 --> 00:46:35,750 და ჩვენ გვაქვს ამ შინაარსის ტიპის ტექსტის / HTML, რომელიც მხოლოდ ამბობს თუ რა სახის მონაცემები 990 00:46:35,750 --> 00:46:39,990 ვართ ჩვენ მიღების სერვერზე, OK? 991 00:46:39,990 --> 00:46:44,230 ამ მასპინძელი და ამ შინაარსის ტიპი ნაწილი ვართ HTTP სათაურებში. 992 00:46:44,230 --> 00:46:49,610 თქვენ შეგიძლიათ როგორც რამდენიმე ან როგორც პატარა, როგორც საჭირო კონტექსტში, რა 993 00:46:49,610 --> 00:46:50,580 თქვენ საქმე. 994 00:46:50,580 --> 00:46:53,371 ზოგჯერ თქვენ უნდა ბევრი ინფორმაცია მოდის თქვენს სერვერზე. 995 00:46:53,371 --> 00:46:56,040 იქნებ ისინი მოთხოვნის ბევრი ინფორმაციის შესახებ. 996 00:46:56,040 --> 00:46:57,600 ეს დამოკიდებულია კონტექსტში. 997 00:46:57,600 --> 00:47:01,144 თუ გადავხედავთ CS 50 კვლევა, არსებობს ბევრი უფრო, რომ. 998 00:47:01,144 --> 00:47:03,060 მაგრამ ჩვენ გვაქვს ბევრი მისაღებად მეშვეობით, ისე მე ვაპირებ 999 00:47:03,060 --> 00:47:05,760 წასვლა უფლება ადრე თუ ეს OK თქვენ ბიჭები? 1000 00:47:05,760 --> 00:47:07,960 მაგარი. 1001 00:47:07,960 --> 00:47:08,460 გაიმართება. 1002 00:47:08,460 --> 00:47:11,182 მე ნამდვილად აქვს, რომ მთელი სია of-- huh! 1003 00:47:11,182 --> 00:47:13,140 მე არ ვიცი, ამიტომ ეს ყველა გზა აქ. 1004 00:47:13,140 --> 00:47:15,660 ვფიქრობდი, სიტყვასიტყვით გადავიდა ეს მაშინ, როცა მე ვიყავი sitting-- 1005 00:47:15,660 --> 00:47:16,540 >> Davin გსურთ ასწავლოს მას? 1006 00:47:16,540 --> 00:47:17,420 ან გინდა, ასწავლოს მას? 1007 00:47:17,420 --> 00:47:20,010 >> აუდიტორია: ვფიქრობდი, რომ უბრალოდ ვაჩვენოთ იწყება. 1008 00:47:20,010 --> 00:47:22,210 ვგულისხმობ, თქვენ შეგიძლიათ შეხვიდეთ მათ შემდგომი, მაგრამ მე 1009 00:47:22,210 --> 00:47:26,030 ეგონა, რომ ეს კიდევ უფრო გრძნობა, რადგან მე იყო უბრალოდ ვსაუბრობთ HTTP სტატუსის მიხედვით. 1010 00:47:26,030 --> 00:47:28,200 ასე რომ, აქ არის მთელი სია. 1011 00:47:28,200 --> 00:47:31,730 ვფიქრობ, რა მოხდება არის Davin აპირებს წასვლას მათ მოგვიანებით. 1012 00:47:31,730 --> 00:47:35,330 მაგრამ არსებობს მთელი სია, ესკიზი გემოვნების მოვა. 1013 00:47:35,330 --> 00:47:41,640 OK, ჩვენ ვაპირებთ blow-- ამ აპირებს იყოს PHP ავარიის კურსი, როგორც სხვა. 1014 00:47:41,640 --> 00:47:44,874 >> ასე PHP, ჰიპერტექსტის preprocessor, ეს რეკურსიული backronym, 1015 00:47:44,874 --> 00:47:46,540 რაც იმას ნიშნავს, მას ეწოდა რაღაც. 1016 00:47:46,540 --> 00:47:49,050 და მაშინ ისინი ისევე, როგორც ეს ნამდვილად არ აქვს აზრი. 1017 00:47:49,050 --> 00:47:52,210 ასე რომ, ისინი მხოლოდ დასახელებული it-- და ეს იყო აკრონიმი, 1018 00:47:52,210 --> 00:47:54,840 ასე რომ, ისინი მხოლოდ გააკეთა ის PHP ჰიპერტექსტის preprocessor, რომელიც 1019 00:47:54,840 --> 00:47:55,980 უბრალოდ აზრი არ აქვს. 1020 00:47:55,980 --> 00:47:57,714 სახალისო ამბავი. 1021 00:47:57,714 --> 00:47:58,880 ის პროგრამირების ენაზე. 1022 00:47:58,880 --> 00:48:02,360 ასე რომ, როგორც მე აღვნიშნო, რომ HTML არ არის პროგრამირების ენა, 1023 00:48:02,360 --> 00:48:05,350 ეს მარკირებას ენა, PHP არის პროგრამირების ენა. 1024 00:48:05,350 --> 00:48:07,422 როგორ თქვენ იცით, რომ ეს არის იმიტომ, რომ იქ არის ლოგიკა. 1025 00:48:07,422 --> 00:48:08,380 არსებობს პირობით. 1026 00:48:08,380 --> 00:48:12,750 ჩვენ გვაქვს ცვლადები, ჩვენ კი აქვს არც ერთი იმ რამ HTML. 1027 00:48:12,750 --> 00:48:16,960 >> ყველა უფლება, მაშინ ჩვენ გვაქვს ამ პატარა ცოტა აქ, რომ ისევე, გემოვნების PHP. 1028 00:48:16,960 --> 00:48:20,510 ასე საფუძვლებს, ცვლადი სახელები დაიწყოს დოლარის ნიშანი. 1029 00:48:20,510 --> 00:48:21,500 უამრავი ადამიანი, როგორც ეს. 1030 00:48:21,500 --> 00:48:22,371 მოგვაგონებს us ფული. 1031 00:48:22,371 --> 00:48:22,995 ეს ყველაფერი დიდი. 1032 00:48:22,995 --> 00:48:25,280 ჩვენ ყველას გვინდა PHP. 1033 00:48:25,280 --> 00:48:28,020 ასე რომ, ჩვენ არ დააკონკრეტა ცვლადი ს ტიპის აღარ. 1034 00:48:28,020 --> 00:48:29,995 იგი განისაზღვრება პერსპექტივაში დრო. 1035 00:48:29,995 --> 00:48:32,710 1036 00:48:32,710 --> 00:48:35,890 თარჯიმანი იქნება, oh, ჩვენ უბრალოდ აწარმოებს მეშვეობით, 1037 00:48:35,890 --> 00:48:39,565 და კონტექსტის მიხედვით, ჩვენ დავინახავთ, თუ რა სახის სახის 1038 00:48:39,565 --> 00:48:41,560 ეს ცვლადები უნდა ჰქონდეს. 1039 00:48:41,560 --> 00:48:42,815 არ ძირითადი ფუნქცია. 1040 00:48:42,815 --> 00:48:43,690 რამ მხოლოდ აწარმოებს. 1041 00:48:43,690 --> 00:48:47,851 თქვენ ბიჭები თქვენი იმპორტის თქვენი ბოლო p მითითებული, თქვენ შეამჩნევთ ამ. 1042 00:48:47,851 --> 00:48:49,350 არსებობს ნამდვილად არ იყო მთავარი ფუნქცია. 1043 00:48:49,350 --> 00:48:52,070 თქვენ უბრალოდ დაწერა რა თქვენ სურდა მოხდეს. 1044 00:48:52,070 --> 00:48:53,280 და ეს მხოლოდ სახის მოხდა. 1045 00:48:53,280 --> 00:48:56,760 ისე, რომ PHP თქვენთვის. 1046 00:48:56,760 --> 00:48:59,180 >> კოლექტორები ძალიან ჰგავს. 1047 00:48:59,180 --> 00:49:01,270 ჩვენ ჯერ კიდევ გვაქვს ამ bracket. 1048 00:49:01,270 --> 00:49:05,940 აქ, ჩვენ გვაქვს რამდენიმე ცვლადი მოუწოდა arr, და ეს თანაბარი 1049 00:49:05,940 --> 00:49:08,540 რომელთა მიზანია ჩვენ გვაქვს ჩვენი ნორმალური bracket notation. 1050 00:49:08,540 --> 00:49:10,630 და ჩვენ გვაქვს გასაღები ღირებულება. 1051 00:49:10,630 --> 00:49:14,630 და დიდი განსხვავება შორის C და PHP მასივები 1052 00:49:14,630 --> 00:49:19,330 არის, რომ ჩვენ შეგვიძლია ამ ასოცირებული ჩვენ შეგვიძლია გაერთიანდნენ ფასეულობები გასაღებები. 1053 00:49:19,330 --> 00:49:22,440 ასე რომ ნაცვლად მხოლოდ მქონე მასივი, რომ ინდექსირებული 1054 00:49:22,440 --> 00:49:26,630 რაოდენობის და პოზიცია რომ ელემენტს მასივი, 1055 00:49:26,630 --> 00:49:29,060 ჩვენ შეგვიძლია რეალურად გაიგივებას გასაღები. 1056 00:49:29,060 --> 00:49:36,700 სადაც ჩვენ შეგვიძლია ვთქვათ, OK, მე მინდა რასაც მნიშვნელობა უკავშირდება ხილი. 1057 00:49:36,700 --> 00:49:39,280 და იქნებ ჩვენ გვაქვს ხილის წავიდა ბანანი. 1058 00:49:39,280 --> 00:49:41,760 ასე რომ, მინდა დაბრუნდეს ბანანის ჩვენთვის. 1059 00:49:41,760 --> 00:49:44,100 >> მაგრამ, ძირითადად, ყველაზე ძლიერი რამ შესახებ ეს 1060 00:49:44,100 --> 00:49:47,960 არის, რომ თუ ბიჭები გახსოვთ დემო ლექცია სადაც ჩვენ ძირითადად 1061 00:49:47,960 --> 00:49:53,050 Rewrote speller PHP, და ეს was-- lookup მართლაც მხოლოდ მინდა, 1062 00:49:53,050 --> 00:49:55,007 ჯერ ეს გასაღები არსებობს? 1063 00:49:55,007 --> 00:49:56,590 რომ მართლაც ასეთი ძალა მას. 1064 00:49:56,590 --> 00:49:58,560 თქვენ არ უნდა iterate მეშვეობით თქვენი მასივი. 1065 00:49:58,560 --> 00:50:00,311 თქვენ არ უნდა იცოდეთ რა ადგილი არის. 1066 00:50:00,311 --> 00:50:01,976 ეს შეიძლება იყოს ბოლოს ან დასაწყისში. 1067 00:50:01,976 --> 00:50:04,790 რადგან თქვენ იცით გასაღები რომ ასოცირდება ღირებულება, 1068 00:50:04,790 --> 00:50:09,740 PHP შეიძლება მხოლოდ შამფურზე, რომ ღირებულება უფლება უკან out at თქვენ, OK? 1069 00:50:09,740 --> 00:50:12,960 >> და შემდეგ, ჩვენ ასევე მხოლოდ აქვს მხოლოდ იმიტომ, რომ ჩვენ 1070 00:50:12,960 --> 00:50:16,750 შეიძლება ჰქონდეს გასაღები ღირებულება წყვილი იმას არ ნიშნავს, რომ თქვენ უნდა. 1071 00:50:16,750 --> 00:50:19,180 ასევე შეგიძლიათ მხოლოდ შექმნა ნორმალური მასივი, როგორიც აქ, 1072 00:50:19,180 --> 00:50:21,540 ბოლოში, სადაც ის მხოლოდ ერთი, ორი, სამი, ოთხი. 1073 00:50:21,540 --> 00:50:22,510 ესენი არიან ჩვენი ღირებულებები. 1074 00:50:22,510 --> 00:50:25,320 და სხვათა შორის, მათი გასაღებები არიან მაჩვენებლები. 1075 00:50:25,320 --> 00:50:26,830 ასე გასაღები ერთი იქნება ნულოვანი. 1076 00:50:26,830 --> 00:50:28,610 საკვანძო ორი იქნება ერთი. 1077 00:50:28,610 --> 00:50:31,910 ასე შემდეგ და ასე შემდეგ, თუ თქვენ მკაფიოდ დაავალოს გასაღები, 1078 00:50:31,910 --> 00:50:34,630 თქვენ შეიძლება ვივარაუდოთ, რომ მნიშვნელობა არის მათი ინდექსი. 1079 00:50:34,630 --> 00:50:37,290 არა, რომ აზრი, რომ ყველასთვის? 1080 00:50:37,290 --> 00:50:38,070 კითხვები არ? 1081 00:50:38,070 --> 00:50:38,930 გასაოცარია. 1082 00:50:38,930 --> 00:50:44,420 >> OK, foreach არის გზა iterate საშუალებით თქვენი მასივები. 1083 00:50:44,420 --> 00:50:47,490 ამიტომ ჩვენ გვაქვს რაღაც აქ, მხოლოდ ზოგადი სტრუქტურა. 1084 00:50:47,490 --> 00:50:51,020 ასე foreach, სახელი ჩვენი მასივი, რაც არ 1085 00:50:51,020 --> 00:50:53,930 თქვენ მინდა მოვუწოდო თითოეულ ელემენტის თქვენს მასივი, 1086 00:50:53,930 --> 00:50:57,270 და ჩვენ შეგვიძლია გავაკეთოთ რაღაც ერთად რომ ელემენტს და რომ ღირებულება. 1087 00:50:57,270 --> 00:50:58,680 ასე რომ, ჩვენ გვაქვს მაგალითი აქ. 1088 00:50:58,680 --> 00:51:05,770 ჩვენ გვაქვს ასოციაციურ array ამ ორ მასალა 1089 00:51:05,770 --> 00:51:10,080 ბარ მიმდინარეობს ასოცირდება foo და qux, რომელიც დაკავშირებულია baz. 1090 00:51:10,080 --> 00:51:12,180 ასე გასაღებები foo და baz. 1091 00:51:12,180 --> 00:51:13,650 ღირებულებები ბარი და qux. 1092 00:51:13,650 --> 00:51:18,560 ასე foreach, ჩვენ ჩვენი მასივი აქ, როგორც გასაღები ღირებულება წყვილი. 1093 00:51:18,560 --> 00:51:21,560 ეს საშუალებას გვაძლევს ხელმისაწვდომობის როგორც გასაღები და მნიშვნელობა. 1094 00:51:21,560 --> 00:51:23,680 იქნებ უბრალოდ გვინდა მნიშვნელობა, ამ შემთხვევაში 1095 00:51:23,680 --> 00:51:27,640 თქვენ შეიძლება უბრალოდ, როგორიცაა arr როგორც $ მნიშვნელობა, და მაშინ 1096 00:51:27,640 --> 00:51:30,640 უბრალოდ წვდომის ღირებულება რადგან თქვენ iterate მეშვეობით. 1097 00:51:30,640 --> 00:51:32,600 მაგრამ იქნებ, რამდენიმე ამიტომ, თქვენ გჭირდებათ გასაღები, 1098 00:51:32,600 --> 00:51:35,460 რის გამოც მე აირჩია ეს მაგალითი ნაცვლად. 1099 00:51:35,460 --> 00:51:40,240 ასე რომ თქვენ შეგიძლიათ რეალურად მანიპულირება გასაღები და მნიშვნელობა ამ შემთხვევაში. 1100 00:51:40,240 --> 00:51:41,070 OK? 1101 00:51:41,070 --> 00:51:41,905 კითხვა? 1102 00:51:41,905 --> 00:51:44,279 >> აუდიტორია: თუ უნდოდა უბრალოდ მანიპულირება გასაღები, რომ 1103 00:51:44,279 --> 00:51:45,910 თქვენ უნდა გავაკეთოთ foreach-- 1104 00:51:45,910 --> 00:51:47,360 >> ALISON: Right. 1105 00:51:47,360 --> 00:51:50,560 ასე რომ, თუ თქვენ სურდა მანიპულირება მხოლოდ ძირითადი, 1106 00:51:50,560 --> 00:51:53,680 თქვენ მაინც უნდა ეს სინტაქსი რადგან თუ მხოლოდ 1107 00:51:53,680 --> 00:51:56,930 აქვს arr როგორც რაღაც, როგორც ერთი რამ, ის 1108 00:51:56,930 --> 00:52:00,070 შეითავსებს გსურთ ღირებულება, არ გასაღები. 1109 00:52:00,070 --> 00:52:06,780 ასე რომ, თუ თქვენ ოდესმე უბრალოდ უნდა, ისევე, როგორც arr რადგან, შესაძლოა, ეს მოსწონს $ ელემენტის, 1110 00:52:06,780 --> 00:52:11,670 ის აპირებს ვივარაუდოთ, რომ თქვენ გეკითხებით მხოლოდ ღირებულება ყოველ ეტაპზე. 1111 00:52:11,670 --> 00:52:13,879 თუ თქვენ ღიად გვინდა რამე ერთად გასაღები, 1112 00:52:13,879 --> 00:52:16,170 მაშინაც კი, თუ თქვენ არ ვაპირებთ არაფერი ღირებულება, 1113 00:52:16,170 --> 00:52:18,430 თქვენ გჭირდებათ ეს სტრუქტურა რომ ჩვენ გვაქვს აქ 1114 00:52:18,430 --> 00:52:22,330 სადაც თქვენ მკაფიოდ ითხოვს ორივე გასაღები და ღირებულება. 1115 00:52:22,330 --> 00:52:24,170 დიდი კითხვა. 1116 00:52:24,170 --> 00:52:25,940 არაფერი? 1117 00:52:25,940 --> 00:52:27,490 მაგარი. 1118 00:52:27,490 --> 00:52:29,911 >> ყველა უფლება, PHP და HTML. 1119 00:52:29,911 --> 00:52:31,410 Oh, ჩვენ უკან p-შვიდი ერთხელ. 1120 00:52:31,410 --> 00:52:35,380 ასე რომ, ეს უნდა გამოიყურებოდეს ცოტა ნაცნობი. 1121 00:52:35,380 --> 00:52:41,760 ასე რომ ეს არის რამდენიმე მარტივი HTML ფორმა რომ აქვს input სახელი hello. 1122 00:52:41,760 --> 00:52:43,820 და ჩვენ ვხედავთ, რომ ჩვენ გვაქვს ჩვენი მეთოდი GET. 1123 00:52:43,820 --> 00:52:47,430 და თუ ჩვენ გვახსოვს ჩვენი p-set, როდესაც ამ ფორმით არის წარმოდგენილი, 1124 00:52:47,430 --> 00:52:58,130 ის აგზავნის მასივი მოუწოდა $ _GET, რომელსაც აქვს ყველა ამ საშუალებებით ან ცვლადი საწყისი 1125 00:52:58,130 --> 00:53:00,490 ფორმა, რომელიც უნდა იყოს მანიპულირება ჩვენი PHP. 1126 00:53:00,490 --> 00:53:03,320 ასე რომ, ამ შემთხვევაში, მომხმარებელს დააყენა მათი სახელი. 1127 00:53:03,320 --> 00:53:04,370 ისინი წარუდგინოს. 1128 00:53:04,370 --> 00:53:07,810 და ჩვენ ვხედავთ, რომ ჩვენ გარკვეული მასივი აქ. 1129 00:53:07,810 --> 00:53:09,080 ჩვენ გვაქვს ჩვენი GET მასივი. 1130 00:53:09,080 --> 00:53:11,510 და ჩვენ წვდომის სახელი. 1131 00:53:11,510 --> 00:53:15,070 >> ასე რომ ამბობს, OK, მომეცი ღირებულება, რომელიც დაკავშირებულია სახელი, 1132 00:53:15,070 --> 00:53:16,550 სახელი მიმდინარეობს გასაღები აქ. 1133 00:53:16,550 --> 00:53:21,400 და რომ რუკები პირდაპირ რა ჩვენ ვთქვით, რომ ჩვენი წვლილი სახელი. 1134 00:53:21,400 --> 00:53:28,960 ასე რომ, ეს იყო გაწვდით გასაღები, თუ რა იქნება თქვენი მასივი აქ. 1135 00:53:28,960 --> 00:53:31,220 არა, რომ აზრი, რომ ყველასთვის? 1136 00:53:31,220 --> 00:53:32,070 დიახ? 1137 00:53:32,070 --> 00:53:36,240 >> აუდიტორია: არა სახელი GET ეხება რომ purple ხაზი [INAUDIBLE]? 1138 00:53:36,240 --> 00:53:37,740 >> ALISON: ეს ეხება ეს აქ. 1139 00:53:37,740 --> 00:53:43,840 ასე რომ, ეს ველი შეიცავს, სწორედ აქ, ეს ეხება ამ სახელით აქ. 1140 00:53:43,840 --> 00:53:47,800 ასე რომ ეს შეიძლება უკვე დაასახელა როგორიცაა ტელეფონის ნომერი, ან რასაც. 1141 00:53:47,800 --> 00:53:51,790 ეს სახელი ამბობს, რა მოუწოდებენ, ამ სფეროში? 1142 00:53:51,790 --> 00:53:53,600 როგორ აპირებთ ეხება ამ სფეროში? 1143 00:53:53,600 --> 00:53:57,670 და ეს სახელი რეალურად მინდა, ჩვენ ამბობდა ეს ველი ეწოდება სახელი. 1144 00:53:57,670 --> 00:53:59,224 ეს არის ის, თუ როგორ ვაპირებთ ვებგვერდზე. 1145 00:53:59,224 --> 00:54:02,070 >> აუდიტორია: ასე არის ეს მინდა, input სახელი შეადგენს Bob, and-- 1146 00:54:02,070 --> 00:54:04,380 >> ALISON: მარჯვენა, მაშინ თქვენ დაიჭერს Bob დახვდა. 1147 00:54:04,380 --> 00:54:06,090 ზუსტად. 1148 00:54:06,090 --> 00:54:07,800 ყველას მაგარი? 1149 00:54:07,800 --> 00:54:10,990 ყველა უფლება, ასე GET წინააღმდეგ POST, ეს არის ორი ძირითადი გზა 1150 00:54:10,990 --> 00:54:14,880 რომ ჩვენ გაიარონ მონაცემები HTTP მოთხოვნის. 1151 00:54:14,880 --> 00:54:17,370 თქვენ ბიჭები უნდა გენახათ ორივე ეს იმედია. 1152 00:54:17,370 --> 00:54:20,940 ასე GET, ინფორმაცია გადის URL. 1153 00:54:20,940 --> 00:54:23,490 ასე რომ, თუ თქვენ ოდესმე გააკეთოს Google ძიება, YouTube, თქვენ 1154 00:54:23,490 --> 00:54:25,130 ალბათ შეამჩნია რამდენიმე კითხვის ნიშნის. 1155 00:54:25,130 --> 00:54:28,230 და შემდეგ, ყველა სიტყვა რომ თქვენ უბრალოდ დააყენა იქ. 1156 00:54:28,230 --> 00:54:31,410 და POST აკეთებს მონაცემები ამ HTTP გაგზავნა ორგანო. 1157 00:54:31,410 --> 00:54:36,922 ასე რომ, განსხვავებით, თქვენ სახის განიხილოს რომ მონაცემები დაუმალა შესახებ. 1158 00:54:36,922 --> 00:54:38,630 მაგრამ რა მართლაც მნიშვნელოვანია იმის გაგება, 1159 00:54:38,630 --> 00:54:44,040 ის არის, რომ ეს ჯერ კიდევ ისევე როგორც არასაიმედო, როგორც GET. 1160 00:54:44,040 --> 00:54:48,780 ანალოგია მომწონს გამოიყენოს იმ შემთხვევაში, თუ თქვენ უნდა თქვენი საბანკო ანგარიშის ნომერი 1161 00:54:48,780 --> 00:54:52,795 და თქვენ დაწერა გარეთ კონვერტში, რომ საკმაოდ სახიფათო. 1162 00:54:52,795 --> 00:54:55,920 თუ თქვენ დაწერა ეს ცალი ქაღალდი და მისი შიგნით კონვერტში, 1163 00:54:55,920 --> 00:54:58,850 ეს ჯერ კიდევ მართლაც სახიფათო, რადგან ყველა თქვენ უნდა გააკეთოთ გახსნა რომ 1164 00:54:58,850 --> 00:55:03,480 და შევხედოთ ფაქტობრივი შინაარსი გზავნილი, რომ. 1165 00:55:03,480 --> 00:55:08,310 ასე რომ, ეს "ფარული" და ადამიანი მიყვარს ვფიქრობ, რომ ეს უსაფრთხო, მაგრამ ეს ნამდვილად არ არის. 1166 00:55:08,310 --> 00:55:11,000 და დარწმუნებული ვარ, Davin იქნება შეღწევას, რომ უფრო, ალბათ. 1167 00:55:11,000 --> 00:55:12,850 მაგრამ ეს არის მნიშვნელოვანი განსხვავება რათა 1168 00:55:12,850 --> 00:55:15,820 და მართლაც რაღაც კარგი გასაგებია. 1169 00:55:15,820 --> 00:55:19,220 >> OK, SQL, სტრუქტურირებული შეკითხვის ენა. 1170 00:55:19,220 --> 00:55:22,220 ყველა პერსონალი, ჩვენ ვხედავთ, ცოტა ხნის წინ, 1171 00:55:22,220 --> 00:55:25,400 ასე რომ, ეს, ძირითადად, მხოლოდ შექმნილია, ცხადია, მართვის მონაცემები. 1172 00:55:25,400 --> 00:55:30,560 თქვენ ბიჭები ჰქონდა დიდი გამოცდილება ამ თქვენს მაგიდები PHP MyAdmin. 1173 00:55:30,560 --> 00:55:34,100 და არსებობს ოთხი საერთო queries რომ ჩვენ გვინდა თქვენ ბიჭები იცოდეს. 1174 00:55:34,100 --> 00:55:37,304 ასე რომ, არსებობს განახლება, კულტურა, შერჩევა და წაშლა. 1175 00:55:37,304 --> 00:55:38,970 ასე რომ დარწმუნდით, რომ თქვენ იცით, იმ მართლაც კარგად. 1176 00:55:38,970 --> 00:55:40,960 ჩვენ ვაპირებთ წავიდეთ მათი მეშვეობით მართლაც სწრაფი. 1177 00:55:40,960 --> 00:55:44,340 >> ასე რომ განაახლოს, რეალურად, რა თქვენ ალბათ ფიქრობთ, რომ ეს ასეა, 1178 00:55:44,340 --> 00:55:46,740 ეს მხოლოდ განაახლებს მონაცემებს თქვენს მონაცემთა ბაზაში. 1179 00:55:46,740 --> 00:55:48,750 ასე რომ, ჩვენ გვაქვს მაგალითად აქ. 1180 00:55:48,750 --> 00:55:53,310 ეს არ არის ზოგადი სტრუქტურა განახლება შეკითხვაზე. 1181 00:55:53,310 --> 00:55:56,150 ასე რომ, ჩვენ განახლება მაგიდა რომ ჩვენ ვსაუბრობთ. 1182 00:55:56,150 --> 00:56:00,520 და გვინდა, რომ გარკვეული ღირებულებები, გარკვეული სვეტები 1183 00:56:00,520 --> 00:56:02,600 ტოლია კონკრეტული ღირებულებები. 1184 00:56:02,600 --> 00:56:07,500 ასე რომ, ეს მხოლოდ განაახლებს მაგიდა, იცვლება ღირებულებების რიგები ამ შემთხვევაში. 1185 00:56:07,500 --> 00:56:13,690 ასე რომ ამ ერთი ქვემოთ აქ, ფაქტობრივი მაგალითად, ჩვენ გვაქვს ჩასასმელად ბოდიში. 1186 00:56:13,690 --> 00:56:17,630 რომ slide მოწინავე ჩემს გარეშე ხვდებიან მას. 1187 00:56:17,630 --> 00:56:22,230 >> ასე რომ, ეს განახლებები მაგიდა და col1 თანაბარი to val1, სადაც სახლი უდრის "კურიერი". 1188 00:56:22,230 --> 00:56:25,300 რა ეს არ არის ეს მხოლოდ ცვლის, ეს მხოლოდ 1189 00:56:25,300 --> 00:56:28,130 განახლებები ეს ღირებულებების კონკრეტულ ადგილებში. 1190 00:56:28,130 --> 00:56:32,300 ასე რომ, ეს პირველი, ეს ცვლის ამ ღირებულებების ყველაფერი თქვენი მაგიდა, 1191 00:56:32,300 --> 00:56:32,860 OK? 1192 00:56:32,860 --> 00:56:35,820 ის აპირებს შეცვალოს ეს სვეტი თითოეული შესვლის, 1193 00:56:35,820 --> 00:56:37,020 თითოეული ზედიზედ. 1194 00:56:37,020 --> 00:56:40,840 მაგრამ ეს, სადაც, თქვენ ვერ ვფიქრობ, რომ ეს შესარჩევი. 1195 00:56:40,840 --> 00:56:44,020 ასე რომ, ეს მხოლოდ აპირებს შეცვალოს ეს ძალიან კონკრეტულ ადგილებში. 1196 00:56:44,020 --> 00:56:47,840 ასე რომ, p-შვიდი, როცა იქნებ მხრიდან თანხის ნაღდი 1197 00:56:47,840 --> 00:56:53,050 რომ თქვენი მომხმარებლის ჰქონდა, ალბათ, ჰქონდა ზოგიერთი, სადაც ID ტოლია სხდომა ID, არა? 1198 00:56:53,050 --> 00:56:55,280 >> იმიტომ, რომ თქვენ არ სურს იცვლება თანხის ნაღდი 1199 00:56:55,280 --> 00:56:57,630 ყველა ადამიანმა, ვინც გამოყენებით თქვენი ნახვა. 1200 00:56:57,630 --> 00:57:00,480 თქვენ სურდა შეცვლის ეს ერთი კონკრეტული პირი, რომელიც პირს, 1201 00:57:00,480 --> 00:57:02,410 ვინც იყო გამოყენებით იგი იმ დროს. 1202 00:57:02,410 --> 00:57:04,320 არა? 1203 00:57:04,320 --> 00:57:07,510 OK, ასე რომ ჩადეთ, კულტურა გარკვეული ღირებულებები მაგიდები. 1204 00:57:07,510 --> 00:57:11,650 ეს არის, როგორც, როდესაც თქვენ შექმნა ახალი მომხმარებელი. 1205 00:57:11,650 --> 00:57:14,240 ზოგადი სტრუქტურა აქ არის ჩადეთ რასაც მაგიდა 1206 00:57:14,240 --> 00:57:15,680 ჩვენ ვსაუბრობთ. 1207 00:57:15,680 --> 00:57:18,910 ღირებულებები, როგორც ღირებულებები, რომ ჩვენ რეალურად გვინდა ჩადეთ. 1208 00:57:18,910 --> 00:57:23,060 OK, ასე რომ, როგორც ვხედავთ, აქ, ჩვენ არ ჩადეთ მაგიდასთან. 1209 00:57:23,060 --> 00:57:27,790 ეს არის კონკრეტული სვეტები მათი შეესაბამებოდა ღირებულებებს. 1210 00:57:27,790 --> 00:57:29,940 ასე რომ, ეს ამბობს, კულტურა ახალი ზედიზედ შემცველი 1211 00:57:29,940 --> 00:57:33,660 ღირებულებები val1 და val2 ქვეშ ამ კონკრეტული სვეტები. 1212 00:57:33,660 --> 00:57:39,240 >> იქნებ თქვენ მხოლოდ მინდა, რომ შეავსოთ ნახევარი რამ ამ row. 1213 00:57:39,240 --> 00:57:41,150 სწორედ ეს ნაწილი აქ გაძლევთ გააკეთოთ. 1214 00:57:41,150 --> 00:57:43,280 ეს გაძლევთ რეალურად განსაზღვრავს, თუ რომელი ნაწილი. 1215 00:57:43,280 --> 00:57:44,244 დიახ? 1216 00:57:44,244 --> 00:57:52,150 >> აუდიტორია: შეგიძლიათ მხოლოდ [INAUDIBLE] უჯრედების row [INAUDIBLE]? 1217 00:57:52,150 --> 00:57:55,000 >> ALISON: თუ თქვენ მხოლოდ შეავსოთ გარკვეული ნაწილების თქვენი row, 1218 00:57:55,000 --> 00:57:57,480 დანარჩენი იმ საკნებში მხოლოდ ცარიელი. 1219 00:57:57,480 --> 00:58:02,730 1220 00:58:02,730 --> 00:58:05,660 რადგან თქვენ მათ იყოს ცარიელი, ეს არ არის პრობლემა. 1221 00:58:05,660 --> 00:58:09,570 თუ თქვენ ცდილობენ, რათა შეამოწმონ მათ, დაბრუნებას აპირებს გარკვეული ცარიელი ელემენტს. 1222 00:58:09,570 --> 00:58:13,850 მაგრამ მნიშვნელოვანია, ვიცოდეთ, რომ გარკვეული მაგიდები, 1223 00:58:13,850 --> 00:58:16,690 ისინი არ უნდა მიეცეს საშუალება იყოს null. 1224 00:58:16,690 --> 00:58:18,890 თქვენ შეიძლება არ გადაეყარონ პრობლემა დროს თქვენი p-set 1225 00:58:18,890 --> 00:58:21,320 იმიტომ, რომ ჩვენ არ დავუშვებთ, რომ რომელიმე თქვენი ღირებულებები იყოს null. 1226 00:58:21,320 --> 00:58:26,110 მაგრამ თქვენ შეგიძლიათ მიუთითოთ სურვილისამებრ მნიშვნელობა თქვენს მაგიდასთან. 1227 00:58:26,110 --> 00:58:29,640 >> OK, აირჩიეთ, ასე რომ ეს არის უბრალოდ გზა 1228 00:58:29,640 --> 00:58:33,790 კონკრეტული მონაცემები მაგიდაზე ზოგიერთი იდენტიფიკატორი, რომელიც გსურთ. 1229 00:58:33,790 --> 00:58:37,990 ასე select ვარსკვლავი მაგიდასთან, სადაც col უდრის რაღაც მხოლოდ იმას ნიშნავს, 1230 00:58:37,990 --> 00:58:43,820 მომეცი ყველა მონაცემი დაკავშირებული სადაც ეს კონკრეტული სვეტი არის ჭეშმარიტი. 1231 00:58:43,820 --> 00:58:49,020 ასე რომ ვარსკვლავი ამ საქმეს დაბრუნდეს მთელი რიგი, რომ თქვენ, OK? 1232 00:58:49,020 --> 00:58:54,880 >> და შემდეგ, ამ შემთხვევაში, შეარჩიეთ ვარსკვლავი მაგიდა მხოლოდ გაძლევთ მთელი მაგიდა. 1233 00:58:54,880 --> 00:58:58,940 და მაშინ, წაშლის, რა თქმა უნდა, ეს მხოლოდ წაშლის row მაგიდასთან. 1234 00:58:58,940 --> 00:59:01,320 ასე წაშლა მაგიდა, რასაც მაგიდასთან ჩვენ 1235 00:59:01,320 --> 00:59:06,830 მითითება, სადაც რამდენიმე კონკრეტული იდენტიფიკატორი ან რაღაც პირობა არის ჭეშმარიტი. 1236 00:59:06,830 --> 00:59:07,720 დიახ? 1237 00:59:07,720 --> 00:59:08,700 >> აუდიტორია: კითხვა. 1238 00:59:08,700 --> 00:59:10,699 რატომ გამოყენებით ორმაგი შეთავაზებები, და თუ 1239 00:59:10,699 --> 00:59:13,600 გავაკეთოთ ორმაგი ბრჭყალები ან ერთი შეთავაზებები, იგი განსხვავებას? 1240 00:59:13,600 --> 00:59:18,235 >> ALISON: Double შეთავაზება ან ერთჯერადი შეთავაზებები არ მიიღოს განსხვავება SQL. 1241 00:59:18,235 --> 00:59:19,610 ვფიქრობდი, ვნახე კიდევ ერთი შეკითხვა. 1242 00:59:19,610 --> 00:59:20,814 დიახ? 1243 00:59:20,814 --> 00:59:25,070 >> აუდიტორია: არ იმოქმედებს რა იღებს გაიქცა პასუხების შემთხვევაში? 1244 00:59:25,070 --> 00:59:27,945 >> ALISON: Rob? 1245 00:59:27,945 --> 00:59:31,410 >> ROB: რას გულისხმობთ გაიქცა პასუხების შემთხვევაში? 1246 00:59:31,410 --> 00:59:36,870 >> აუდიტორია: თუ ვინმეს აქვს ერთ შეკითხვაზე სახით of-- 1247 00:59:36,870 --> 00:59:39,862 >> ROB: თუ ვინმე იყო ბოლო ერთი გაცემა, 1248 00:59:39,862 --> 00:59:43,560 შემდეგ, რადგან თქვენ სანიტარია თქვენი input, მაშინ მნიშვნელობა არ აქვს. 1249 00:59:43,560 --> 00:59:46,205 მაგრამ თუ თქვენ იყენებთ ერთი პასუხის და თქვენ არასწორად 1250 00:59:46,205 --> 00:59:47,914 აფარებს თქვენი პორტები, შემდეგ კი, მათ უნდა 1251 00:59:47,914 --> 00:59:51,079 იმისათვის, რომ ერთი გაცემა, რათა დაარღვიოს თქვენი კოდი. თუ თქვენ იყენებთ ორმაგი შეთავაზებები, 1252 00:59:51,079 --> 00:59:53,580 მათ უნდა დააყენოს ორმაგი ციტირებით დაარღვიოს თქვენი კოდი. 1253 00:59:53,580 --> 00:59:56,163 მაგრამ რადგან თქვენ გაქცევა რამ სწორად, მას არ აქვს. 1254 00:59:56,163 --> 00:59:59,220 ის უბრალოდ უნდა თარგმნა სწორი სიმბოლო მაინც. 1255 00:59:59,220 --> 01:00:02,332 >> აუდიტორია: რას გაქცევის ნიშნავს? 1256 01:00:02,332 --> 01:00:04,040 ALISON: ისე, როგორც სანიტარია და გაქცევის. 1257 01:00:04,040 --> 01:00:06,810 1258 01:00:06,810 --> 01:00:13,820 გამოცდა რომ ჩვენ, დიდი xkcd კომიკური, რომ ისინი დახევის up, სადაც თქვენ უნდა, 1259 01:00:13,820 --> 01:00:15,629 oh-- 1260 01:00:15,629 --> 01:00:16,670 ROB: ეს ბოლო slide. 1261 01:00:16,670 --> 01:00:18,500 ALISON: ეს ბოლო slide, მართლა? 1262 01:00:18,500 --> 01:00:20,200 Oh ღმერთი ჩემი. 1263 01:00:20,200 --> 01:00:21,780 იქ წასვლა, სრულყოფილი. 1264 01:00:21,780 --> 01:00:27,900 OK, ასე რომ, ძირითადად, თქვენ შეიძლება მიეცეს რაღაც ამ SQL query 1265 01:00:27,900 --> 01:00:30,560 სადაც იგი არღვევს თქვენი კოდი, ან როგორც დავით აჩვენა 1266 01:00:30,560 --> 01:00:38,460 კლასში, თუ ჩვენ გვაქვს რაღაც ერთი პასუხის 1 უდრის 1 და თუ ჩვენი კოდი, 1267 01:00:38,460 --> 01:00:41,230 ჩვენ უბრალოდ პირდაპირ კოპირება, რომ, და ჩვენ გვაქვს დამთავრებული ერთი გაცემა, 1268 01:00:41,230 --> 01:00:44,740 რა ხდება, მივიღებთ ზოგიერთი სიტყვა, რომელიც 1269 01:00:44,740 --> 01:00:48,680 აფასებს ჭეშმარიტი, რომელიც მოდით ვინმე შევიდეს ჩვენს მონაცემთა ბაზაში 1270 01:00:48,680 --> 01:00:51,720 და მიიღონ მონაცემები, რომ ჩვენ არ მინდა მათ მისაღებად. 1271 01:00:51,720 --> 01:00:54,240 ასე სანიტარია საშუალებებით მხოლოდ იმას ნიშნავს, მიღების დარწმუნებული ვარ, 1272 01:00:54,240 --> 01:00:57,680 რომ ჩვენ აფარებს ამ გმირები და აღმნიშვნელი მათ 1273 01:00:57,680 --> 01:01:01,720 როგორც სიმბოლო და არა რამ რომ დაშვებული უნდა იყოს 1274 01:01:01,720 --> 01:01:04,990 უნდა გავიგოთ როგორც ჩვენი SQL განცხადებაში. 1275 01:01:04,990 --> 01:01:09,980 >> ასე რომ დიდი რამ, რომ ჩვენ ვთქვით, რომ თქვენ ბიჭები უნდა გამოყენებით 1276 01:01:09,980 --> 01:01:13,650 იყო HTML სპეციალური სიმბოლო, რომელიც არის ის, 1277 01:01:13,650 --> 01:01:15,730 რომ დაგვჭირდება შევხედოთ. 1278 01:01:15,730 --> 01:01:17,240 OK, წაშლა. 1279 01:01:17,240 --> 01:01:19,450 მონაცემთა ტიპები, ეს იქნება ყველა ონლაინ რეჟიმში. 1280 01:01:19,450 --> 01:01:23,510 მას შემდეგ, რაც ჩვენ 15-ე წუთზე დატოვა, მე უბრალოდ აპირებს წავიდეს უფლება მეშვეობით. 1281 01:01:23,510 --> 01:01:28,500 PHP და SQL, ძირითადად ეს არის უბრალოდ გვქონდა შეკითხვის ფუნქცია რომ 1282 01:01:28,500 --> 01:01:31,520 დაეხმარა დაიცვას ამ მუქარის თავდასხმები. 1283 01:01:31,520 --> 01:01:33,970 ასე რომ, როდესაც თქვენ იყენებთ შეკითხვაზე, ჩვენ მიღების დარწმუნებული ვარ, 1284 01:01:33,970 --> 01:01:36,560 რომ ყველაფერი შერაცხული და whatnot. 1285 01:01:36,560 --> 01:01:41,070 >> MVC მხოლოდ დიზაინი პარადიგმა, ასე მოდელის, ხედი, კონტროლერი. 1286 01:01:41,070 --> 01:01:44,200 ეს უბრალოდ გზა შენარჩუნება რამ ლამაზი და გაყოფილი up იგივე გზა 1287 01:01:44,200 --> 01:01:47,100 რომ ჩვენ, როგორც წესი, ფაქტორი out კოდი შევიდა ფუნქციები. 1288 01:01:47,100 --> 01:01:53,390 ეს არის მხოლოდ ვებ დიზაინი ფარგლებში რომელიც საშუალებას გაძლევთ გავაკეთოთ იგივე. 1289 01:01:53,390 --> 01:01:54,760 მე ვაპირებ გამოტოვოთ ეს. 1290 01:01:54,760 --> 01:01:58,530 >> ეს არის ის, რაც მე იქნება სუპერ კომფორტული ერთად. 1291 01:01:58,530 --> 01:02:01,132 ეს არის დიდი პატარა მაგიდაზე. 1292 01:02:01,132 --> 01:02:03,090 ეს გაძლევთ ფუნქცია მაგალითად მოდელი. 1293 01:02:03,090 --> 01:02:05,473 მე უბრალოდ აპირებს ამ გზით იმიტომ, რომ მე ნამდვილად გსურთ Davin შეძლებს გაიგო. 1294 01:02:05,473 --> 01:02:07,140 თუ თქვენ გაქვთ რაიმე შეკითხვები, გთხოვთ მოგერიდებათ. 1295 01:02:07,140 --> 01:02:07,931 მე ვიქნები აქ შემდეგ. 1296 01:02:07,931 --> 01:02:10,360 უბრალოდ მოვიდა გაიგო ჩემთვის. 1297 01:02:10,360 --> 01:02:13,380 რომ, ჩვენ გვაქვს HTTP სტატუსის მიხედვით. 1298 01:02:13,380 --> 01:02:16,270 და Davin აპირებს აფეთქება ამ 15 წუთის განმავლობაში. 1299 01:02:16,270 --> 01:02:17,560 ეს იქნება დიდი. 1300 01:02:17,560 --> 01:02:18,893 >> Davin: OK. 1301 01:02:18,893 --> 01:02:20,312 Uh, თქვენი მიკროფონი? 1302 01:02:20,312 --> 01:02:22,210 Yeah. 1303 01:02:22,210 --> 01:02:23,336 უკაცრავად. 1304 01:02:23,336 --> 01:02:24,460 ALISON: Way უნდა იყოს მომზადებული. 1305 01:02:24,460 --> 01:02:25,335 Davin: არა, მე მზად ვარ. 1306 01:02:25,335 --> 01:02:25,860 მე მზად ვარ. 1307 01:02:25,860 --> 01:02:28,790 მოდით ეს. 1308 01:02:28,790 --> 01:02:29,290 ის მზად არის. 1309 01:02:29,290 --> 01:02:30,041 OK. 1310 01:02:30,041 --> 01:02:30,540 უკაცრავად. 1311 01:02:30,540 --> 01:02:31,664 მე დაღვრილი ყავის თავს. 1312 01:02:31,664 --> 01:02:36,037 1313 01:02:36,037 --> 01:02:38,210 მე არ ვიცი, თუ მე უფრო დაარღვიოს, რომ მე სულელური, 1314 01:02:38,210 --> 01:02:40,600 ან, რომ მე არ მაქვს ყავა აღარ. 1315 01:02:40,600 --> 01:02:44,480 ყოველ შემთხვევაში, უბრალოდ სწრაფი განცხადება შესახებ ფურცელი თქვენ ბიჭები გვყავს. 1316 01:02:44,480 --> 01:02:47,994 ასე რომ, ეს ფურცელი თქვენ ბიჭები არ არის ოფიციალური რა არის ვიქტორინა. 1317 01:02:47,994 --> 01:02:49,660 ეს არის ოფიციალური რა არის ვიქტორინა. 1318 01:02:49,660 --> 01:02:52,520 გარდა ამისა, ვებგვერდზე, ჩვენ ვეუბნებით თქვენ, OK, ეს იქნება ვიქტორინა. 1319 01:02:52,520 --> 01:02:55,020 ასე რომ, პატარა cheat ფურცელი თქვენ გაქვთ, არ არის ოფიციალური. 1320 01:02:55,020 --> 01:02:56,690 და არსებობს შეცდომები იგი. 1321 01:02:56,690 --> 01:03:01,490 ასე რომ არ უბრალოდ ბრმად გამოიყენოს იგი. 1322 01:03:01,490 --> 01:03:04,390 ისე ჰო, სწორედ რომ. 1323 01:03:04,390 --> 01:03:05,980 მოდით ამ რეალური სწრაფი. 1324 01:03:05,980 --> 01:03:07,420 >> ასე HTTP სტატუსის მიხედვით. 1325 01:03:07,420 --> 01:03:10,430 რა ხდება, როდესაც ნახვა, ყველაფერი კარგად არის. 1326 01:03:10,430 --> 01:03:11,144 ყველაფერი კარგადაა. 1327 01:03:11,144 --> 01:03:13,310 ყველაფერი ბრუნდება თქვენ გზა გსურთ იგი. 1328 01:03:13,310 --> 01:03:15,370 თქვენ მიიღებთ 200 OK. 1329 01:03:15,370 --> 01:03:19,250 301, სადაც ჩვენ ვხედავთ, რომ 301 ადრე? 1330 01:03:19,250 --> 01:03:20,890 დაველოდოთ, რა ხდება? 1331 01:03:20,890 --> 01:03:23,250 უკაცრავად. 1332 01:03:23,250 --> 01:03:24,980 ჩვენ ვნახეთ i tin ლექცია განმავლობაში უსაფრთხოებას. 1333 01:03:24,980 --> 01:03:30,690 ასე რომ, როდესაც უსაფრთხოების, ასე რომ, თუ David აკრეფილი http და შემდეგ შეეცადა წასვლა cs50.net, 1334 01:03:30,690 --> 01:03:31,940 თქვენ ვაპირებთ, 301 გადავიდა. 1335 01:03:31,940 --> 01:03:32,440 რატომ? 1336 01:03:32,440 --> 01:03:35,570 იმიტომ, რომ ეს ხდება გადამისამართება თქვენ ავტომატურად ჩვენი HTTPS. 1337 01:03:35,570 --> 01:03:38,649 >> ასე 301 გადავიდა, მხოლოდ ის ძირითადად გადამისამართება. 1338 01:03:38,649 --> 01:03:40,190 და შეგიძლიათ ვიფიქროთ მოსწონს ეს. 1339 01:03:40,190 --> 01:03:43,790 ნებისმიერი სტატუსის, რომ იწყება 2, იმ მოსწონს, OK, ყველაფერი კარგადაა. 1340 01:03:43,790 --> 01:03:46,530 ნებისმიერი სტატუსის, რომ დაიწყოს 3, ეს არის გადამისამართება. 1341 01:03:46,530 --> 01:03:49,571 სტატუსები რომ იწყება 4, ანუ არსებობს გარკვეული კლიენტის შეცდომა. 1342 01:03:49,571 --> 01:03:52,440 სტატუსები რომ იწყება 5, რომ ზოგიერთი სახის სერვერზე შეცდომა. 1343 01:03:52,440 --> 01:03:54,680 ასე რომ თქვენ სახის გაწყვეტის სტატუსი იგრძნობა. 1344 01:03:54,680 --> 01:03:59,120 ასე 304 არა არ შეცვლილია, თქვენი server.c p-კომპლექტი, ასე ვთქვათ, 1345 01:03:59,120 --> 01:04:00,600 დატვირთული cat.html. 1346 01:04:00,600 --> 01:04:03,360 ყველაფერი ბრუნდება, თქვენ გაქვთ 200s, OK, დიდი. 1347 01:04:03,360 --> 01:04:04,540 >> ვთქვათ თქვენ განახლება იგი. 1348 01:04:04,540 --> 01:04:07,310 ისე, შიგნით, რომ cat.html, თქვენ გაქვთ JPEG. 1349 01:04:07,310 --> 01:04:09,520 ისე, რომ JPEG არ არის აპირებს მიიღოს Reloaded. 1350 01:04:09,520 --> 01:04:12,140 თქვენ არ აპირებს პოსტი სხვა ოჯახის თხოვნით, სერვერზე, 1351 01:04:12,140 --> 01:04:13,980 და მერე კიდევ, რომ ყველა ინფორმაცია უკან. 1352 01:04:13,980 --> 01:04:17,560 ის აპირებს უბრალოდ be-- რომ სურათი არის იქნება ქეშირებული თქვენი მანქანა. 1353 01:04:17,560 --> 01:04:19,540 და ისე, რომ გამოსახულება იქნება 304. 1354 01:04:19,540 --> 01:04:20,720 ასე რომ, ის არ შეცვლილა. 1355 01:04:20,720 --> 01:04:24,600 თუ მაშინ დახუროს out, ნათელი cookies, და მაშინ ამოცნობა 1356 01:04:24,600 --> 01:04:27,490 და ცდილობენ რომ ჩატვირთვა გვერდი ერთხელ, თქვენ ვაპირებთ, 200s. 1357 01:04:27,490 --> 01:04:28,910 თქვენ არ ვაპირებთ, რომ 304. 1358 01:04:28,910 --> 01:04:32,340 >> 400, ცუდი მოთხოვნით, რეალური სწრაფი, ასე, თუ თქვენ 1359 01:04:32,340 --> 01:04:34,880 მიდიოდნენ გააგზავნოთ JSON ობიექტი სერვერზე 1360 01:04:34,880 --> 01:04:38,090 და თქვენი JSON ობიექტი იყო არასწორი, დაინახავთ რაღაც მსგავსი. 1361 01:04:38,090 --> 01:04:39,000 403, აკრძალულია. 1362 01:04:39,000 --> 01:04:40,330 როდესაც ამას ხედავთ აკრძალული? 1363 01:04:40,330 --> 01:04:41,394 ალბათ ალბათ? 1364 01:04:41,394 --> 01:04:42,060 აუდიტორია: Chmod. 1365 01:04:42,060 --> 01:04:42,950 Davin: Chmod, yeah. 1366 01:04:42,950 --> 01:04:44,730 ასე რომ თქვენ არ აქვს მითითებული ნებართვების სწორად. 1367 01:04:44,730 --> 01:04:45,577 404, არ არის ნაპოვნი. 1368 01:04:45,577 --> 01:04:46,410 ეს უბრალოდ არ არსებობს. 1369 01:04:46,410 --> 01:04:48,670 ასე რომ, თუ თქვენ აკრიფოთ არასწორი URL. 1370 01:04:48,670 --> 01:04:53,500 500, შიდა სერვერზე შეცდომის სერვერზე ალბათ არ კონფიგურაცია სწორად. 1371 01:04:53,500 --> 01:04:56,260 რაღაც არა თქვენი ბოლომდე, მაგრამ რაღაც სერვერის მხარეს. 1372 01:04:56,260 --> 01:04:57,240 და 503? 1373 01:04:57,240 --> 01:04:59,502 ბევრი ადამიანი დაინახა 503s ბოლო p-set. 1374 01:04:59,502 --> 01:05:00,460 როდის იქნება, რომ მოხდეს? 1375 01:05:00,460 --> 01:05:04,180 1376 01:05:04,180 --> 01:05:05,660 გავიგე ჩურჩული. 1377 01:05:05,660 --> 01:05:07,767 >> აუდიტორია: როცა Google გადაწყვეტს თქვენ რობოტი. 1378 01:05:07,767 --> 01:05:10,350 Davin: ჰო, როდესაც Google გადაწყვეტს თქვენ რობოტი, თქვენ 503s. 1379 01:05:10,350 --> 01:05:11,560 ასე რომ, გადატვირთვა. 1380 01:05:11,560 --> 01:05:14,620 თუ თქვენ სთხოვა სერვერზე ძალიან ბევრი, რომ, როგორც წესი, დროებითი. 1381 01:05:14,620 --> 01:05:15,560 და ყველაზე შენიშნა. 1382 01:05:15,560 --> 01:05:16,185 ასე რომ თქვენ დაინახა 503. 1383 01:05:16,185 --> 01:05:19,282 თქვენ ალბათ მიღებული პატარა შესვენების შემდეგ 503s წავიდა, 1384 01:05:19,282 --> 01:05:20,490 და ყველაფერი კარგად იყო. 1385 01:05:20,490 --> 01:05:26,640 >> GABE: Real სწრაფი, როდესაც თქვენ ბიჭები მისაღებად 500 ალბათ, ამ ბოლო პრობლემა კომპლექტი? 1386 01:05:26,640 --> 01:05:27,954 დიახ? 1387 01:05:27,954 --> 01:05:30,906 >> აუდიტორია: ჩვეულებრივ, თუ სერვერზე ფაილი სხვა თემაა 1388 01:05:30,906 --> 01:05:34,650 ან [INAUDIBLE] მათი მანქანა [INAUDIBLE]. 1389 01:05:34,650 --> 01:05:38,870 >> GABE: ასე რომ, ეს შეიძლება იყოს კონფიგურაციის ეს საკითხი თქვენი PHP თქვენს სერვერზე. 1390 01:05:38,870 --> 01:05:42,250 მაგრამ ეს შეიძლება იყოს მხოლოდ ის, როგორიცაა მძიმით, რომ თქვენი დაავიწყდა. 1391 01:05:42,250 --> 01:05:44,130 თუ თქვენ აკრეფით PHP, ზოგიერთი არაზუსტი სინტაქსი 1392 01:05:44,130 --> 01:05:46,000 შესაძლოა თქვენ, ასე რომ. 1393 01:05:46,000 --> 01:05:46,960 OK? 1394 01:05:46,960 --> 01:05:48,610 >> Davin: Cool. 1395 01:05:48,610 --> 01:05:51,180 გსურთ ჩემთვის ამის გაკეთება მხოლოდ წლამდე AJAX? 1396 01:05:51,180 --> 01:05:52,950 >> GABE: [INAUDIBLE]. 1397 01:05:52,950 --> 01:05:53,450 Davin: OK. 1398 01:05:53,450 --> 01:05:54,230 რა არის DOM? 1399 01:05:54,230 --> 01:05:55,290 რას DOM დავდგეთ? 1400 01:05:55,290 --> 01:05:56,990 >> აუდიტორია: დოკუმენტი ობიექტის მოდელი. 1401 01:05:56,990 --> 01:05:57,490 Davin: Nice. 1402 01:05:57,490 --> 01:06:00,775 და რატომ მომწონს? 1403 01:06:00,775 --> 01:06:02,670 გასაოცარია. 1404 01:06:02,670 --> 01:06:06,651 უფლება, ასე რომ, ეს უბრალოდ გვაძლევს საშუალებას ხელმისაწვდომობის HTML, იხილოთ ჩვენი გვერდი ძალიან სწრაფად. 1405 01:06:06,651 --> 01:06:07,150 რატომ? 1406 01:06:07,150 --> 01:06:09,980 იმიტომ, რომ ჩვენ სამკურნალოდ ჩვენი გვერდი, მკურნალობის ჩვენი HTML tags, 1407 01:06:09,980 --> 01:06:11,730 მკურნალობის ყველაფერი თითქოს ისინი ობიექტები. 1408 01:06:11,730 --> 01:06:13,710 თუ ჩვენ სამკურნალოდ მათ, როგორც ისინი ობიექტები, მაშინ რა ვქნათ? 1409 01:06:13,710 --> 01:06:15,210 ასევე, ჩვენ შეგვიძლია მოვუწოდებთ ფუნქციები მათ. 1410 01:06:15,210 --> 01:06:16,460 და ეს მნიშვნელოვანია, რატომ? 1411 01:06:16,460 --> 01:06:19,200 კარგად, იმიტომ, რომ ჩვენ ვაპირებთ გამოვიყენოთ JavaScript განაახლოს ჩვენი HTML, 1412 01:06:19,200 --> 01:06:20,500 განახლება ამ ობიექტების. 1413 01:06:20,500 --> 01:06:23,869 ასე რომ, თუ ჩვენ მკურნალობა, მათ როგორც ობიექტები ჩვენ შეგვიძლია მაშინ მოვუწოდებთ ფუნქციები მათ. 1414 01:06:23,869 --> 01:06:26,660 მე ვაპირებ შეღწევას ამ პატარა უფრო მაშინ, როდესაც მე წასვლას JavaScript, 1415 01:06:26,660 --> 01:06:30,510 მაგრამ თქვენ ყველა მინახავს, ​​როგორიცაა document.getElementByID. 1416 01:06:30,510 --> 01:06:32,870 ასე რომ დოკუმენტი არის თქვენი ელემენტს, მიიღოს ელემენტს ით, 1417 01:06:32,870 --> 01:06:35,087 ასე რომ თქვენ ვაპირებთ შევხედოთ ზოგიერთი ID in HTML tag. 1418 01:06:35,087 --> 01:06:36,920 და შემდეგ, შეგიძლიათ გააკეთოთ რაღაც რომ. 1419 01:06:36,920 --> 01:06:40,089 მაგალითად, როგორიცაა document.body, მაშინ შეგიძლიათ დამატება ბავშვი. 1420 01:06:40,089 --> 01:06:41,630 ასე რომ, თქვენ აპირებს იპოვოს დოკუმენტი. 1421 01:06:41,630 --> 01:06:42,340 თქვენ გაქვთ დოკუმენტი. 1422 01:06:42,340 --> 01:06:43,629 თქვენ აპირებს იპოვოს ორგანო. 1423 01:06:43,629 --> 01:06:44,420 თქვენ ცხედარი. 1424 01:06:44,420 --> 01:06:46,545 და შემდეგ, თქვენ აპირებს მოვუწოდებ ზოგიერთი ფუნქცია იგი. 1425 01:06:46,545 --> 01:06:50,312 ასე დამატება შვილი, და თქვენ შეგიძლიათ დამატება ზოგიერთი HTML გადატანა ბოლომდე შიგნით თქვენი სხეულის. 1426 01:06:50,312 --> 01:06:52,520 ასე რომ, ძირითადად, თქვენ მხოლოდ მკურნალობის ეს როგორც ობიექტი. 1427 01:06:52,520 --> 01:06:54,515 თქვენ სამკურნალოდ HTML tags, როგორც ობიექტი. 1428 01:06:54,515 --> 01:06:57,071 და ეს ხდის ძალიან მარტივია და სწრაფი გავლა მათ. 1429 01:06:57,071 --> 01:06:59,070 მაგრამ ეს ასევე საშუალებას გაძლევთ მოვუწოდებთ ფუნქციები მათ 1430 01:06:59,070 --> 01:07:04,410 ასე რომ თქვენ შეგიძლიათ მანიპულირება და შეცვლის ელემენტები. 1431 01:07:04,410 --> 01:07:10,162 >> GABE: აქედან გამომდინარე, რატომ არის JavaScript ასეთი ლამაზი ენის ურთიერთქმედება HTML? 1432 01:07:10,162 --> 01:07:12,870 შანსები, როდესაც ადამიანი არჩევის ენის ბრაუზერი, 1433 01:07:12,870 --> 01:07:14,990 კლიენტის მხარეს, JavaScript მართლაც ლამაზი, 1434 01:07:14,990 --> 01:07:16,765 ეს მართლაც კარგად გატარება ობიექტები. 1435 01:07:16,765 --> 01:07:20,620 და ობიექტების ტიპის მოსწონს ობიექტი, რომელიც, როგორც ჩანს, HTML, 1436 01:07:20,620 --> 01:07:23,940 ასე რომ, ეს ძალიან ადვილია, JavaScript უნდა გავაკეთოთ, რომ სახის დამუშავება. 1437 01:07:23,940 --> 01:07:24,440 Davin: Nice. 1438 01:07:24,440 --> 01:07:25,670 ასე რომ, აქ მხოლოდ მაგალითია. 1439 01:07:25,670 --> 01:07:29,020 ასე რომ, მე ვფიქრობ, რომ გასული წლის ვიქტორინა, ან იქნებ ორი წლის წინ, ჩვენ 1440 01:07:29,020 --> 01:07:30,840 გთხოვეთ, რათა შეიქმნას ხე. 1441 01:07:30,840 --> 01:07:32,660 ასე რომ, ეს არის ზუსტად ის, რაც თქვენ მინდა გააკეთოს. 1442 01:07:32,660 --> 01:07:34,255 ასე რომ თქვენ დაიწყოს ერთად დოკუმენტი. 1443 01:07:34,255 --> 01:07:36,130 და მაშინ ძირითადად შევჩერდეთ tags. 1444 01:07:36,130 --> 01:07:38,100 ასე რომ, თუ გადავხედავთ, ჩვენ იწყება HTML tag. 1445 01:07:38,100 --> 01:07:41,660 და შემდეგ, თქვენ clues, თუ როგორ უნდა ამისათვის ეფუძნება წანაცვლება. 1446 01:07:41,660 --> 01:07:43,870 ასე ხელმძღვანელი სახის ფილიალი off. 1447 01:07:43,870 --> 01:07:46,242 შიგნით ხელმძღვანელი, ჩვენ გვაქვს სხვა tag სათაური. 1448 01:07:46,242 --> 01:07:47,450 ასე რომ, ჩვენ გვაქვს ტიტული აქვს. 1449 01:07:47,450 --> 01:07:49,760 და შიგნით რომ, ჩვენ გვაქვს გარკვეული სიმებიანი. 1450 01:07:49,760 --> 01:07:52,210 ასე რომ, ჩვენ წარმოადგენს სიმებიანი წრეში. 1451 01:07:52,210 --> 01:07:54,010 და ყველა ტეგები მოედნებზე. 1452 01:07:54,010 --> 01:07:56,270 >> და თუ გადავხედავთ, თუ ჩვენ ვფიქრობ ეს ხე, 1453 01:07:56,270 --> 01:07:58,730 და ვთქვათ, რომ HTML არის მშობელი, მაშინ ხელმძღვანელი და სხეულის 1454 01:07:58,730 --> 01:07:59,772 ვაპირებთ, რომ ძმა. 1455 01:07:59,772 --> 01:08:01,813 ისინი ორივე იქნება შვილები რომ მშობელი. 1456 01:08:01,813 --> 01:08:03,620 ასე იმიტომ, რომ ისინი ორივე ძმა, ისინი 1457 01:08:03,620 --> 01:08:06,590 იქნება სახის შემდეგი ერთმანეთს ჩვენი ხე მოდელი. 1458 01:08:06,590 --> 01:08:08,590 და შემდეგ, თქვენ ძირითადად გააკეთოს ზუსტად იგივე რამ. 1459 01:08:08,590 --> 01:08:13,512 ასე არ არის რთული, მაგრამ ჩვენ ვთხოვეთ კითხვები, როგორც ეს ადრე ვიქტორინა. 1460 01:08:13,512 --> 01:08:15,220 GABE: ვინმეს აქვს გაქვთ შეკითხვები აქამდე? 1461 01:08:15,220 --> 01:08:16,357 არის კარგი? 1462 01:08:16,357 --> 01:08:16,856 Davin: Cool. 1463 01:08:16,856 --> 01:08:19,630 1464 01:08:19,630 --> 01:08:21,600 JavaScript, OK, კარგი პერსონალი. 1465 01:08:21,600 --> 01:08:24,069 ასე JavaScript, რა არის JavaScript? 1466 01:08:24,069 --> 01:08:28,370 ასევე, JavaScript is-- ეს რთული, მაგრამ ეს 1467 01:08:28,370 --> 01:08:30,727 ზოგიერთი მაჩვენებლები რომ თქვენ უნდა გვახსოვდეს. 1468 01:08:30,727 --> 01:08:31,810 პირველი, ის თავისუფლად აკრეფილი. 1469 01:08:31,810 --> 01:08:33,529 რას ნიშნავს ეს? 1470 01:08:33,529 --> 01:08:35,596 ასე PHP was-- yeah, რა ხდება? 1471 01:08:35,596 --> 01:08:39,854 >> აუდიტორია: თქვენ არ უნდა პირდაპირ სახელმწიფო რა ტიპის ცვლადი ეს. 1472 01:08:39,854 --> 01:08:40,479 Davin: Perfect. 1473 01:08:40,479 --> 01:08:43,270 ასე რომ, მან განაცხადა, რომ თქვენ არ უნდა მკაფიოდ განვაცხადო ტიპის ცვლადი. 1474 01:08:43,270 --> 01:08:44,160 სწორედ უფლება. 1475 01:08:44,160 --> 01:08:49,700 ასე რომ, C, თითქოს მე int i უდრის 50, მაშინ PHP, ის ისევე, $ i, 1476 01:08:49,700 --> 01:08:50,550 შეადგენს 50. 1477 01:08:50,550 --> 01:08:54,319 მაშინ JavaScript, რა იქნებოდა ზარი იყოს? 1478 01:08:54,319 --> 01:08:55,260 Var, არა? 1479 01:08:55,260 --> 01:08:56,566 ეს მინდა იყოს var i უდრის 50. 1480 01:08:56,566 --> 01:08:58,649 მაგრამ თქვენ არ უნდა იყოს როგორიცაა, OK, ეს არის int. 1481 01:08:58,649 --> 01:09:00,350 OK, ეს არის ტექსტი. 1482 01:09:00,350 --> 01:09:01,731 არ უნდა გავაკეთოთ, რომ. 1483 01:09:01,731 --> 01:09:02,939 ეს ინტერპრეტირებული ენა. 1484 01:09:02,939 --> 01:09:04,904 ასე რომ, რას ნიშნავს? 1485 01:09:04,904 --> 01:09:06,340 >> აუდიტორია: არ შედგენილი. 1486 01:09:06,340 --> 01:09:10,470 >> Davin: რა არ არის შედგენილი ნიშნავს? 1487 01:09:10,470 --> 01:09:11,392 ჰო? 1488 01:09:11,392 --> 01:09:15,336 >> აუდიტორია: თქვენ არ გაქვთ რესტრუქტურიზაცია კოდი 1489 01:09:15,336 --> 01:09:18,294 მიიღოს იგი მზად კომპიუტერული გაუშვით. 1490 01:09:18,294 --> 01:09:23,144 ის მხოლოდ მიღებული დროს აღსრულება და კომპიუტერული [INAUDIBLE]. 1491 01:09:23,144 --> 01:09:25,560 Davin: ჰო, ის აპირებს გადის თარჯიმანი. 1492 01:09:25,560 --> 01:09:26,750 მაგრამ თქვენ სწორედ. 1493 01:09:26,750 --> 01:09:28,319 ასე რომ თქვენ არასოდეს არ აპირებს კომპილირება, არა? 1494 01:09:28,319 --> 01:09:30,399 როდესაც აკეთებს თქვენი PHP და JavaScript კოდი, 1495 01:09:30,399 --> 01:09:31,365 არასდროს მოუწოდა კომპილირების. 1496 01:09:31,365 --> 01:09:33,779 არასდროს მოუწოდა რაღაც მიიღოს ან რამე მსგავსი. 1497 01:09:33,779 --> 01:09:34,800 ეს იმიტომ, რომ ის ინტერპრეტაცია. 1498 01:09:34,800 --> 01:09:37,319 ამიტომ ყოველ ჯერზე იგი გადის ბრაუზერი, იგი გადის თარჯიმანი. 1499 01:09:37,319 --> 01:09:40,370 და რომ აპირებს ინტერპრეტაცია მხოლოდ რეალურ დროში დაუყოვნებლივ თქვენთვის. 1500 01:09:40,370 --> 01:09:43,770 რა არის ზოგიერთი დადებითი და უარყოფით მქონე ინტერპრეტირებული ენა 1501 01:09:43,770 --> 01:09:45,258 და რომელსაც შედგენილი ენაზე? 1502 01:09:45,258 --> 01:09:48,240 1503 01:09:48,240 --> 01:09:50,540 ასე compiling-- yeah, რა ხდება? 1504 01:09:50,540 --> 01:09:52,444 >> აუდიტორია: ინტერპრეტაცია არის ნელი. 1505 01:09:52,444 --> 01:09:53,319 Davin: რა გაგებით? 1506 01:09:53,319 --> 01:09:57,167 1507 01:09:57,167 --> 01:09:59,091 >> აუდიტორია: მას შემდეგ, რაც თქვენ შედგენა, თქვენ არ გაქვთ 1508 01:09:59,091 --> 01:10:04,400 გავაკეთოთ ნებისმიერი დამატებითი ნაბიჯები, რათა შეასრულოს ის, ხოლო ამ [INAUDIBLE]. 1509 01:10:04,400 --> 01:10:05,570 >> Davin: მარჯვენა, სრულყოფილი. 1510 01:10:05,570 --> 01:10:08,386 ასე, რას ამბობს არის ძირითადად, შედგენა, 1511 01:10:08,386 --> 01:10:10,760 როდესაც თქვენ შედგენის, თქვენ გაქვთ ბევრი upfront ხარჯები, არა? 1512 01:10:10,760 --> 01:10:11,760 თქვენ აპირებს კომპილირება. 1513 01:10:11,760 --> 01:10:13,750 მაგრამ მას შემდეგ, თქვენ კომპილირება, შემდგენელი აპირებს ოპტიმიზაცია. 1514 01:10:13,750 --> 01:10:14,840 ეს იქნება სწრაფი. 1515 01:10:14,840 --> 01:10:16,170 ის აპირებს ძირითადად იყოს, როგორც სწრაფად, როგორც ეს შეიძლება იყოს. 1516 01:10:16,170 --> 01:10:18,830 წერით, თქვენ არასდროს აქვს, რომ upfront ღირებულება. 1517 01:10:18,830 --> 01:10:22,260 პირიქით, ეს იქნება ოდნავ ნელა ყოველ დროს, თქვენ ინტერპრეტაცია. 1518 01:10:22,260 --> 01:10:24,940 და თქვენ აპირებთ უნდა ინტერპრეტაცია თითოეული დრო. 1519 01:10:24,940 --> 01:10:27,114 ასე ნაცვლად, რომელმაც ამ ერთ დროს ღირებულება, ახლა თქვენ 1520 01:10:27,114 --> 01:10:29,530 აპირებთ უნდა ინტერპრეტაცია ყოველი გვერდი უწევს. 1521 01:10:29,530 --> 01:10:31,890 >> ასე interpreters არის კარგი, რადგან თქვენ არ გაქვთ მისი კომპილირება, 1522 01:10:31,890 --> 01:10:33,980 მაგრამ ისინი ცუდი, რომ ყველა ახლა გვერდი იტვირთება, ეს 1523 01:10:33,980 --> 01:10:35,771 აპირებთ უნდა ინტერპრეტაცია ამ JavaScript. 1524 01:10:35,771 --> 01:10:40,520 და ის აპირებს, რომ აწარმოებს ოდნავ ნელა ვიდრე თუ იყო კომპილირება. 1525 01:10:40,520 --> 01:10:43,044 გაძლევთ საშუალებას communicate-- oh, დაველოდოთ. 1526 01:10:43,044 --> 01:10:44,960 გამოიყენება მანიპულირება შინაარსი და გამოჩენა. 1527 01:10:44,960 --> 01:10:46,043 ჩვენ უბრალოდ საუბრობდა. 1528 01:10:46,043 --> 01:10:47,250 იგი იყენებს DOM. 1529 01:10:47,250 --> 01:10:49,930 AJAX, ჩვენ შეღწევას AJAX ცოტა. 1530 01:10:49,930 --> 01:10:51,520 და მაშინ, კლიენტის მხარეს. 1531 01:10:51,520 --> 01:10:53,110 ასე PHP არის სერვერის მხარეს. 1532 01:10:53,110 --> 01:10:54,360 JavaScript არის კლიენტის მხარეს. 1533 01:10:54,360 --> 01:10:57,780 რა დადებითი, რომ? 1534 01:10:57,780 --> 01:10:58,280 ის ამბობს, რომ. 1535 01:10:58,280 --> 01:11:01,480 1536 01:11:01,480 --> 01:11:02,780 ეს უფრო სწრაფად, არა? 1537 01:11:02,780 --> 01:11:05,282 იმიტომ, რომ თქვენ არ აქვს, რომელთა მიზანია, რომ ეს სწრაფად. 1538 01:11:05,282 --> 01:11:07,490 თქვენ არ გაქვთ კომუნიკაცია ზოგიერთი სხვა მოწყობილობა. 1539 01:11:07,490 --> 01:11:08,790 თუ თქვენ მხოლოდ თქვენი კლიენტს, რომ თქვენ არასოდეს 1540 01:11:08,790 --> 01:11:11,280 აპირებთ უნდა წავიდეს და ვნახოთ, რა არის სერვერზე 1541 01:11:11,280 --> 01:11:13,150 და მხოლოდ ამის შემდეგ ან რამე მაგდაგვარს. 1542 01:11:13,150 --> 01:11:15,410 ასე კლიენტის მხარეს ტენდენცია იყოს ცოტა უფრო სწრაფად. 1543 01:11:15,410 --> 01:11:17,910 >> GABE: ჰო, მაგრამ ეს არ ნიშნავს, PHP არის 1544 01:11:17,910 --> 01:11:20,440 უფრო სწრაფად, ვიდრე JavaScript ან არაფერი მოსწონს. 1545 01:11:20,440 --> 01:11:23,270 ისინი აწარმოებს სახის იგივე სიჩქარე, რადგან ისინი ორივე 1546 01:11:23,270 --> 01:11:24,490 ინტერპრეტირებული ენებზე. 1547 01:11:24,490 --> 01:11:26,680 საქმე იმაშია, რომ ნელი აქ არის მოთხოვნა. 1548 01:11:26,680 --> 01:11:28,870 ასე რომ თქვენ რეალურად აპირებს ყველა გზა ბრაზილიაში 1549 01:11:28,870 --> 01:11:31,460 მიიღონ გარკვეული ინფორმაცია რომ ცხოვრობს. 1550 01:11:31,460 --> 01:11:34,590 მაგრამ PHP და JavaScript, ისინი სახის აწარმოებს იგივე სიჩქარე. 1551 01:11:34,590 --> 01:11:37,930 ეს არ არის, რომ ერთი სწრაფად, ვიდრე სხვა. 1552 01:11:37,930 --> 01:11:40,600 ეს, ასევე, შეასრულა კითხვა აქ. 1553 01:11:40,600 --> 01:11:47,338 ასე JavaScript არასოდეს გახდება მანქანა კოდი, ჭეშმარიტი ან მცდარი? 1554 01:11:47,338 --> 01:11:48,590 >> აუდიტორია: False. 1555 01:11:48,590 --> 01:11:49,090 GABE: False. 1556 01:11:49,090 --> 01:11:51,298 მას აქვს გახდეს მანქანა კოდი რადგან მანქანა კოდი არის 1557 01:11:51,298 --> 01:11:53,210 ერთადერთი, რაც მანქანა ესმის. 1558 01:11:53,210 --> 01:11:55,800 მიუხედავად იმისა, რომ ეს არ არის შედგენილი, ეს ჯერ კიდევ ხდება მანქანა კოდი 1559 01:11:55,800 --> 01:11:59,120 იმის გამო, რომ თარჯიმანი მხოლოდ პროგრამა, რომელიც მიდის ხაზს 1560 01:11:59,120 --> 01:12:02,170 და გარდაქმნას, რომ ხაზი რაღაც კომპიუტერი ესმის. 1561 01:12:02,170 --> 01:12:02,825 OK? 1562 01:12:02,825 --> 01:12:03,325 მაგარი. 1563 01:12:03,325 --> 01:12:08,530 1564 01:12:08,530 --> 01:12:12,890 >> Davin: აქ არის ძალიან ძირითადი hello world JavaScript პროგრამა. 1565 01:12:12,890 --> 01:12:15,590 ასე რომ, მე არ ვიცი, if-- ვნახე ეს. 1566 01:12:15,590 --> 01:12:17,630 მაგრამ თქვენ უბრალოდ უნდა HTML აქ. 1567 01:12:17,630 --> 01:12:21,020 და ნაცვლად რეალურად აყენებს JavaScript სკრიპტი tags, 1568 01:12:21,020 --> 01:12:22,810 ისე ნეტავ ჩვეულებრივ დააყენოს ის ხელმძღვანელი. 1569 01:12:22,810 --> 01:12:24,030 თქვენ უნდა script tags. 1570 01:12:24,030 --> 01:12:24,870 თქვენ ჩამოაგდეს ის არსებობს. 1571 01:12:24,870 --> 01:12:28,350 ყველა ჩვენ გავაკეთეთ აქ ჩვენ უკავშირდება in-- ასე რომ, ჩვენ უკავშირდება JavaScript ფაილი 1572 01:12:28,350 --> 01:12:29,137 მოსწონს ეს. 1573 01:12:29,137 --> 01:12:30,470 და თქვენ ყველა გაკეთდეს, არა? 1574 01:12:30,470 --> 01:12:34,740 ასე რომ, როდესაც თქვენ იყენებთ jQuery და underscore.js ბოლო p-set, 1575 01:12:34,740 --> 01:12:38,700 თქვენ არ გაქვთ ტონა კოდი მდე თქვენი script tags, up თქვენს ხელმძღვანელი. 1576 01:12:38,700 --> 01:12:41,415 თქვენ შეიძლება ამის გაკეთება, მაგრამ ნაცვლად თქვენ უბრალოდ აკავშირებს მას. 1577 01:12:41,415 --> 01:12:43,540 და თქვენ აკავშირებს მას ისევე, როგორც თქვენ CSS. 1578 01:12:43,540 --> 01:12:50,186 ასე რომ, ეს უბრალოდ ხდის ადვილია წაკითხვის ასე თქვენი კოდი არ მომწონს 1,000 ხაზები ხანგრძლივი 1579 01:12:50,186 --> 01:12:52,310 ტონა ფუნქციები, რომელიც თქვენ შეიძლება არ იყოს გამოყენებით. 1580 01:12:52,310 --> 01:12:53,518 >> ნაცვლად, უბრალოდ დაუკავშირონ ის. 1581 01:12:53,518 --> 01:12:55,050 ეს compartmentalizes იგი. 1582 01:12:55,050 --> 01:13:00,110 ეს იგივეა, რომ წერა რამდენიმე header ფაილი, და მაშინ მათ, რომ header ფაილი C. 1583 01:13:00,110 --> 01:13:01,620 ვფიქრობ, რომ ეს უბრალოდ მოსწონს ეს. 1584 01:13:01,620 --> 01:13:02,680 ასე რომ, რას გააკეთებს? 1585 01:13:02,680 --> 01:13:04,560 ასევე, ამ აპირებს. 1586 01:13:04,560 --> 01:13:05,410 ის აპირებს გაფრთხილება. 1587 01:13:05,410 --> 01:13:08,020 ასე რომ თქვენ აპირებთ მისაღებად პატარა პოპ up მოუწოდა hello მსოფლიოში. 1588 01:13:08,020 --> 01:13:11,420 სწრაფი კითხვა, მხოლოდ საღი აზრის შემოწმება, ასე რომ თქვენ აქ ორგანო, 1589 01:13:11,420 --> 01:13:13,160 ამბობენ, ორგანო, HTML აქ. 1590 01:13:13,160 --> 01:13:14,080 რა მოდის პირველი? 1591 01:13:14,080 --> 01:13:16,864 ვხედავ, ორგანო, HTML აქ, ან მე ვერ ვხედავ alert პირველი? 1592 01:13:16,864 --> 01:13:19,828 1593 01:13:19,828 --> 01:13:20,820 >> აუდიტორია: Alert. 1594 01:13:20,820 --> 01:13:21,470 >> Davin: Right. 1595 01:13:21,470 --> 01:13:22,110 ის ამბობს alert. 1596 01:13:22,110 --> 01:13:22,610 რატომ? 1597 01:13:22,610 --> 01:13:24,470 >> აუდიტორია: იმიტომ, რომ თქვენ გადასვლა ზემოდან. 1598 01:13:24,470 --> 01:13:25,600 >> Davin: დიახ. 1599 01:13:25,600 --> 01:13:26,100 სრულყოფილი. 1600 01:13:26,100 --> 01:13:29,207 ასე ამბობს, მიდიხარ ზემოდან ბოლოში, რომელიც არის აბსოლუტურად სწორი. 1601 01:13:29,207 --> 01:13:30,790 თქვენ ვაპირებთ წავიდეთ ზემოდან უნდა ბოლოში. 1602 01:13:30,790 --> 01:13:34,790 და JavaScript, jQuery, თქვენ გაქვთ ფუნქცია, რომელიც იგივეა onload, ან მზად არის, 1603 01:13:34,790 --> 01:13:38,030 და რომ ამბობს, OK, დაველოდოთ ყველა ამ HTML დატვირთული. 1604 01:13:38,030 --> 01:13:39,580 და მაშინ, მოვუწოდებთ JavaScript. 1605 01:13:39,580 --> 01:13:42,190 იმიტომ, რომ ჩვენ არ გვაქვს, რომ აქ, ძალიან პირველი რაც მოხდება 1606 01:13:42,190 --> 01:13:43,920 არის ის აპირებს წავიდეს ზემოდან უნდა ბოლოში. 1607 01:13:43,920 --> 01:13:46,310 ის აპირებს მოხვდა, რომ სს მოვუწოდებთ, ის აპირებს პირთა. 1608 01:13:46,310 --> 01:13:49,510 ამის შემდეგ ვაწვებით OK, რომ alert მიდის. 1609 01:13:49,510 --> 01:13:53,600 შემდეგ ის აპირებს აჩვენებს თქვენ სხეულის HTML აქ. 1610 01:13:53,600 --> 01:13:54,590 ლამაზი. 1611 01:13:54,590 --> 01:14:00,880 >> OK, ასე რომ მხოლოდ რეალური სწრაფი, წერა in JavaScript არის სუპერ სწრაფი. 1612 01:14:00,880 --> 01:14:02,710 რათა განაცხადოს ცვლადი, var სახელი. 1613 01:14:02,710 --> 01:14:07,070 ასე რომ, C, თქვენ გაქვთ int i, თქვენ უნდა განაცხადოს რა სახის ტიპის ეს. 1614 01:14:07,070 --> 01:14:08,040 PHP, $. 1615 01:14:08,040 --> 01:14:08,755 JavaScript, var. 1616 01:14:08,755 --> 01:14:09,630 ჩვენ ვისაუბრეთ ამ. 1617 01:14:09,630 --> 01:14:11,020 ყველა უფლება, მოდით წავიდეთ. 1618 01:14:11,020 --> 01:14:12,510 >> მარყუჟების, იგივე. 1619 01:14:12,510 --> 01:14:14,230 იგივე. 1620 01:14:14,230 --> 01:14:18,165 ფუნქცია დეკლარაციების, ასე ისევე, როგორც თქვენ ვნახეთ C. 1621 01:14:18,165 --> 01:14:21,290 ერთადერთი განსხვავებული ასე რომ, როდესაც თქვენ გაქვთ სხვა პროგრამირების ენები, 1622 01:14:21,290 --> 01:14:24,780 ასე, როდესაც თქვენ მიიღოს 51 შემდეგი სემესტრში და თქვენ აკეთებთ OCaml, 1623 01:14:24,780 --> 01:14:26,690 თქვენ შეგიძლიათ გაუმკლავდეთ ანონიმური ფუნქციები. 1624 01:14:26,690 --> 01:14:28,240 ასე რომ, ეს არის ზუსტად ის, რაც თქვენ აქ. 1625 01:14:28,240 --> 01:14:31,560 ასე რომ გსურთ დააყენა თანხა, გარკვეული სახის თანხა ღირებულება. 1626 01:14:31,560 --> 01:14:33,870 მაგრამ თქვენ შეიძლება მხოლოდ უნდა ამის გაკეთება ერთ დროს. 1627 01:14:33,870 --> 01:14:37,310 ასე რომ თქვენ არ გსურთ ეძახით ფუნქცია თანხა, რათა ეს ფუნქცია დეკლარაცია. 1628 01:14:37,310 --> 01:14:39,830 ნაცვლად, უბრალოდ გამოყენება როგორც ანონიმური ფუნქცია. 1629 01:14:39,830 --> 01:14:42,469 და ვნახე ეს ბევრი. 1630 01:14:42,469 --> 01:14:44,510 თქვენ ხედავთ, მაგალითად ამ რამდენიმე სლაიდები. 1631 01:14:44,510 --> 01:14:45,597 ჰო, ჩვენ დავინახავთ. 1632 01:14:45,597 --> 01:14:46,430 GABE: კარგი კითხვაა. 1633 01:14:46,430 --> 01:14:50,660 როდესაც შესაძლოა გსურთ გამოიყენოთ ანონიმური ფუნქცია აქ? 1634 01:14:50,660 --> 01:14:54,111 ძირითადად, როცა გინდათ რამე, როგორიც ღონისძიება, უნდა მოხდეს. 1635 01:14:54,111 --> 01:14:55,860 ასე რომ, როდესაც მაუსი არის დააწკაპებთ, მაგალითად, 1636 01:14:55,860 --> 01:14:57,790 გსურთ რამდენიმე ფუნქცია შეიძლება ეწოდოს. 1637 01:14:57,790 --> 01:15:00,570 ასე რომ თქვენ გაივლის ღონისძიება კურატორმა, გაივლის იმ შემთხვევაში, 1638 01:15:00,570 --> 01:15:02,870 სახის, ფუნქცია, რომელიც გსურთ ეწოდოს. 1639 01:15:02,870 --> 01:15:04,710 და რა თქვენ გადადის ჰგავს, ბოლოს 1640 01:15:04,710 --> 01:15:08,757 დღეს, მხოლოდ მომცეთ რომ დავალებით, რათა ფუნქცია. 1641 01:15:08,757 --> 01:15:11,090 ასე რომ, ეს იმას არ ნიშნავს, თქვენ გადადის მთელი კოდი, ისევე როგორც 1642 01:15:11,090 --> 01:15:12,173 მომცეთ ფუნქცია. 1643 01:15:12,173 --> 01:15:17,871 და მაშინ, როდესაც ვინმეს დაწკაპუნებით თაგვის, მაშინ ეს ფუნქცია იღებს მოუწოდა. 1644 01:15:17,871 --> 01:15:22,340 >> Davin: მასივები, ასე რომ თქვენ აქვს მასივი დეკლარაცია. 1645 01:15:22,340 --> 01:15:23,990 შემდეგ, მასივი დააყენოს რამ. 1646 01:15:23,990 --> 01:15:25,769 რეალური სწრაფი, რა იქნება ამ ამობეჭდოთ? 1647 01:15:25,769 --> 01:15:27,060 რა იქნება მესამე ელემენტს იყოს? 1648 01:15:27,060 --> 01:15:31,470 1649 01:15:31,470 --> 01:15:32,450 >> აუდიტორია: "JS". 1650 01:15:32,450 --> 01:15:33,940 >> Davin: მარჯვენა, ეს იქნება "JS." 1651 01:15:33,940 --> 01:15:35,760 დაველოდოთ, დაბრუნდეს. 1652 01:15:35,760 --> 01:15:37,100 რა არის სიგრძეზე? 1653 01:15:37,100 --> 01:15:38,117 >> აუდიტორია: Three. 1654 01:15:38,117 --> 01:15:38,950 Davin: სამი, არა? 1655 01:15:38,950 --> 01:15:40,210 ზუსტად რას ფიქრობთ. 1656 01:15:40,210 --> 01:15:42,072 OK, ახლა წასვლა. 1657 01:15:42,072 --> 01:15:43,530 კოლექტორები, თქვენ შეგიძლიათ დაამატოთ რამ მათ. 1658 01:15:43,530 --> 01:15:45,395 ასე რომ თქვენ შეგიძლიათ სცილდება მათი თავდაპირველი ფარგლებს გარეთ. 1659 01:15:45,395 --> 01:15:46,740 უბრალოდ რაღაც გვახსოვდეს. 1660 01:15:46,740 --> 01:15:49,760 PHP, JavaScript, ისინი პატარა ცოტა უფრო მიმტევებელი თვალსაზრისით რამ 1661 01:15:49,760 --> 01:15:50,570 როგორიცაა, რომ. 1662 01:15:50,570 --> 01:15:54,260 ობიექტები, ძალიან ჰგავს structs C, ძალიან 1663 01:15:54,260 --> 01:15:56,590 როგორიცაა ასოციაციური მასივების PHP. 1664 01:15:56,590 --> 01:15:58,720 თქვენ გვქონდა გამოცდილება აქვთ. 1665 01:15:58,720 --> 01:16:01,880 ასე JSON, როდესაც თქვენ ავლით JSON უკან და მეოთხე p მითითებული რვა, 1666 01:16:01,880 --> 01:16:03,260 ეს არის თქვენი ობიექტი. 1667 01:16:03,260 --> 01:16:06,290 >> ისე ჰო, მაგალითად, რეალური სწრაფი მაგალითად. 1668 01:16:06,290 --> 01:16:07,880 აქ არის ობიექტი. 1669 01:16:07,880 --> 01:16:12,700 გზა თქვენ მითითების ეს ობიექტი, ასე რომ მხოლოდ რეალური სწრაფი, 1670 01:16:12,700 --> 01:16:18,630 მოდით ვთქვათ მინდოდა გარეთ, OK, რა არის, რა თქმა უნდა? 1671 01:16:18,630 --> 01:16:20,681 და ასე ობიექტის სახელი აქ არის CS50. 1672 01:16:20,681 --> 01:16:23,180 და მაშინ, თუ მქონდა ასოციაციურ მასივი, როგორ გავაკეთო რომ? 1673 01:16:23,180 --> 01:16:24,580 მე გამოყენებით გასაღები, არა? 1674 01:16:24,580 --> 01:16:26,030 ასე მაქვს სახელი მასივი. 1675 01:16:26,030 --> 01:16:30,160 მაქვს bracket, შეთავაზებები, გასაღები, ბოლოს quotes, ბოლომდე bracket, 1676 01:16:30,160 --> 01:16:33,610 და რომ მითითებას, რომ ელემენტის შიგნით ჩემი ასოციაციურ მასივში. 1677 01:16:33,610 --> 01:16:37,646 როგორ შემიძლია დამოწმებული რა თქმა უნდა, შიგნით ჩემი ობიექტი? 1678 01:16:37,646 --> 01:16:39,170 ვინმემ იცის? 1679 01:16:39,170 --> 01:16:40,622 >> აუდიტორია: [INAUDIBLE]. 1680 01:16:40,622 --> 01:16:41,784 >> Davin: რა ხდება? 1681 01:16:41,784 --> 01:16:42,700 აუდიტორია: CS50.course. 1682 01:16:42,700 --> 01:16:43,510 Davin: მარჯვენა, yeah. 1683 01:16:43,510 --> 01:16:45,320 ასე CS50.course. 1684 01:16:45,320 --> 01:16:48,770 ასე რომ გზა მითითება რამ შიგნით JSON ობიექტი წერტილით. 1685 01:16:48,770 --> 01:16:53,114 >> აუდიტორია: თქვენ, აგრეთვე, შეგიძლიათ გამოიყენოთ მასივში სინტაქსი. 1686 01:16:53,114 --> 01:16:54,050 >> Davin: OK, ჯარიმა. 1687 01:16:54,050 --> 01:16:57,544 >> GABE: ასევე, შეგიძლიათ გამოიყენოთ CS50 bracket, სიმებიანი, როგორიცაა ციტატა ნიშნები. 1688 01:16:57,544 --> 01:16:59,210 აუდიტორია: ვფიქრობ, ეს იდენტური PHP. 1689 01:16:59,210 --> 01:17:00,293 GABE: ეს იგივე. 1690 01:17:00,293 --> 01:17:02,487 Davin: Fine! 1691 01:17:02,487 --> 01:17:03,945 მაგრამ თქვენ, რომ ეს სხვა ადგილებში. 1692 01:17:03,945 --> 01:17:08,990 1693 01:17:08,990 --> 01:17:10,480 ჰო, ისე შენარჩუნებას აპირებს. 1694 01:17:10,480 --> 01:17:13,330 ეს არის ის, რაც მე უბრალოდ განაცხადა. 1695 01:17:13,330 --> 01:17:17,840 ასე შევიდა JavaScript jQuery მაგალითად. 1696 01:17:17,840 --> 01:17:19,440 ასე რომ, ეს არის ჩემი DOM, არა? 1697 01:17:19,440 --> 01:17:22,290 1698 01:17:22,290 --> 01:17:25,410 რეალური სწრაფი, ასე რომ მაქვს ხელმძღვანელი, hello world, ორგანო. 1699 01:17:25,410 --> 01:17:26,160 მაქვს ღილაკს. 1700 01:17:26,160 --> 01:17:27,870 იგი აცხადებს, რომ "დააყენებს me," მე მინდა დააყენებს მას. 1701 01:17:27,870 --> 01:17:29,745 და მე მინდა, რომ რამე როდესაც ის დაწკაპავთ. 1702 01:17:29,745 --> 01:17:31,220 უფლება, შემდეგი. 1703 01:17:31,220 --> 01:17:34,630 >> უფლება, ასე რომ, ეს არის ჩემი JavaScript. 1704 01:17:34,630 --> 01:17:37,790 ასე რომ jQuery უბრალოდ ადვილი გზა წერენ JavaScript. 1705 01:17:37,790 --> 01:17:40,920 ასე რომ, ეს, და რა მე ვაპირებ აჩვენებს თქვენ მომდევნო, იქნება jQuery, 1706 01:17:40,920 --> 01:17:41,930 იდენტურია. 1707 01:17:41,930 --> 01:17:43,990 ისინი ყველაფერს გააკეთებენ ამას. 1708 01:17:43,990 --> 01:17:45,974 უბრალოდ jQuery tends უნდა იყოს ცოტა ადვილი. 1709 01:17:45,974 --> 01:17:47,140 ხალხი ტენდენცია მომწონს უფრო. 1710 01:17:47,140 --> 01:17:48,390 მას აქვს ბევრი ფუნქციები. 1711 01:17:48,390 --> 01:17:49,830 ასე რომ, ადამიანებს ტენდენცია გამოიყენოთ jQuery. 1712 01:17:49,830 --> 01:17:53,270 თქვენ ყველა გამოყენებული jQuery ბოლო p-set. 1713 01:17:53,270 --> 01:17:54,270 მერე რა იქნება ამ შემთხვევაში? 1714 01:17:54,270 --> 01:17:56,580 რა იქნება ეს JavaScript-- ასე ეს არის მხოლოდ უბრალო JavaScript. 1715 01:17:56,580 --> 01:17:57,430 რა იქნება ამ შემთხვევაში? 1716 01:17:57,430 --> 01:18:00,600 1717 01:18:00,600 --> 01:18:03,450 რას გააკეთებს ის? 1718 01:18:03,450 --> 01:18:04,890 >> ასე რომ, პირველი, თქვენ ხედავთ window onload. 1719 01:18:04,890 --> 01:18:05,390 არა? 1720 01:18:05,390 --> 01:18:06,640 ასე რომ, ჩვენ არ ვხედავთ, რომ ადრე. 1721 01:18:06,640 --> 01:18:09,380 ასე რომ, ეს აპირებს დაველოდოთ სანამ მთელი window იტვირთება. 1722 01:18:09,380 --> 01:18:12,770 ასე რომ, ის აპირებს დაველოდოთ HTML, ყველა images დატვირთვის 1723 01:18:12,770 --> 01:18:13,770 სანამ აკეთებს არაფერი. 1724 01:18:13,770 --> 01:18:16,050 ასე ვთქვათ, ჩვენი DOM დატვირთული. 1725 01:18:16,050 --> 01:18:17,270 ყველაფერი არსებობს. 1726 01:18:17,270 --> 01:18:19,080 მაშინ რა მოხდება? 1727 01:18:19,080 --> 01:18:19,922 ჰო? 1728 01:18:19,922 --> 01:18:22,880 >> აუდიტორია: Button ჩანს. 1729 01:18:22,880 --> 01:18:25,201 >> Davin: ღილაკი უკვე არსებობს. 1730 01:18:25,201 --> 01:18:26,700 ჰო, ისე ღილაკს უკვე არსებობს. 1731 01:18:26,700 --> 01:18:31,190 მაგრამ ეს ხდება იმის თქმა, OK, თუ მე დააჭირეთ ღილაკს, 1732 01:18:31,190 --> 01:18:33,650 ასე ღილაკს უკვე იქ, ისევე როგორც, რომ HTML tag. 1733 01:18:33,650 --> 01:18:35,980 დაველოდოთ, დაბრუნდეს რეალური სწრაფი. 1734 01:18:35,980 --> 01:18:39,470 ამ tag უფლება სწორედ აქ არის იქნება ღილაკს უკვე. 1735 01:18:39,470 --> 01:18:40,810 იქ უკვე ღილაკს. 1736 01:18:40,810 --> 01:18:44,120 მაგრამ შემდეგ, JavaScript tag, სწორედ აქ, 1737 01:18:44,120 --> 01:18:46,160 ის ამბობს, OK, მე მინდა მისაღებად ელემენტს ით, 1738 01:18:46,160 --> 01:18:50,300 ასე ძიების ღილაკს უბრალოდ ამბობს, OK, მე მინდა რუკაზე ამ ცვლადის რომ ღილაკს. 1739 01:18:50,300 --> 01:18:53,120 ასე რომ ცვლადი მხოლოდ ადვილი გზა, რათა შეამოწმონ რომ ღილაკს. 1740 01:18:53,120 --> 01:18:57,300 და მე ვიტყვი, OK, თუ მე დააჭირეთ რომ ღილაკს, ასე რომ, თუ მე დააჭირეთ რომ ელემენტს, 1741 01:18:57,300 --> 01:18:59,560 და ამ ელემენტს ეხება ღილაკს, თუ მე დაწკაპეთ იგი, 1742 01:18:59,560 --> 01:19:00,875 მაშინ მინდა მოვუწოდო ფუნქცია. 1743 01:19:00,875 --> 01:19:03,500 აქ არის ერთი იმ ანონიმური ფუნქციები ჩვენ ვსაუბრობთ. 1744 01:19:03,500 --> 01:19:04,840 >> უბრალოდ მოვუწოდებ ზოგიერთი ფუნქცია. 1745 01:19:04,840 --> 01:19:08,840 შიგნით რომ ფუნქცია, ძირითადად რაღაც ჩვენ ვნახეთ ბევრი, მზადყოფნაშია მოყვანილი. 1746 01:19:08,840 --> 01:19:10,477 თქვენ დააჭირეთ ღილაკს ძებნა. 1747 01:19:10,477 --> 01:19:12,060 ის აპირებს ძირითადად ღილაკს. 1748 01:19:12,060 --> 01:19:13,040 თქვენ დააჭირეთ მას. 1749 01:19:13,040 --> 01:19:14,040 თქვენ, რომ მზადყოფნაში. 1750 01:19:14,040 --> 01:19:14,850 X out. 1751 01:19:14,850 --> 01:19:15,754 ეს არის ის. 1752 01:19:15,754 --> 01:19:16,254 ჰო? 1753 01:19:16,254 --> 01:19:21,980 >> აუდიტორია: ასე რომ, თუ თქვენ დააყენა script [INAUDIBLE], script tag თქვენი HTML? 1754 01:19:21,980 --> 01:19:24,300 >> Davin: შეგიძლიათ დააყენა script tag სწორი ხელმძღვანელი 1755 01:19:24,300 --> 01:19:30,667 იმიტომ, რომ თქვენ გაქვთ ეს onload. 1756 01:19:30,667 --> 01:19:32,000 ის ასევე, რომ თქვენ გაქვთ დაჭერით. 1757 01:19:32,000 --> 01:19:34,166 ასე რომ, ის აპირებს დაველოდოთ თქვენ დააჭირეთ რაღაც. 1758 01:19:34,166 --> 01:19:37,470 მაგრამ onload უბრალოდ უნდა იყოს უსაფრთხო, რათა დარწმუნებული ვარ, ყველაფერი ტვირთის თქვენი HTML 1759 01:19:37,470 --> 01:19:38,170 წინასწარ. 1760 01:19:38,170 --> 01:19:39,247 ჰო? 1761 01:19:39,247 --> 01:19:40,330 თქვენ მინდა ვთქვა რამე? 1762 01:19:40,330 --> 01:19:41,080 >> GABE: [INAUDIBLE]. 1763 01:19:41,080 --> 01:19:42,485 Davin: ჰო. 1764 01:19:42,485 --> 01:19:45,426 >> აუდიტორია: ასე onload თავს არიდებს განსაზღვრის ცვლადი ძიების ღილაკს 1765 01:19:45,426 --> 01:19:49,930 მხოლოდ ამბობდა document.getElementByID ძებნის ღილაკს dot [INAUDIBLE]. 1766 01:19:49,930 --> 01:19:52,320 >> Davin: აუცილებლად, მაგრამ შემდეგ თქვენი string უბრალოდ იღებს დიდია. 1767 01:19:52,320 --> 01:19:55,553 ზუსტად, ასე რომ ეს არის მხოლოდ გაუადვილოს თქვენ, yeah. 1768 01:19:55,553 --> 01:19:56,053 დიახ? 1769 01:19:56,053 --> 01:19:57,886 >> აუდიტორია: სად ჩვენ შექმნა window.onload? 1770 01:19:57,886 --> 01:19:58,951 ან document.ready? 1771 01:19:58,951 --> 01:20:00,590 >> Davin: დიახ, არსებობს. 1772 01:20:00,590 --> 01:20:02,094 დიახ, არსებობს, მე შევამოწმე. 1773 01:20:02,094 --> 01:20:03,710 >> GABE: არ მათ აღელვებთ. 1774 01:20:03,710 --> 01:20:06,970 >> Davin: OK, ასე რომ მე ვაპირებ გითხრათ მაინც. 1775 01:20:06,970 --> 01:20:11,005 ასე რომ, ძირითადად, მხოლოდ ზოგადად, ასე window.onload ელოდება სანამ თქვენი DOM, ყველა 1776 01:20:11,005 --> 01:20:12,180 თქვენი HTML, იტვირთება. 1777 01:20:12,180 --> 01:20:13,513 მას ელოდება სანამ თქვენი სურათები დატვირთვა. 1778 01:20:13,513 --> 01:20:14,930 მას ელოდება სანამ ყველაფერი იტვირთება. 1779 01:20:14,930 --> 01:20:18,410 document.ready, ეს მხოლოდ ელოდება სანამ თქვენი DOM იტვირთება. 1780 01:20:18,410 --> 01:20:22,190 ერთხელ HTML არის ყველა, ერთხელ თქვენი DOM არის, იწყება გაშვებული. 1781 01:20:22,190 --> 01:20:23,400 ეს არის ერთადერთი განსხვავება. 1782 01:20:23,400 --> 01:20:24,700 >> GABE: სწრაფი საღი აზრის შესამოწმებლად აქ. 1783 01:20:24,700 --> 01:20:29,060 ასე რომ, ეს შეიძლება ჩანს სახის როგორიცაა ხაზი კოდი, უფლება? 1784 01:20:29,060 --> 01:20:33,600 იმიტომ, რომ ეს window.onload უდრის bunch of პერსონალი. 1785 01:20:33,600 --> 01:20:39,030 როდესაც JavaScript ნათქვამია ამ, ჭეშმარიტი ან ყალბი, ფუნქციის იღებს დასაჯეს. 1786 01:20:39,030 --> 01:20:40,020 ყალბი. 1787 01:20:40,020 --> 01:20:40,920 OK? 1788 01:20:40,920 --> 01:20:44,470 რა ხდება აქ, თქვენ უბრალოდ გავლით ეს ფუნქცია ანონიმური ფუნქციები 1789 01:20:44,470 --> 01:20:45,300 to window.onload. 1790 01:20:45,300 --> 01:20:48,480 და მაშინ, როდესაც იგი აპირებს რეალურად მიიღოთ შესრულებული? 1791 01:20:48,480 --> 01:20:49,600 როდესაც window იტვირთება. 1792 01:20:49,600 --> 01:20:50,420 რომ არის ღონისძიება. 1793 01:20:50,420 --> 01:20:52,460 ისე, რომ გა t რამ ჩვენ ვსაუბრობთ ადრე, არა? 1794 01:20:52,460 --> 01:20:54,580 ასე რომ, როდესაც მოვლენა ხდება, ფუნქცია ხდება. 1795 01:20:54,580 --> 01:20:55,746 იგივე რამ onclick. 1796 01:20:55,746 --> 01:20:59,510 1797 01:20:59,510 --> 01:21:03,130 >> Davin: OK, ასე რომ ვიღაცამ წამოიღო მოშორებით document.ready. 1798 01:21:03,130 --> 01:21:04,698 მაგრამ ეს იქნება ზუსტად იგივე 1799 01:21:04,698 --> 01:21:06,864 აუდიტორია: დოლარის ნიშანი, რომ არის document.ready. 1800 01:21:06,864 --> 01:21:07,710 რომ კომბინაცია. 1801 01:21:07,710 --> 01:21:08,501 >> Davin: Oh, რომ არის? 1802 01:21:08,501 --> 01:21:10,880 1803 01:21:10,880 --> 01:21:15,500 OK, ასე რომ, ეს იმას ნიშნავს, document.ready, კომბინაცია. 1804 01:21:15,500 --> 01:21:19,660 მაგრამ ეს არ არის იგივე, რაც window.onload გარდა იმისა, რომ მცირე განსხვავება 1805 01:21:19,660 --> 01:21:20,680 მე გითხარით. 1806 01:21:20,680 --> 01:21:21,870 და ეს არის jQuery. 1807 01:21:21,870 --> 01:21:25,190 ასე რომ, ეს არის ზუსტად იგივე რამ ეს არის JavaScript. 1808 01:21:25,190 --> 01:21:29,500 ეს just-- ზოგიერთი ადამიანი ვფიქრობ, რომ ეს როგორც უფრო მსუბუქი წონა, გლუვი ვერსია 1809 01:21:29,500 --> 01:21:32,370 რომელსაც აქვს უამრავი ფუნქციები რომ თქვენ ალბათ გამოყენებით. 1810 01:21:32,370 --> 01:21:34,500 ასე რომ, ეს აკეთებს ზუსტად იგივე რამ. 1811 01:21:34,500 --> 01:21:37,110 >> ასე რამ სახის აღვნიშნო. 1812 01:21:37,110 --> 01:21:40,364 ასე რომ სხვა, მაგალითად, ჩვენ ჰქონდა document.getElementByID, 1813 01:21:40,364 --> 01:21:42,280 ასე რომ, ჩვენ ამ ხნის სიმებიანი რომ აპირებს მიიღოს 1814 01:21:42,280 --> 01:21:44,290 ელემენტს ნებისმიერი ID მას. 1815 01:21:44,290 --> 01:21:46,470 რომ შეიცვალოს ეს მოწოდება უფლება აქ. 1816 01:21:46,470 --> 01:21:50,860 ასე რომ თქვენ ხედავთ დოლარის ნიშანი, შემდეგ ხედავთ გაცემა, hashtag. 1817 01:21:50,860 --> 01:21:52,370 Hashtag ყოველთვის selector. 1818 01:21:52,370 --> 01:21:54,730 იგი ამბობს, OK, ეს უნდა გააკეთოს ID. 1819 01:21:54,730 --> 01:21:56,120 რა არის selector for კლასში? 1820 01:21:56,120 --> 01:21:57,190 >> აუდიტორია: Dot. 1821 01:21:57,190 --> 01:21:57,960 >> Davin: Dot, მარჯვნივ. 1822 01:21:57,960 --> 01:22:01,950 თუ თქვენ უბრალოდ აპირებს აირჩიეთ tag, რა არის ეს? 1823 01:22:01,950 --> 01:22:03,310 უბრალოდ tag, ზუსტად. 1824 01:22:03,310 --> 01:22:05,560 და თქვენ შეიძლება გამოიყენოთ, რომ აქ, ისევე. 1825 01:22:05,560 --> 01:22:08,560 >> GABE: And by tag, იგულისხმება, როგორიცაა div, მაგალითად, ან ხელმძღვანელი. 1826 01:22:08,560 --> 01:22:11,500 >> Davin: ან ორგანოს ან p ან არაფერი რომ, yeah. 1827 01:22:11,500 --> 01:22:14,390 ასე რომ, აქ, OK, ნაცვლად ამბობდა document.getElementByID, 1828 01:22:14,390 --> 01:22:16,500 ეს არის უბრალოდ ზუსტად იგივე რამ. 1829 01:22:16,500 --> 01:22:17,990 მხოლოდ jQuery, მოკლე. 1830 01:22:17,990 --> 01:22:19,860 ასე რომ, ეს მარტივია. 1831 01:22:19,860 --> 01:22:23,420 ასე შემდეგ, აღარ onclick, უბრალოდ დააჭირეთ. 1832 01:22:23,420 --> 01:22:26,320 jQuery ფუნქცია, დარეკეთ ამ ფუნქციას. 1833 01:22:26,320 --> 01:22:27,580 Alert არის ზუსტად იგივე. 1834 01:22:27,580 --> 01:22:29,452 ასე რომ, ეს ცოტა პატარა, ან ცოტა 1835 01:22:29,452 --> 01:22:32,410 მოკლე, პატარა bit-- ფიქრობს ხალხი ეს ცოტა ადვილი დაწერა, 1836 01:22:32,410 --> 01:22:34,600 ცოტა ადვილი გასაგებია. 1837 01:22:34,600 --> 01:22:35,640 მაგრამ ეს არის jQuery. 1838 01:22:35,640 --> 01:22:37,887 ბევრი ადამიანი კიდევ ცოტა ცოტა დაბნეული და შეშფოთებული 1839 01:22:37,887 --> 01:22:40,220 და ჰგონიათ, OK, jQuery განსხვავებულია, ვიდრე JavaScript. 1840 01:22:40,220 --> 01:22:42,136 უნდა გვახსოვდეს, რომ ეს ორი სხვადასხვა რამ. 1841 01:22:42,136 --> 01:22:42,740 ეს არ არის. 1842 01:22:42,740 --> 01:22:45,315 ვგულისხმობ, ეს სხვადასხვა სინტაქსი. 1843 01:22:45,315 --> 01:22:46,970 მაგრამ jQuery არის JavaScript. 1844 01:22:46,970 --> 01:22:50,050 ეს მხოლოდ ერთი შეხედვით უკეთესი ვერსია, რომ 1845 01:22:50,050 --> 01:22:51,967 შესაძლოა ადვილი მესმის, რომ ხალხი გამოიყენოს. 1846 01:22:51,967 --> 01:22:53,716 GABE: ჰო, იყოს პატიოსანი, რომ დოლარის ნიშანი 1847 01:22:53,716 --> 01:22:57,240 რომ ხედავთ jQuery, რომ მხოლოდ დასახელება ფუნქცია, რომელიც jQuery განსაზღვრავს. 1848 01:22:57,240 --> 01:22:58,614 მას არ აქვს არაფერი განსაკუთრებული. 1849 01:22:58,614 --> 01:23:03,140 არის უბრალოდ სახელით ფუნქცია, ისევე, როგორც თქვენ შეიძლება განსაზღვროს დოლარის ნიშანი. 1850 01:23:03,140 --> 01:23:05,670 >> Davin: ჰო, ასე ისაუბრა. 1851 01:23:05,670 --> 01:23:06,680 სასარგებლო რამ. 1852 01:23:06,680 --> 01:23:10,414 მე ეძებდა უკან ძველ ტესტებში. 1853 01:23:10,414 --> 01:23:13,080 ბოლო რამდენიმე ტესტები, ისინი უნდა გამოიყენოს რამ მოსწონს ეს. 1854 01:23:13,080 --> 01:23:15,230 ასე document.ready, ასე დარწმუნდით ყველაფერი 1855 01:23:15,230 --> 01:23:17,410 დატვირთული სანამ დაიწყება აკეთებს რამ. 1856 01:23:17,410 --> 01:23:20,120 აირჩიეთ ID, ან აირჩიეთ კლასის, ეს უბრალოდ 1857 01:23:20,120 --> 01:23:24,020 იყოს პასუხის dot გარკვეული კლასის, ბოლოს გაცემა. 1858 01:23:24,020 --> 01:23:26,580 წარუდგინოს, ასე რომ, თუ თქვენ წარდგენის ფორმით და ზარი 1859 01:23:26,580 --> 01:23:28,830 ამ ფუნქციის შემდეგ ფორმით წარუდგენს. 1860 01:23:28,830 --> 01:23:34,210 ღირებულება, ასე ვთქვათ, მე მქონდა ფორმა წარდგენის, როგორიცაა მომხმარებლის სახელი, ელექტრონული ფოსტის, 1861 01:23:34,210 --> 01:23:34,950 რასაც. 1862 01:23:34,950 --> 01:23:36,010 მე მქონდა ტექსტში ყუთი. 1863 01:23:36,010 --> 01:23:37,670 ამიტომ მე აკრეფით შევიდა, რომ ტექსტი ყუთში. 1864 01:23:37,670 --> 01:23:42,170 ისე, თუ გსურთ მიიღოთ ღირებულება გარეთ რომ ტექსტში ყუთი, თქვენ იყენებთ dot val. 1865 01:23:42,170 --> 01:23:44,050 და შემდეგ, აქ ქვემოთ, dot HTML არის იგივე 1866 01:23:44,050 --> 01:23:47,710 არის როგორც დოკუმენტის dot getElementByID dot innerHTML. 1867 01:23:47,710 --> 01:23:50,890 ისე, რომ დაბრუნებას აპირებს თქვენ HTML, რომ ID. 1868 01:23:50,890 --> 01:23:55,080 აქ, თქვენ უბრალოდ გამოიყენოთ რამდენიმე ID ან რასაც dot HTML. 1869 01:23:55,080 --> 01:23:56,930 რომ მიიღებთ HTML რომ ელემენტს. 1870 01:23:56,930 --> 01:24:00,130 თუ თქვენ სურდა მაშინ შეცვლის, რომ HTML, შეგიძლიათ გაიაროს ეს რაღაც. 1871 01:24:00,130 --> 01:24:05,600 ასე რომ თქვენ მინდა იყოს dot HTML, და შემდეგ შიგნით, შეთავაზებები, ახალი HTML ან რამე. 1872 01:24:05,600 --> 01:24:07,490 >> GABE: OK, ასე AJAX. 1873 01:24:07,490 --> 01:24:10,347 მე ნამდვილად მინდა გვესმოდეს, AJAX ნამდვილად კარგად. 1874 01:24:10,347 --> 01:24:12,430 ამიტომ, მე მინდა თქვენ ბიჭები მესმის AJAX ნამდვილად კარგად. 1875 01:24:12,430 --> 01:24:14,221 რადგან, თუ, თქვენ საკმაოდ ბევრი აპირებს 1876 01:24:14,221 --> 01:24:16,810 უნდა გვესმოდეს, რომ ყველაფერი უნდა გავაკეთოთ ერთად HTTP, PHP, 1877 01:24:16,810 --> 01:24:21,080 JavaScript იმიტომ რომ ყველა მოდის ერთად AJAX. 1878 01:24:21,080 --> 01:24:25,130 AJAX არ არის ენა. 1879 01:24:25,130 --> 01:24:27,000 AJAX ტექნიკა. 1880 01:24:27,000 --> 01:24:31,690 და იგი იყენებს უამრავი სხვადასხვა ინსტრუმენტები. 1881 01:24:31,690 --> 01:24:35,090 AJAX დგას ასინქრონული JavaScript XML. 1882 01:24:35,090 --> 01:24:36,730 ამიტომ მეთოდი, ენა მონაცემები. 1883 01:24:36,730 --> 01:24:40,610 >> ასე რომ, ძირითადი ენა, რომ ჩვენ ვიყენებთ in AJAX გამოიწვიოს ყველაფერი 1884 01:24:40,610 --> 01:24:42,830 და გაუმკლავდეს ყველაფერი მოგვიანებით არის JavaScript. 1885 01:24:42,830 --> 01:24:45,160 სწორედ ამიტომ, ეს ეხება ძალიან ახლოს JavaScript. 1886 01:24:45,160 --> 01:24:49,810 და შემდეგ ასინქრონული არის იმიტომ, რომ ჩვენ არ გავაკეთებთ 1887 01:24:49,810 --> 01:24:51,980 ერთდროულად, როდესაც ჩვენ დატვირთვის გვერდზე. 1888 01:24:51,980 --> 01:24:57,190 ეს არის სწორედ ის, რომ ჩვენ შეგვიძლია გავაკეთოთ რამ სახის პარალელურად. 1889 01:24:57,190 --> 01:24:59,725 ძირითადი იდეა AJAX, რომ გსურთ 1890 01:24:59,725 --> 01:25:02,170 რომ მივიღოთ კონკრეტული ინფორმაცია. 1891 01:25:02,170 --> 01:25:06,450 მაგალითად, როდესაც თქვენ აკრეფით new მომხმარებლის სახელი, როდესაც თქვენ რეგისტრირდებით მომხმარებლის სახელი, 1892 01:25:06,450 --> 01:25:08,520 ჩემი პროფაილი სახელი abc123. 1893 01:25:08,520 --> 01:25:11,671 და შემდეგ, ბოლოს ფორმა, თქვენ უნდა დააჭირეთ Submit. 1894 01:25:11,671 --> 01:25:14,420 და მას წასვლა სერვერზე, და შემდეგ შეამოწმეთ თუ მონაცემთა ბაზაში, 1895 01:25:14,420 --> 01:25:15,594 abc123 უკვე არსებობს. 1896 01:25:15,594 --> 01:25:18,510 და თუ ეს უკვე არსებობს, იგი აცხადებს, მომხმარებლის სახელი უკვე მონაცემთა ბაზაში. 1897 01:25:18,510 --> 01:25:21,010 და მათ, თქვენ უნდა შეავსოთ მთელი ფორმით კიდევ ერთხელ. 1898 01:25:21,010 --> 01:25:23,110 და ეს იყო ნამდვილად, ნამდვილად ცუდი. 1899 01:25:23,110 --> 01:25:25,440 >> და მერე ამბობენ, OK, რატომ არ შეიძლება ჩვენ მხოლოდ 1900 01:25:25,440 --> 01:25:29,560 გავაკეთოთ პატარა HTTP მოთხოვნის მხოლოდ შეამოწმოს თუ ეს შესახებ მონაცემთა ბაზაში 1901 01:25:29,560 --> 01:25:32,080 ადრე მომხმარებლის ჰქონდა წარმოადგინოს მთელი ფორმა? 1902 01:25:32,080 --> 01:25:36,350 ასე მაგალითად, როდესაც პროფაილი სრულდება აკრეფით abc123, 1903 01:25:36,350 --> 01:25:39,660 მოდით უბრალოდ წასვლა სერვერზე პატარა ცოტა და უბრალოდ ჭეშმარიტი ან მცდარი 1904 01:25:39,660 --> 01:25:43,080 სერვერზე, რომ, თუ რომ სწორი მომხმარებლის სახელი ან არა. 1905 01:25:43,080 --> 01:25:49,250 OK, ასე რომ ერთ-ერთი მთავარი იყენებს of AJAX დღეს, მაინც. 1906 01:25:49,250 --> 01:25:52,130 >> Davin: So რეალური სწრაფი, in Ajax ზარის jQuery, 1907 01:25:52,130 --> 01:25:54,770 თქვენ შეიძლება ნიშნავდეს, რომ თქვენ გვინდა, რომ იყოს სინქრონული. 1908 01:25:54,770 --> 01:25:56,330 თქვენ არ უნდა გავაკეთოთ ეს. 1909 01:25:56,330 --> 01:25:57,640 მაგრამ შეგიძლიათ ამის გაკეთება. 1910 01:25:57,640 --> 01:25:59,277 და თუ კი, რა მოხდებოდა? 1911 01:25:59,277 --> 01:26:01,610 ასევე, მაგალითად, როდესაც თქვენ მიღების ამბების ან რასაც, 1912 01:26:01,610 --> 01:26:05,464 თქვენი ბრაუზერის მხოლოდ აპირებს დაველოდოთ სანამ, რომ მთელი ზარი სრული 1913 01:26:05,464 --> 01:26:08,130 ნაცვლად გაქირავების თქვენ სხვა რამ შემდეგ, რაც თქვენ დაწკაპეთ იგი. 1914 01:26:08,130 --> 01:26:14,560 1915 01:26:14,560 --> 01:26:17,115 >> GABE: ეს არ გავლით აღარ. 1916 01:26:17,115 --> 01:26:19,681 Oh ღმერთი ჩემი. 1917 01:26:19,681 --> 01:26:20,180 უკაცრავად! 1918 01:26:20,180 --> 01:26:22,810 1919 01:26:22,810 --> 01:26:23,601 Yup. 1920 01:26:23,601 --> 01:26:25,350 "წარსულში, კლიენტის საჭირო თხოვნა 1921 01:26:25,350 --> 01:26:26,840 მთელი შინაარსი ნახვა. " 1922 01:26:26,840 --> 01:26:28,210 ეს არის ის, რაც მე ვთქვი. 1923 01:26:28,210 --> 01:26:30,070 ეს საშუალებას გვაძლევს გაგზავნას დამატებითი GET და POST 1924 01:26:30,070 --> 01:26:32,140 მოთხოვნები გარეშე განაახლეთ ჩვენი ბრაუზერის. 1925 01:26:32,140 --> 01:26:34,806 ასე რომ, დღის ბოლოს, ჩვენ რეალურად მიღების HTTP მოთხოვნა 1926 01:26:34,806 --> 01:26:35,740 აქ გამოყენებით JavaScript. 1927 01:26:35,740 --> 01:26:39,700 იმის გამო, რომ ადრე, ჩვენ გამოიყენება მხოლოდ JavaScript შეცვალოს HTML, რომ უკვე მოვიდა. 1928 01:26:39,700 --> 01:26:43,110 და ახლა, ჩვენ შეგვიძლია გამოვიყენოთ ინტერფეისი ვებ სერვერები ისევე. 1929 01:26:43,110 --> 01:26:46,140 გზა ეს ხდება ჩვენ უნდა კლიენტს. 1930 01:26:46,140 --> 01:26:47,340 Davin კლიენტს. 1931 01:26:47,340 --> 01:26:50,797 და მას აქვს ყველა JavaScript გაშვებული, რადგან HTML მითუმეტეს. 1932 01:26:50,797 --> 01:26:51,630 JavaScript არის ჭკვიანი. 1933 01:26:51,630 --> 01:26:54,690 ასე davin Davin აქვს თავისი ჭკვიანი ნაწილი მუნჯი ნაწილი. 1934 01:26:54,690 --> 01:26:57,590 ის აპირებს გამოიყენოს თავისი ჭკვიანი ნაწილი ახლა. 1935 01:26:57,590 --> 01:27:00,860 ის აპირებს გამოიყენოს JavaScript მოითხოვოს, მაგალითად, 1936 01:27:00,860 --> 01:27:04,340 თუ არა abc123 არის მონაცემთა ბაზის თუ არა. 1937 01:27:04,340 --> 01:27:08,450 >> ასე Davin, გთხოვთ, უბრალოდ გამომიგზავნეთ HTTP მოთხოვნის. 1938 01:27:08,450 --> 01:27:09,197 მადლობა. 1939 01:27:09,197 --> 01:27:10,530 ასე რომ, ის უბრალოდ გაგზავნილი HTTP მოთხოვნის. 1940 01:27:10,530 --> 01:27:11,270 ხედავთ, რომ? 1941 01:27:11,270 --> 01:27:14,700 და ეს მხოლოდ იგივე გზა რომ ნებისმიერი HTTP მოთხოვნა გაიგზავნა. 1942 01:27:14,700 --> 01:27:16,830 ბრაუზერი, Google Chrome ან რამე, არის 1943 01:27:16,830 --> 01:27:19,570 ვაპირებთ, რომ Davin მიერ ცდილობს გაგზავნას HTTP მოთხოვნის, 1944 01:27:19,570 --> 01:27:20,930 აპირებს დაეხმაროს hm ცოტა. 1945 01:27:20,930 --> 01:27:23,950 და რომ ის აპირებს ყველა გზა სერვერზე. 1946 01:27:23,950 --> 01:27:27,370 ახლა, სერვერზე აპირებს აქვს PHP აქ, ან ნებისმიერ სხვა ენაზე. 1947 01:27:27,370 --> 01:27:29,990 უბრალოდ მინდა ნორმალური HTTP მოთხოვნის. 1948 01:27:29,990 --> 01:27:31,950 ეს არის საკმაოდ ბევრი ნორმალური HTTP მოთხოვნის. 1949 01:27:31,950 --> 01:27:33,658 >> და შემდეგ, სერვერზე თქმას, OK, 1950 01:27:33,658 --> 01:27:37,270 Davin სურს ჩემთვის შეამოწმოს თუ არა ამ abc123 მონაცემთა ბაზაში. 1951 01:27:37,270 --> 01:27:38,310 მერე გაიგო, რომ მოდელი. 1952 01:27:38,310 --> 01:27:41,310 მოდელი ამბობს, რომ ეს ასე არ არის. abc123 არის კარგი მომხმარებლის სახელი. 1953 01:27:41,310 --> 01:27:47,940 და შემდეგ, სერვერზე აპირებს გამოყენება PHP აღმოუჩინოს ზოგი ფორმა ფაილი. 1954 01:27:47,940 --> 01:27:52,280 ეს შეიძლება იყოს უბრალოდ სიტყვასიტყვით ფაილი რომელიც შეიცავს "დიახ", ან "არა, 1955 01:27:52,280 --> 01:27:53,315 ან რამე მაგდაგვარს. 1956 01:27:53,315 --> 01:27:54,190 ეს შეიძლება იყოს ნებისმიერი ფაილი. 1957 01:27:54,190 --> 01:27:57,080 >> ეს შეიძლება იყოს, როგორიცაა მე ვაპირებ გაუგზავნე Davin სურათს იხვი 1958 01:27:57,080 --> 01:28:01,200 თუ ის მონაცემთა ბაზაში და გაუგზავნე სურათს hamster 1959 01:28:01,200 --> 01:28:02,420 თუ ეს არ არის მონაცემთა ბაზაში. 1960 01:28:02,420 --> 01:28:04,294 რომ იქნება ერთგვარი მითუმეტეს, მაგრამ ის იმუშავებს. 1961 01:28:04,294 --> 01:28:07,030 OK, ასე რომ გაუგზავნე იხვი Davin. 1962 01:28:07,030 --> 01:28:08,150 Davin მიიღო იხვი. 1963 01:28:08,150 --> 01:28:13,330 და ახლა, ვინც აპირებს გაუმკლავდეს იხვი? 1964 01:28:13,330 --> 01:28:16,390 Davin ჭკვიანი ნაწილი ისევ, ასე JavaScript, არა? 1965 01:28:16,390 --> 01:28:18,620 JavaScript გაუგზავნა მოთხოვნა და JavaScript 1966 01:28:18,620 --> 01:28:22,300 აპირებს მიიღოს თხოვნა და ინტერპრეტაცია გარკვეული ფორმით. 1967 01:28:22,300 --> 01:28:26,630 >> და ამ თვალსაზრისით, ის აპირებს იტყვით, თუ იხვი მაშინ მე კარგი. 1968 01:28:26,630 --> 01:28:30,770 თუ hamster, მაშინ მე ვაპირებ ვთქვათ, არ, მომხმარებლის სახელი უკვე 1969 01:28:30,770 --> 01:28:31,970 არსებობს მონაცემთა ბაზაში. 1970 01:28:31,970 --> 01:28:33,845 მაგრამ, როგორც წესი, თქვენ არ ვაპირებ გაგზავნას იხვი. 1971 01:28:33,845 --> 01:28:36,740 თქვენ აპირებთ გაგზავნას რაღაც ოდნავ ჭკვიანია. 1972 01:28:36,740 --> 01:28:40,320 და რა ჩვენ ვიყენებთ არის XML. 1973 01:28:40,320 --> 01:28:42,690 და მეტი ხნის წინ, ჩვენ ვიყენებთ JSON. 1974 01:28:42,690 --> 01:28:45,629 JSON არის მხოლოდ JavaScript Object ნოტაცია, რომელიც 1975 01:28:45,629 --> 01:28:47,670 ძირითადად თქვენ გაქვთ მთელი JavaScript ობიექტი. 1976 01:28:47,670 --> 01:28:50,820 და დააყენა ის ფაილი, ისევე, როგორც რომ CS50 ობიექტი, რომელიც თქვენ ბიჭები დაინახა. 1977 01:28:50,820 --> 01:28:53,090 დააყენა ეს ფაილი და თქვენ გადასცემს მას Davin. 1978 01:28:53,090 --> 01:28:55,850 >> ასე რომ, ამ შემთხვევაში, მე რათა JavaScript ობიექტი 1979 01:28:55,850 --> 01:28:59,570 და უბრალოდ, ვამბობთ, შესახებ არსებობს, დიახ. 1980 01:28:59,570 --> 01:29:01,630 ან მომხმარებლის არსებობს, არ. 1981 01:29:01,630 --> 01:29:02,810 და უკან მას. 1982 01:29:02,810 --> 01:29:03,830 და რატომ JSON? 1983 01:29:03,830 --> 01:29:07,330 იმიტომ, რომ პირი რომელიც მიიღეთ ეს არის 1984 01:29:07,330 --> 01:29:10,030 აპირებთ გამოიყენოთ JavaScript გაუმკლავდეს პასუხი. 1985 01:29:10,030 --> 01:29:14,970 და JavaScript მუშაობს ისე კარგად, იმიტომ, ეს ე.წ. JavaScript Object ნოტაცია. 1986 01:29:14,970 --> 01:29:15,470 არა? 1987 01:29:15,470 --> 01:29:19,660 ასე რომ მას შეუძლია მხოლოდ მოვუწოდებთ ფუნქცია და მიიღეთ ამ ლამაზი ობიექტი პასუხი. 1988 01:29:19,660 --> 01:29:22,890 და შემდეგ, ის აპირებს თუ არა რომ შესახებ მონაცემთა ბაზაში ან არა. 1989 01:29:22,890 --> 01:29:25,230 >> ასე რომ თქვენ ხედავთ, ყველა ეს მოდის ერთად სერვერზე, 1990 01:29:25,230 --> 01:29:28,450 და მერე იქ ერთი HTTP მოთხოვნის და ერთი HTTP პასუხი და ყველაფერი. 1991 01:29:28,450 --> 01:29:30,600 ასე რომ დარწმუნდით, რომ თქვენ ბიჭები მესმის, რომ ეს AJAX ზარი 1992 01:29:30,600 --> 01:29:37,260 იმიტომ, რომ ეს გეხმარებათ ესმით ყველა ცნებები ჩვენ ვსაუბრობთ. 1993 01:29:37,260 --> 01:29:40,260 >> ასე რომ, აქ არის მაგალითი აიაქსი ერთად jQuery. 1994 01:29:40,260 --> 01:29:42,130 და აქ, ჩვენ გავაკეთებთ get JSON. 1995 01:29:42,130 --> 01:29:45,660 ასე რომ, ჩვენ არ ცდილობს იმიჯი კატა აქ, ან იხვი. 1996 01:29:45,660 --> 01:29:48,110 ჩვენ ვცდილობთ, JSON ფაილი. 1997 01:29:48,110 --> 01:29:51,184 და მაშინ ჩვენ დაველოდოთ ეს კეთდება, dot გაკეთდეს. 1998 01:29:51,184 --> 01:29:52,850 ეს ნიშნავს, რომ მე ველოდები პასუხს. 1999 01:29:52,850 --> 01:29:54,180 ეს შესაძლოა ცოტა ხნით. 2000 01:29:54,180 --> 01:29:56,360 მაშინ, ხედავთ პატარა loading. 2001 01:29:56,360 --> 01:29:59,340 თუ თქვენ გსურთ, რომ თქვენი ნახვა. 2002 01:29:59,340 --> 01:30:01,440 ასე dot გაკეთდეს, და მერე რა ხდება მაშინ, როდესაც ეს კეთდება? 2003 01:30:01,440 --> 01:30:04,040 თქვენ გაივლის ანონიმური ფუნქცია, ისევე, როგორც ჩვენ ვნახეთ ადრე. 2004 01:30:04,040 --> 01:30:07,800 იმის გამო, რომ გაკეთდეს არის ღონისძიება, უბრალოდ როგორიცაა დაწკაპვით მაუსის ან რასაც, 2005 01:30:07,800 --> 01:30:08,710 for jQuery. 2006 01:30:08,710 --> 01:30:13,710 ასე რომ თქვენ გაივლის ამ ფუნქციის მონაცემები, ტექსტი, სტატუსი, და jqXHR. 2007 01:30:13,710 --> 01:30:15,790 და, ძირითადად, ეს არის ის, უბრალოდ ზოგიერთი ცვლადის 2008 01:30:15,790 --> 01:30:22,160 რომელიც შეგიძლიათ გამოიყენოთ, შემდეგ კი აქვს სტატუსი HTTP მოთხოვნის, 2009 01:30:22,160 --> 01:30:24,470 მონაცემები, რომ ის აპირებს გაგზავნის უკან თქვენ. 2010 01:30:24,470 --> 01:30:28,740 ასე მაშინ შეგიძლიათ მოგვიანებით ინტერპრეტაცია და რაღაც აზრიანი იგი. 2011 01:30:28,740 --> 01:30:30,240 და თუ ეს ვერ მოხერხდა, როდესაც შეიძლება ეს ვერ? 2012 01:30:30,240 --> 01:30:33,780 ასევე, როდესაც HTTP მოთხოვნის აძლევს თქვენ 500 ან რამე მაგდაგვარს. 2013 01:30:33,780 --> 01:30:37,420 მაშინ, ის აპირებს გითხრათ მდგომარეობა, თუ რა სახის მარცხი იყო, რომ, 2014 01:30:37,420 --> 01:30:38,420 და ყველა სახის რამ. 2015 01:30:38,420 --> 01:30:40,630 თქვენ უნდა დავრწმუნდეთ, გაუმკლავდეს ორივე შემთხვევაში, 2016 01:30:40,630 --> 01:30:42,770 წინააღმდეგ შემთხვევაში პროგრამა მიდის გიჟები. 2017 01:30:42,770 --> 01:30:45,820 >> Davin: ასე რომ, ჰო, ეს არის ზუსტად რას დაინახა თქვენი ბოლო p-set. 2018 01:30:45,820 --> 01:30:49,720 ფაქტობრივი AJAX ზარი არის get JSON. 2019 01:30:49,720 --> 01:30:50,587 რომ არის მოწოდება. 2020 01:30:50,587 --> 01:30:52,920 და მაშინ, dot გაკეთდეს ჰგავს ამოწმებს, თუ ის წარმატებული. 2021 01:30:52,920 --> 01:30:55,620 თუ ეს წარმატებული, გსურთ რომ რამე მონაცემები. 2022 01:30:55,620 --> 01:30:59,290 თქვენ უკან, რომ JSON მოთხოვნით მონაცემები. 2023 01:30:59,290 --> 01:31:00,600 რომ არის ის, რაც თქვენ დავუბრუნდეთ. 2024 01:31:00,600 --> 01:31:04,470 ასე რომ, თუ გახსოვთ თქვენი p-set, ბევრი თქვენგანი იყო ისევე, როგორც მონაცემების bracket i 2025 01:31:04,470 --> 01:31:06,302 ან რასაც, dot ლინკი ან სათაური. 2026 01:31:06,302 --> 01:31:08,260 რასაც ბრუნდებოდა რომ JSON, რაც 2027 01:31:08,260 --> 01:31:11,020 სფეროებში, რომ JSON ობიექტი, რომ ის, რაც თქვენ დავუბრუნდეთ. 2028 01:31:11,020 --> 01:31:12,394 მონაცემები, რაც თქვენ დავუბრუნდეთ. 2029 01:31:12,394 --> 01:31:15,510 ტექსტის სტატუსი, რაღაც ისეთი, რომ გაძლევთ ვიცი რა მოხდა. 2030 01:31:15,510 --> 01:31:20,570 და შემდეგ, jqXHR, ეს მხოლოდ jQuery XML HTTP მოთხოვნის. 2031 01:31:20,570 --> 01:31:21,990 სწორედ ისევე, როგორც ობიექტი. 2032 01:31:21,990 --> 01:31:23,932 და მაშინ ვერ, ისევე, როგორც Gabe განაცხადა. 2033 01:31:23,932 --> 01:31:27,140 GABE: ჩვენი პატარა მაგალითია abc123 მხოლოდ შესამოწმებლად, თუ ეს მონაცემთა ბაზაში 2034 01:31:27,140 --> 01:31:32,260 თუ არა, მონაცემები იქნება რაღაც თქვენ ყველაფერს გააკეთებს, თუ მონაცემები dot მომხმარებლის სახელი არსებობს, 2035 01:31:32,260 --> 01:31:37,720 რაც თქვენი PHP გენერირებული თქვენ, თუ მონაცემები dot მომხმარებლის სახელი არსებობს, მაშინ 2036 01:31:37,720 --> 01:31:40,880 მე ვაპირებ პირთა, შესახებ სახელით უკვე არსებობს. 2037 01:31:40,880 --> 01:31:44,300 სხვაგან, მე უბრალოდ აპირებს, რათა პროფაილი გაგრძელება შევსების ფორმა. 2038 01:31:44,300 --> 01:31:47,860 2039 01:31:47,860 --> 01:31:50,820 OK, უსაფრთხოების, მაგარი. 2040 01:31:50,820 --> 01:31:52,060 >> Davin: გინდა? 2041 01:31:52,060 --> 01:31:54,500 >> GABE: მე მიყვარს ეს ერთი. 2042 01:31:54,500 --> 01:31:57,680 ასე რომ რაღაც გამოიყურება ნაცნობი. 2043 01:31:57,680 --> 01:31:59,750 ჩვენ თითქმის გაკეთდეს. 2044 01:31:59,750 --> 01:32:02,670 ასე რომ, ეს უბრალოდ მაგალითია თქვენ ბიჭები დაინახა კლასში. 2045 01:32:02,670 --> 01:32:04,860 თქვენ გამოყენებით argv1 აქ. 2046 01:32:04,860 --> 01:32:06,460 ასეთი ბრძანების არგუმენტი. 2047 01:32:06,460 --> 01:32:09,270 და ჩვენ MEM კოპირება, რომ შევიდა ბუფერული ზომა 12. 2048 01:32:09,270 --> 01:32:12,560 რა არის პრობლემა აქ? 2049 01:32:12,560 --> 01:32:13,660 ბუფერული overflow! 2050 01:32:13,660 --> 01:32:15,400 იმიტომ რომ ჩვენ გვაქვს ბუფერული ზომა 12. 2051 01:32:15,400 --> 01:32:18,400 argv1 შეიძლება ჰქონდეს ზომა შეადგინა. 2052 01:32:18,400 --> 01:32:19,960 ჩვენ არ რაიმე საზღვრის შემოწმება. 2053 01:32:19,960 --> 01:32:24,970 ასე რომ, ჩვენ შეიძლება კოპირება მეხსიერების დიდ ნაწილს. 2054 01:32:24,970 --> 01:32:28,630 და ჩვენ უნდა განსაკუთრებით ცუდი. 2055 01:32:28,630 --> 01:32:32,600 რა შეგვიძლია გავაკეთოთ, რომ ძალიან, ძალიან ნიშნავს ამ შემთხვევაში? 2056 01:32:32,600 --> 01:32:33,278 დიახ? 2057 01:32:33,278 --> 01:32:36,528 აუდიტორია: Part ორი მილიარდი რამ შეიცავს შესრულებადი კოდი, რომელიც ბრუნდება 2058 01:32:36,528 --> 01:32:38,127 [INAUDIBLE]. 2059 01:32:38,127 --> 01:32:38,710 GABE: ზუსტად. 2060 01:32:38,710 --> 01:32:41,110 ასე რომ, ეს სახის რამ, რომ ხალხი გამოიყენოს 2061 01:32:41,110 --> 01:32:43,344 რომ jailbreak iPhone, მაგალითად. 2062 01:32:43,344 --> 01:32:44,260 ასე, რომ ასეთი რამ. 2063 01:32:44,260 --> 01:32:48,610 იმიტომ, რომ თქვენ შეგიძლიათ მხოლოდ მიიღოს მოწყობილობა შეასრულოს რაიმე კოდი, რომელიც გსურთ. 2064 01:32:48,610 --> 01:32:50,247 სარემონტო, ასე სარემონტო არის ადვილი. 2065 01:32:50,247 --> 01:32:51,330 უბრალოდ შემოწმება ფარგლებს გარეთ. 2066 01:32:51,330 --> 01:32:53,455 თქვენ შეამოწმოთ null რადგან ჩვენ ყოველთვის შევამოწმოთ null 2067 01:32:53,455 --> 01:32:54,940 როდესაც ჩვენ საქმე სტრიქონები. 2068 01:32:54,940 --> 01:32:57,840 და შემდეგ, თქვენ მიიღოს სიმებიანი სიგრძე ადრე. 2069 01:32:57,840 --> 01:33:00,150 და თუ სიმებიანი სიგრძე არის სწორი string 2070 01:33:00,150 --> 01:33:03,700 სიგრძის, რომელიც არის შიგნით 0 და 12, მაშინ ჩვენ კარგი. 2071 01:33:03,700 --> 01:33:07,144 >> Davin: თუ თქვენ არ ვამოწმებ null, რეალური სწრაფი, რა მოხდება? 2072 01:33:07,144 --> 01:33:07,810 ეს კიდე seg ბრალია. 2073 01:33:07,810 --> 01:33:10,850 რატომ იქნება ეს seg ბრალია? 2074 01:33:10,850 --> 01:33:12,510 იმიტომ, რომ თქვენ მოუწოდებდა strlen on null. 2075 01:33:12,510 --> 01:33:13,010 GABE: ჰო. 2076 01:33:13,010 --> 01:33:16,490 2077 01:33:16,490 --> 01:33:19,630 ჭეშმარიტი ან მცდარი, გამოყენებით დაგავიწყდათ არის კარგი იდეა. 2078 01:33:19,630 --> 01:33:20,430 >> აუდიტორია: False. 2079 01:33:20,430 --> 01:33:21,150 >> GABE: False. 2080 01:33:21,150 --> 01:33:23,870 ბევრი პაროლები, და დიდი, გრძელი მიიჩნიეს. 2081 01:33:23,870 --> 01:33:26,050 ბოქლომი ხატები უსაფრთხოების უზრუნველსაყოფად. 2082 01:33:26,050 --> 01:33:27,080 >> აუდიტორია: False. 2083 01:33:27,080 --> 01:33:27,749 >> GABE: False. 2084 01:33:27,749 --> 01:33:28,790 ეს არაფერს არ ნიშნავს. 2085 01:33:28,790 --> 01:33:30,480 ეს არის მხოლოდ ხატი. 2086 01:33:30,480 --> 01:33:32,824 SSL იცავს კაცი შუა თავდასხმა. 2087 01:33:32,824 --> 01:33:33,490 აუდიტორია: False. 2088 01:33:33,490 --> 01:33:34,110 GABE: False. 2089 01:33:34,110 --> 01:33:35,355 OK, ასე რომ ყველა, ვინც ცრუ. 2090 01:33:35,355 --> 01:33:38,324 2091 01:33:38,324 --> 01:33:39,490 ლამაზი. 2092 01:33:39,490 --> 01:33:40,220 [INAUDIBLE] 2093 01:33:40,220 --> 01:33:42,500 მინდა ვისაუბრო ეს? 2094 01:33:42,500 --> 01:33:43,259 თქვენი მხრივ. 2095 01:33:43,259 --> 01:33:45,050 Davin: სახის თავდასხმები, კაცი შუა. 2096 01:33:45,050 --> 01:33:47,134 რა არის კაცი შუა თავდასხმა? 2097 01:33:47,134 --> 01:33:48,050 აუდიტორია: [INAUDIBLE]. 2098 01:33:48,050 --> 01:33:51,437 2099 01:33:51,437 --> 01:33:54,020 Davin: თუ თქვენ გაგზავნის HTTP მოთხოვნით, ისინი შეიძლება ამის გაკეთება, არა? 2100 01:33:54,020 --> 01:33:57,890 მაგრამ თუ თქვენ გაგზავნის HTTPS, ისინი ალბათ ვერ შეძლებს ამის გაკეთება. 2101 01:33:57,890 --> 01:33:59,952 არსებობს უამრავი რაოდენობა ერთად თქვენი კავშირი. 2102 01:33:59,952 --> 01:34:00,660 თქვენ უნდა მარშრუტიზატორები. 2103 01:34:00,660 --> 01:34:01,746 თქვენ უნდა DNS სერვერები. 2104 01:34:01,746 --> 01:34:04,120 თუ ვინმე შეუძლია ფიზიკურად ვნახოთ, რა თქვენ გაგზავნის, 2105 01:34:04,120 --> 01:34:06,140 ასე რომ ვინმე შეძლებს რეალურად მიიღონ შორის, 2106 01:34:06,140 --> 01:34:08,840 კლიენტს და სერვერზე, და ნახოს, რა თქვენ გაგზავნის, 2107 01:34:08,840 --> 01:34:10,298 ეს არის ადამიანი, შუა თავდასხმა. 2108 01:34:10,298 --> 01:34:14,287 ასე, რომ თქვენ ცდილობთ მიიღონ სერვერზე, ან შეუძლია ვხედავ უარესი, 2109 01:34:14,287 --> 01:34:16,620 თქვენ შეიძლება ნახოს cookies ან რამე მაგდაგვარს. 2110 01:34:16,620 --> 01:34:19,290 >> ასე მაგალითად, თუ თქვენ არ იყენებთ SSL, მან 2111 01:34:19,290 --> 01:34:21,900 შეიძლება ნახოს თქვენი იდ cookies. 2112 01:34:21,900 --> 01:34:25,460 და ეს ჰქვია სესიაში შემოჭრის რადგან ხედავს თქვენი ID cookies, 2113 01:34:25,460 --> 01:34:28,317 და მაშინ მას შეუძლია წავიდეს, რომ ნახვა და პრეტენზია იყოს თქვენთვის. 2114 01:34:28,317 --> 01:34:31,150 იმის გამო, რომ ისევე, როგორც PHP, მახსოვს როდესაც ჩვენ შესული სისტემაში, რა ვქნათ? 2115 01:34:31,150 --> 01:34:33,340 ჩვენ დავსახეთ სხდომა ID ტოლია ID. 2116 01:34:33,340 --> 01:34:34,810 ასე, რომელიც განსაზღვრავს თქვენ. 2117 01:34:34,810 --> 01:34:38,300 ამიტომ, თქვენ შეგიძლიათ ნახოთ თქვენი პორტფელის და არა ყველას სხვისი გადააჭარბა. 2118 01:34:38,300 --> 01:34:42,320 >> ისე, თუ მე შეუძლია მიიღოს, რომ cookie, მერე შეგიძლიათ შეხვიდეთ გადატანა, რომ გვერდზე. 2119 01:34:42,320 --> 01:34:45,380 და მაშინ, მე შემიძლია მხოლოდ ვხედავ თქვენი პერსონალი და დაიწყოს ყიდვის და გაყიდვის პერსონალი. 2120 01:34:45,380 --> 01:34:46,800 ასე რომ, ეს სესიაში შემოჭრის. 2121 01:34:46,800 --> 01:34:50,810 მაგრამ თქვენ არ უნდა შეეძლოს, რომელთა მიზანია, ასე რომ თქვენ შეგიძლიათ გამოიყენოთ კაცი შუა თავდასხმა 2122 01:34:50,810 --> 01:34:52,290 მაშინაც კი, თუ ისინი გამოყენებით SSL. 2123 01:34:52,290 --> 01:34:53,520 მაგრამ თქვენ არ უნდა შეეძლოს. 2124 01:34:53,520 --> 01:34:56,580 თუ ისინი გამოყენებით SSL, თქვენ არ შეგიძლიათ სხდომაზე გაიტაცეს. 2125 01:34:56,580 --> 01:34:58,927 რატომ? 2126 01:34:58,927 --> 01:35:01,135 იმიტომ, რომ ეს ყველა დაშიფრული, არა? თუ ეს დაშიფრული, 2127 01:35:01,135 --> 01:35:03,509 და მე მაინც კაცი შუა, მე მაინც თქვენი მონაცემები. 2128 01:35:03,509 --> 01:35:04,279 ეს ჯარიმა. 2129 01:35:04,279 --> 01:35:05,070 მაგრამ ეს დაშიფრული. 2130 01:35:05,070 --> 01:35:07,750 ასე რომ, მე ნამდვილად არ გამოიყენოთ იგი. 2131 01:35:07,750 --> 01:35:09,840 ასე რომ, ორი. 2132 01:35:09,840 --> 01:35:11,544 >> რეალური სწრაფი, ჯვრის საიტის მოთხოვნა გაყალბების. 2133 01:35:11,544 --> 01:35:13,960 რომ ეს მხოლოდ იმ შემთხვევაში, თუ არსებობს ლინკი და ბმული აკეთებს რაღაც 2134 01:35:13,960 --> 01:35:14,890 რომ თქვენ არ ვფიქრობ, რომ ეს უნდა გავაკეთოთ. 2135 01:35:14,890 --> 01:35:18,150 ასე მაგალითად, თუ რგოლი იყო აპირებს აქციების შესაძენად ან გაყიდოს აქციები, 2136 01:35:18,150 --> 01:35:19,360 და თქვენ არ ვიცი, რომ. 2137 01:35:19,360 --> 01:35:22,040 თქვენ დაკლიკავთ რგოლი, თხოვნით შეიძინა 2138 01:35:22,040 --> 01:35:24,240 ან გაყიდული რაღაც, რომ თქვენ არ ნიშნავს, რომ გავაკეთოთ. 2139 01:35:24,240 --> 01:35:25,120 ეს რომ. 2140 01:35:25,120 --> 01:35:30,720 >> ჯვრის საიტზე სკრიფტინგის, ასე რომ აქ, თქვენ გავლის მეშვეობით ცვლადი q, 2141 01:35:30,720 --> 01:35:33,510 ნაცვლად გადადის გარკვეული სახის ღირებულება, შესაძლოა q ჰგავს სახელი. 2142 01:35:33,510 --> 01:35:36,560 ასე რომ, ნაცვლად გავლის q ტოლობის Davin ან რამე მაგდაგვარს, 2143 01:35:36,560 --> 01:35:38,740 თუ თქვენ არ იყენებთ HTML სპეციალური სიმბოლო, თუ 2144 01:35:38,740 --> 01:35:43,100 არ გაქცევა ეს დავრწმუნდეთ, რომ ეს OK, მაშინ მე ვერ გაივლის ნაცვლად, 2145 01:35:43,100 --> 01:35:46,910 მოდით ვთქვათ, აქ მე ვამბობ, ბეჭდვით ან რამე მაგდაგვარს, 2146 01:35:46,910 --> 01:35:51,070 მაშინ მე ვერ გაივლის აქ სკრიპტის ზარი. 2147 01:35:51,070 --> 01:35:53,140 >> ასე რომ, ნაცვლად უბრალოდ მიღების ცვლადი, 2148 01:35:53,140 --> 01:35:54,960 მე მაშინ შეასრულოს ეს სკრიპტი ზარი. 2149 01:35:54,960 --> 01:35:57,065 ასე რომ შიგნით რომ script მოვუწოდებთ, რას აკეთებთ? 2150 01:35:57,065 --> 01:36:00,190 დოკუმენტის dot ადგილმდებარეობა, რომ აპირებს შეიცვალოს მდებარეობა დოკუმენტი. 2151 01:36:00,190 --> 01:36:02,290 ამიტომ, მე ვაპირებ გადამისამართება სხვაგან. 2152 01:36:02,290 --> 01:36:08,170 ეს ე.წ. ცუდი ბიჭი ამ მაგალითად, ძალიან კარგი. 2153 01:36:08,170 --> 01:36:10,536 ვერ ვფიქრობ სიტყვა. 2154 01:36:10,536 --> 01:36:12,410 და მაშინ, რა არის კი უარესი ის არის, რომ მე ვაპირებ 2155 01:36:12,410 --> 01:36:16,832 რომ შემდეგ შეიქმნა cookie, რომელიც რამდენიმე ცვლადი მაქვს ამ ნახვა. 2156 01:36:16,832 --> 01:36:19,040 მე ვაპირებ ვაყენებთ მას ტოლი დოკუმენტის dot cookie. 2157 01:36:19,040 --> 01:36:20,660 ამიტომ, მე ვაპირებ მოიპარონ თქვენი cookie. 2158 01:36:20,660 --> 01:36:22,951 და მე ვაპირებ გადამისამართება ზოგიერთი ინფორმაციის ნახვა 2159 01:36:22,951 --> 01:36:25,120 რომ თქვენ არ უნდა იყოს წვდომის. 2160 01:36:25,120 --> 01:36:29,250 და ეს ყველაფერი ხდება იმიტომ, რომ თქვენ არ აფარებს რა ვნახე. 2161 01:36:29,250 --> 01:36:29,910 ჰო? 2162 01:36:29,910 --> 01:36:32,160 >> აუდიტორია: ასე რომ მხოლოდ რათა, რომ ნათელი, ის 2163 01:36:32,160 --> 01:36:37,550 vulnerable.com რომ დაუცველი ამ. 2164 01:36:37,550 --> 01:36:39,300 ისე, რომ რგოლი შეიძლება, როგორც ჩანს, ნებისმიერ გვერდზე. 2165 01:36:39,300 --> 01:36:42,200 ვინმე დააჭერს ეს, მიდის vulnerable.com. 2166 01:36:42,200 --> 01:36:43,700 თქვენ გაქვთ ბმულების vulnerable.com. 2167 01:36:43,700 --> 01:36:46,670 მოდით ვთქვათ Facebook არის დაუცველი, ამიტომ facebook.com. 2168 01:36:46,670 --> 01:36:48,310 თქვენ გაქვთ თქვენი Facebook cookie. 2169 01:36:48,310 --> 01:36:50,925 რას აკეთებს, თქვენ აპირებს facebook.com, 2170 01:36:50,925 --> 01:36:53,990 ის მაშინვე გადამისამართება თქვენ badguy.com, 2171 01:36:53,990 --> 01:36:57,182 მაგრამ მათ შორის თქვენი cookie ინფორმაცია. 2172 01:36:57,182 --> 01:36:59,310 ასე რომ, ეს არის სწრაფი გადამისამართება, მაგრამ თქვენი Facebook cookie 2173 01:36:59,310 --> 01:37:02,572 შედის, რომ გადამისამართება, და ასე ისინი [INAUDIBLE]. 2174 01:37:02,572 --> 01:37:04,280 GABE: ჰო, იქ ზოგიერთი ძალიან ნიშნავს რამ 2175 01:37:04,280 --> 01:37:06,070 რომ ადამიანს შეუძლია გააკეთოს, თუ არსებობს ამ. 2176 01:37:06,070 --> 01:37:09,190 მაგალითად, თუ Facebook დაშვებული ყველას, შეცვალოთ თქვენი მომხმარებლის სახელი, 2177 01:37:09,190 --> 01:37:11,680 და ისინი არ რაიმე საღი აზრის ამოწმებს, ასე რომ თქვენ 2178 01:37:11,680 --> 01:37:16,810 შეიძლება ჩადეთ JavaScript რამ, რომ ცვლის თქვენი ფოტო hamster. 2179 01:37:16,810 --> 01:37:22,590 და რომელიც განათავსებს იგივე JavaScript შევიდა ყველას, ვინც შენს გვერდზე. 2180 01:37:22,590 --> 01:37:26,400 ასე რომ ყველას, ვინც შენს გვერდი აქვს იგივე მომხმარებლის სახელი. 2181 01:37:26,400 --> 01:37:30,104 და რადგან ეს ვირუსი, იგი ავრცელებს exponentially. 2182 01:37:30,104 --> 01:37:32,270 Davin: ჩვენ გამოტოვოთ ბოლო ერთი, და მაშინ ჩვენ გავაკეთეთ. 2183 01:37:32,270 --> 01:37:34,120 ასე რომ, ეს არის კიდევ ერთი მაგალითი. 2184 01:37:34,120 --> 01:37:36,120 ასე რომ, ეს არის, რომ ისინი არ აფარებს მათი SQL მაგიდასთან. 2185 01:37:36,120 --> 01:37:37,090 ასე რომ თქვენ შეგიძლიათ ჩამოაგდეს ის. 2186 01:37:37,090 --> 01:37:38,805 ასე რომ გსურთ გაქცევა რამ. 2187 01:37:38,805 --> 01:37:44,010 რომ იყო წინა მაგალითში ჯვრის საიტზე სკრიფტინგის. 2188 01:37:44,010 --> 01:37:45,430 უკაცრავად ჩვენ გაიქცა ცოტა გვიან. 2189 01:37:45,430 --> 01:37:46,870 ხვალ, ბოდიში! 2190 01:37:46,870 --> 01:37:48,560 ხვალ, ჩვენ გვაქვს საათებში. 2191 01:37:48,560 --> 01:37:50,870 ასე ოფისში საათი Cabbot 8:00 11:00. 2192 01:37:50,870 --> 01:37:55,240 სამუშაო საათებია მკაცრად ინტელექტუალური კითხვები. 2193 01:37:55,240 --> 01:37:56,587