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