1 00:00:00,000 --> 00:00:02,570 [Powered by Google Translate] [9 ہفتہ] 2 00:00:02,570 --> 00:00:04,740 [ڈیوڈ J. Malan - ہارورڈ یونیورسٹی] 3 00:00:04,740 --> 00:00:07,170 یہ [CS50 ہے. CS50.TV] - 4 00:00:07,170 --> 00:00:12,350 ٹھیک ہے. واپسی پر خوش آمدید. یہ CS50 ہے، اور یہ 9 ہفتے کے آغاز ہے. 5 00:00:12,350 --> 00:00:16,600 آج ہم نے خاص طور پر ڈیزائن، اب کوئی C کے تناظر میں توجہ مرکوز 6 00:00:16,600 --> 00:00:20,010 لیکن پی ایچ پی کے سیاق و سباق اور SQL تھوڑا سا اور جاوا سکرپٹ کے تھوڑا سا میں، 7 00:00:20,010 --> 00:00:23,730 خاص طور پر دونوں 7 pset کے آخر کی طرف بھی اپنی حتمی منصوبہ. 8 00:00:23,730 --> 00:00:26,310 اصل میں، اگر آپ کو اپنے حتمی منصوبے میں اس نقطہ پر ہیں 9 00:00:26,310 --> 00:00:30,100 شاید کے طور پر ایک یا اس گھنٹے آپ پہلے جہاں کم از کم کچھ سوچ دینے شروع کر دیا 10 00:00:30,100 --> 00:00:33,730 آپ کی آخری منصوبہ اور تم سوچ رہی ہو آپ کو 1 یا 2 ہم جماعتوں کے ساتھ مل کر کام کرنا چاہتے ہیں کر رہے ہیں، 11 00:00:33,730 --> 00:00:36,150 اگر آپ کو تکلیف ہونے کے ساتھ منسلک رہے ہیں ہم جماعتوں نے کہا کہ، 12 00:00:36,150 --> 00:00:40,570 باہر cs50.net/partners/form پر فارم کو بھریں بلا جھجھک. 13 00:00:40,570 --> 00:00:42,880 یہ صرف آپ سے کہتا ہے کہ تم کون ہو، منصوبے کی تم کس طرح کے بارے میں سوچ رہے ہیں، 14 00:00:42,880 --> 00:00:44,870 جہاں آپ کو صرف انتظامی وجوہات کی بناء پر رہتے ہیں. 15 00:00:44,870 --> 00:00:49,510 اور پھر اگر آپ اگلے ہفتے یا تو وہاں کے سپریڈ شیٹ URL پر نظر رکھنا چاہتے ہیں، 16 00:00:49,510 --> 00:00:53,520 آپ کو گوگل DOC کے ایک ورژن صرف پڑھنے کے تو دیکھ سکتے ہیں 17 00:00:53,520 --> 00:00:56,010 جس میں ہم وہ معلومات جمع کر رہے ہیں. 18 00:00:56,010 --> 00:00:58,930 تو اگر آپ کسی کے ساتھ مل کر کام کرنا چاہتے ہیں، تمام اسباب کی طرف سے لوگوں کو باہر تک پہنچنے کے لئے آزاد محسوس کرتا ہوں 19 00:00:58,930 --> 00:01:00,480 اس طریقہ کار کے ذریعے. 20 00:01:00,480 --> 00:01:02,690 لیکن لوگوں کی اکثریت کا کام اکیلے کرتے ہیں. وہ بالکل ٹھیک ہے. 21 00:01:02,690 --> 00:01:06,120 تو نہیں لگتا ہے کہ یہ کسی بھی واجب راہ میں ہے. 22 00:01:06,120 --> 00:01:09,680 جمعہ کے روز یہ صرف آپ کے وزٹرز کا ریکارڈ رکھا اور یہاں میں ایک ٹیم کے چند تھا، 23 00:01:09,680 --> 00:01:11,100 سب سے زیادہ حصہ کے لئے خالی تھیٹر. 24 00:01:11,100 --> 00:01:14,600 تاکہ 3 سیاحوں بیٹھے ہوئے تھے وہاں، یہ تھوڑا عجیب تھا. 25 00:01:14,600 --> 00:01:18,970 ہم کس کے بارے میں بات کی تھی ڈیٹا بیس کی تھی اور ہم نے 7 تھوڑا سا pset کے بارے میں بات کی ہے. 26 00:01:18,970 --> 00:01:22,200 اور یہ کہ اگر آپ کے پاس ہے کہ ویڈیو پر ابھی تک پکڑنے نہیں ہوا، یہ ٹھیک ہے. 27 00:01:22,200 --> 00:01:26,770 میں کسی بھی لفظ کی وضاحت کرنے کی کوشش کریں کہ ہم نے کے لئے حاصل کی جاچکی دوسری صورت میں لیں گے کریں گے 28 00:01:26,770 --> 00:01:28,840 جمعہ کے لیکچر پر مبنی ہے. 29 00:01:28,840 --> 00:01:32,550 >> لیکن آج ہم آپ کو پوائنٹ حاصل کرنے کے لئے کوشش کرنے کے لئے جا رہے ہیں 30 00:01:32,550 --> 00:01:34,990 7 pset کی طرح کچھ کرنے کے قابل نہ ہونے کا 31 00:01:34,990 --> 00:01:37,360 لیکن حقیقت کو سمجھنے ہڈ کے نیچے جا رہا ہے، 32 00:01:37,360 --> 00:01:41,910 خاص طور پر abstractions کہ ہم functions.php فائل میں جگہ میں ڈال دیا کچھ 33 00:01:41,910 --> 00:01:45,780 آپ کی زندگی تھوڑی آسان لیکن پڑتا ہے کہ آپ بالآخر سمجھ 34 00:01:45,780 --> 00:01:48,760 تاکہ جب تربیت کے پہیوں کو چند ہفتوں میں تم اب بھی زندہ رہ سکتے ہیں 35 00:01:48,760 --> 00:01:53,750 حقیقی دنیا میں آپ کے نیچے کسی بھی CS50 فریم ورک کے بغیر یہ سب کرتے ہیں. 36 00:01:53,750 --> 00:01:57,500 تم میں سے ان لوگوں کے لیے جو واقف ہیں یہ ڈالر _SESSION، 37 00:01:57,500 --> 00:02:01,960 یا جو پہلے ہی جمعہ کے روز ویڈیو پکڑ لیا، جو سیشن ہمیں کیا ہے 38 00:02:01,960 --> 00:02:04,330 ایک پی ایچ پی کی بنیاد پر ویب ایپلیکیشن میں؟ 39 00:02:04,330 --> 00:02:09,650 یہ ایک superglobal متغیر ہے، جس کا مطلب ہے کہ یہ روح میں اسی طرح ہے اور پوسٹ کرنے کے ہے 40 00:02:09,650 --> 00:02:13,970 اور کچھ دوسروں کو، لیکن ہے کہ اس بات کو مفید ہے کے لئے ہے؟ 41 00:02:13,970 --> 00:02:18,320 >> سیشن کیا ہے کے لئے استعمال کیا جاتا ہے؟ جی ہاں. [طالب علم] لاگ ان 42 00:02:18,320 --> 00:02:21,040 معاف کیجئے گا؟ [طالب علم] اندر اندر یقینا لاگنگ لاگنگ. 43 00:02:21,040 --> 00:02:25,100 7 pset میں ہم اس سیشن superglobal کا استعمال کرتے ہوئے کی سہولت کے لاگ ان کر رہے ہیں 44 00:02:25,100 --> 00:02:28,600 اور کیا اس superglobal کے بارے میں اچھی بات ہے یہ ہے کہ یہ ایک ساہچری سرنی ہے. 45 00:02:28,600 --> 00:02:33,190 ساہچری سرنی، یاد ہے، صرف ایک صف ہے، لیکن جن کے سوچکانکوں نہیں رہ تعداد ہونا پڑے گا 46 00:02:33,190 --> 00:02:37,670 012 کی طرح. وہ تعداد یا وہ بھی ڈور کر سکتے ہیں کر سکتے ہیں. 47 00:02:37,670 --> 00:02:44,890 اور اگر ایسا ہے تو آپ کو 7 pset میں dived ابھی تک ہے آپ کو یاد ہے، کہ ہم نامی ایک اہم ID ذخیرہ کرنے کر رہے ہیں کر سکتے ہیں 48 00:02:44,890 --> 00:02:50,330 اس ساہچری سرنی جن کی قیمت 123 کی طرح کچھ ہے کے اندر - 49 00:02:50,330 --> 00:02:53,780 جو کچھ بھی اس وقت صارف ID میں ریکارڈ ہے. 50 00:02:53,780 --> 00:02:59,470 اس کے لئے حوصلہ افزائی ہے کہ اس کے بعد بھی صارف localhost کا دورہ کیا ہے 51 00:02:59,470 --> 00:03:02,720 یا میری ویب سائٹ عام طور پر اور پھر وہ ریکارڈ ہے، 52 00:03:02,720 --> 00:03:07,320 یہاں تک کہ اگر وہ ایک لنک پر کلک کریں نہ کریں یا 5 منٹ کے لئے میری ویب سائٹ پر واپس 53 00:03:07,320 --> 00:03:10,730 یا بھی ایک گھنٹہ یا ایک دن بھی لیکن وہ ان کے براؤزر ونڈو کو کھلا چھوڑ 54 00:03:10,730 --> 00:03:14,370 اس superglobal کے ذریعے مجھے یاد ہے کہ وہ اندر کا ریکارڈ کر سکتے ہیں 55 00:03:14,370 --> 00:03:21,140 >> دوسرے الفاظ میں، یہ مجھے تھوڑا طویل مدتی میں ایک صارف کے بارے میں کچھ کرنا چاہتے ہیں کو محفوظ کرنے کی اجازت دیتا ہے ہے. 56 00:03:21,140 --> 00:03:24,390 اور تم خریداری کی ٹوکری کے اوتار کے طور پر اس سے سچ میں سوچ سکتے ہیں. 57 00:03:24,390 --> 00:03:27,740 ایمیزون جیسی جگہوں واضح طور پر آپ کو ایک خریداری کی ٹوکری میں چیزیں ڈال، 58 00:03:27,740 --> 00:03:32,230 لیکن HTTP، پروٹوکول ہے کہ ویب طاقتوں، بے وطن ہے 59 00:03:32,230 --> 00:03:34,230 معنی میں، کہ جب تم میں سے کسی ایک کو آپ کو ایک ویب سائٹ کے 60 00:03:34,230 --> 00:03:37,290 سب سے زیادہ حصہ کے لئے آپ کو کچھ مسلسل نیٹ ورک کنکشن کی ضرورت نہیں ہے 61 00:03:37,290 --> 00:03:39,270 آپ کے براؤزر اور سرور کے درمیان. 62 00:03:39,270 --> 00:03:42,190 جیسے ہی آپ HTML اور JPEGs اور GIFs ڈاؤن لوڈ کر لیا ہے اور تمام اس کے 63 00:03:42,190 --> 00:03:48,200 کنکشن دور چلا جاتا ہے اور آپ کو سرور سے HTML اور whatnot کی ایک کاپی ہے. 64 00:03:48,200 --> 00:03:53,000 لیکن اگر سرور نے آپ کے بارے میں کچھ یاد کرنا چاہتا ہے، 65 00:03:53,000 --> 00:03:57,580 بوجھ اصل میں اس کی معلومات کے ریکارڈ کے سرور پر ہے. 66 00:03:57,580 --> 00:04:00,130 اور تاکہ آپ پروگرامر جو سرور پر کنٹرول ہے 67 00:04:00,130 --> 00:04:04,400 سب سے زیادہ کچھ ہے جو آپ چاہتے ہیں اس superglobal ساہچری سرنی کے اندر ڈال سکتے ہیں 68 00:04:04,400 --> 00:04:06,850 اور یہ وہاں اگلی بار صارف واپس آتا ہو جائے گا، 69 00:04:06,850 --> 00:04:12,070 چاہے وہ منٹ ہے یا بھی دن کے بعد، جب تک کہ وہ ان کے براؤزر ونڈو کو بند کرتے ہیں، 70 00:04:12,070 --> 00:04:14,360 جس میں نقطہ سیشن غائب. 71 00:04:14,360 --> 00:04:17,779 تو یہ الپکالک سٹوریج ہے، غیر مسلسل ہے، اور اسے دور جانے کا مقصد ہے 72 00:04:17,779 --> 00:04:22,360 جیسے ہی صارف ان کا براؤزر بند - ٹیب صرف یہ ہے کہ نہیں، اکثر پورے براؤزر، 73 00:04:22,360 --> 00:04:24,930 اس سے مؤثر طریقے سے صارف لاگ آؤٹ. 74 00:04:24,930 --> 00:04:28,000 تو یہ کس طرح بات اصل میں لاگو کیا جاتا ہے؟ 75 00:04:28,000 --> 00:04:31,360 کی ایک سادہ مثال کے طور پر ہم نے جمعہ کو دیکھا میں ایک فوری نظر ڈالیں. 76 00:04:31,360 --> 00:04:33,340 ان مجریچت کے لئے، اس کے طور پر کے طور پر آسان تھا. 77 00:04:33,340 --> 00:04:35,910 یہ ایک ویب صفحہ ہے جن کا واحد مقصد زندگی کے وزٹرز کا ریکارڈ رکھا جائے گا. میرے متعلق بتانا ہے ہے 78 00:04:35,910 --> 00:04:38,000 کتنی بار میں اس صفحے کا دورہ کیا ہے. 79 00:04:38,000 --> 00:04:41,670 یہ پیر کو پہلے یہاں وقت آ گیا ہے کہ میں اس کا دورہ کیا ہے، تو اس میں 0 مرتبہ کا کہنا ہے کہ. 80 00:04:41,670 --> 00:04:46,940 >> لیکن اگر میں اس صفحے کو دوبارہ لوڈ کرنا شروع وقت 1، 2، 3، 4، 5 کا کہنا ہے کہ، 81 00:04:46,940 --> 00:04:49,800 اور یہ گنتی پر آخر میں رکھ دے گا،،، 82 00:04:49,800 --> 00:04:53,130 ہر وقت کے لئے میں نے اس پر اصل کو دوبارہ لوڈ کریں پر کلک کریں. 83 00:04:53,130 --> 00:04:58,830 تو یہ کس طرح کام کر رہا ہے؟ کے وزٹرز کا ریکارڈ رکھا جائے گا. میرے یہ کہا جاتا counter.php فائل کی اندر جانے دو 84 00:04:58,830 --> 00:05:02,490 اس کے سب سے اوپر حصہ نیلے کے تبصرے ہے، لیکن دلچسپ حصہ یہاں ہے. 85 00:05:02,490 --> 00:05:06,670 13 لائن پر ہم نے اس تقریب session_start کہتے ہیں، 86 00:05:06,670 --> 00:05:09,600 اور یہ کہ لفظی ہے آپ کی ضرورت ہے اگر آپ تک رسائی حاصل کرنا چاہتے ہیں 87 00:05:09,600 --> 00:05:13,610 اس خصوصی superglobal $ کرنے کے لئے فون _SESSION. 88 00:05:13,610 --> 00:05:17,430 یہ ممکن تمام کرتا ہے، اور ہم نے ایک لمحے کس طرح ہے کہ ہر ممکن میں نظر آئے گا. 89 00:05:17,430 --> 00:05:20,350 لائن 16 نوٹس ہے کہ میں کیا کر رہا ہوں میں. 90 00:05:20,350 --> 00:05:25,960 اگر چابی، جسے انسداد - دوسرے الفاظ میں، انڈیکس قدر - "انسداد" 91 00:05:25,960 --> 00:05:32,310 اس صف کے اندر موجود ہے بلایا سیشن، تو میں کیا سطر میں اس کے ساتھ ذیل میں کر رہے؟ 92 00:05:32,310 --> 00:05:36,650 18 لائن کر رہی ہے؟ 93 00:05:36,650 --> 00:05:40,360 >> [اشراوی طالب علم کے جواب] یہ کیا ہے؟ [طالب علم] قدر ذخیرہ کرنے. اچھی بات ہے. 94 00:05:40,360 --> 00:05:45,800 یہ ایک نیا مقامی عارضی متغیر میں قیمت ہے کہ اجلاس میں ذخیرہ کرنے کا ابھی 95 00:05:45,800 --> 00:05:48,250 تمام چھوٹے میں دہشت ڈالر. 96 00:05:48,250 --> 00:05:50,770 نوٹس ہے کہ پی ایچ پی نے پہلے ہی تھوڑا سست ہو رہی ہے یہاں. 97 00:05:50,770 --> 00:05:55,550 نوٹس ہم int یا فلوٹ یا سٹرنگ یا ایسا کچھ بھی کوئی ذکر نہیں ہے کہ 98 00:05:55,550 --> 00:06:00,480 کیونکہ پی ایچ پی کو کمزور ٹائپ ہے، آپ کو ایک متغیر کی قسم کی وضاحت کرنے کے جس نہیں کرتے، 99 00:06:00,480 --> 00:06:03,310 اور میں یہاں اس صورت میں بھی نہیں ہے ابھی تک اعلان کر دیا. 100 00:06:03,310 --> 00:06:08,980 میں نے اسے اندر اعلان کر رہا ہوں ان گھوبگھرالی منحنی خطوط وحدانی کی اور C کے برعکس، یہ اصل میں ٹھیک ہے. 101 00:06:08,980 --> 00:06:13,800 کوئی بات نہیں کس طرح دل کی گہرائیوں سے ایک متغیر کا اعلان اندر در اندر پی ایچ پی میں ہے - 102 00:06:13,800 --> 00:06:16,650 - کے اندر اندر گھوبگھرالی منحنی خطوط وحدانی اور اس طرح کی گھوبگھرالی تسمہ، 103 00:06:16,650 --> 00:06:21,230 پروگرام کے باقی کے لئے وقت میں اس وقت موجود ہے، 104 00:06:21,230 --> 00:06:22,680 بہتر یا بدتر کے لئے. 105 00:06:22,680 --> 00:06:26,930 تو اس کا فوری طور پر عالمی ہو جاتا ہے جیسے ہی کے طور پر آپ اس کے طور پر ہم یہاں کر رہے ہیں کی وضاحت. 106 00:06:26,930 --> 00:06:31,620 >> دوسری صورت میں، میں اگر نہ ملے کہ سیشن superglobal میں کچھ کرتے ہیں، 107 00:06:31,620 --> 00:06:34,680 میں بظاہر 0 یہ متغیر انسداد ابتدا کر رہا ہوں، 108 00:06:34,680 --> 00:06:37,580 اس طرح صرف سنبھالنے صارف یہاں کبھی نہیں ہے پہلے. 109 00:06:37,580 --> 00:06:40,030 اور یقینا تو اس انسداد کس طرح incrementing ہے؟ 110 00:06:40,030 --> 00:06:44,480 میں اس ساہچری سرنی کی قیمت ہے جو اندر ہے کو اپ ڈیٹ کر رہا ہوں 111 00:06:44,480 --> 00:06:49,530 جو انسداد 1 + ہے برابر مقرر کر. 112 00:06:49,530 --> 00:06:53,520 اگر میں نیچے صفحے کے HTML سکرال یہاں، یہ واقعی بہت آسان ہے. 113 00:06:53,520 --> 00:06:58,920 میں اس صفحے کے جسم میں ہے، "تم اس طرح اور وقت اس سائٹ کا دورہ کیا." 114 00:06:58,920 --> 00:07:00,350 اور یہ ایک پی ایچ پی کی تعمیر ہے. 115 00:07:00,350 --> 00:07:06,080 اگر آپ <=، یہ تقریب کیا مؤثر طریقے سے برابر ہے.؟ کیا 116 00:07:07,920 --> 00:07:12,600 یہ واقعی printf طرح کچھ، جو ہم C میں کئی بار دیکھا ہے کے برابر ہے، 117 00:07:12,600 --> 00:07:15,940 کے طور پر آپ کو 7 pset میں رپورٹ سے پہلے ہی معلوم ہو سکتا ہے اگرچہ 118 00:07:15,940 --> 00:07:20,160 پرنٹ بھی ایک تقریب ہے جو صرف کچھ پرنٹ ہے، اس کی شکل کوڈ اصل میں نہیں استعمال کرتا ہے، 119 00:07:20,160 --> 00:07:23,270 اور آپ اصل میں گونج کے ساتھ کہہ سکتے ہیں. 120 00:07:23,270 --> 00:07:27,460 وہ سب کبھی تو تھوڑا سا مختلف اگرچہ خالص اثر بالآخر ایک ہی ہے. 121 00:07:27,460 --> 00:07:31,270 تو اس کا استعمال علامت برابر کرنے کے ایک خوبصورت راستے سے ترتیب دیں 122 00:07:31,270 --> 00:07:34,910 succinctly سے آپ کو کرنے کے قابل دوسری صورت میں ہو سکتا ہے. 123 00:07:34,910 --> 00:07:38,370 تو یہ ہے اس سائٹ کرتا ہے. یہ انسداد کی قدر پرنٹ. 124 00:07:38,370 --> 00:07:40,550 یہ سب کس طرح اصل میں ہو رہا ہے؟ 125 00:07:40,550 --> 00:07:43,250 آپ کو ایک ہفتے کو یاد کرتے ہیں یا تو پہلے ہم ہڈ کے نیچے دیکھ کر شروع کر دیا کر سکتے ہیں 126 00:07:43,250 --> 00:07:47,910 میں کس طرح ایک ویب صفحہ اس انسپکٹر کے ٹیب کا استعمال کرتے ہوئے کی طرف سے کام کرتا ہے. 127 00:07:47,910 --> 00:07:51,900 >> کروم میک ورژن، ونڈوز ورژن، یہاں تک کہ اور لینکس ورژن میں دونوں یہ ہے، 128 00:07:51,900 --> 00:07:59,510 اور فائر فاکس اور IE اسی طرح کے میکانزم ہے جس کے تحت آپ اس بلٹ میں debugger ہے 129 00:07:59,510 --> 00:08:01,400 اندر کے براؤزر کی. 130 00:08:01,400 --> 00:08:03,040 مندرجہ ذیل میں ایک نظر ڈالیں. 131 00:08:03,040 --> 00:08:06,960 یہاں ٹیبز کی ایک پوری چڑھانے ہے، اور یاد کہ leftmost ایک عناصر ہے، 132 00:08:06,960 --> 00:08:10,700 اور کوئی بات نہیں کس طرح godawful HTML اور جاوا سکرپٹ ایک صفحہ میں ہے 133 00:08:10,700 --> 00:08:15,710 یاد کہ عناصر کے ٹیب کے ساتھ HTML اصل hierarchically پر کر سکتے ہیں 134 00:08:15,710 --> 00:08:17,050 اور اچھا اور صفائی کے ساتھ. 135 00:08:17,050 --> 00:08:19,370 تو اگر آپ گوگل یا فیس بک کی طرح ایک ویب سائٹ سے سیکھنے کی کوشش کر رہے ہیں 136 00:08:19,370 --> 00:08:22,370 یا واقعی کسی بھی ویب سائٹ کا احساس ہے کہ آپ شاید دور ہو بہتر 137 00:08:22,370 --> 00:08:26,360 ، ماخذ کوڈ میں اس طرح کے طور پر خام ذریعہ دیکھنے کی مخالفت کی تلاش 138 00:08:26,360 --> 00:08:29,580 جو ایک گندگی ہے، جیسا کہ ہم نے خاص طور پر گوگل کی سائٹ پر دیکھا ہے کر سکتے ہیں. 139 00:08:29,580 --> 00:08:32,220 تو اگر میں نیٹ ورک کے ٹیب پر بجائے یہاں کلک کریں 140 00:08:32,220 --> 00:08:34,830 چلو دیکھتے ہیں کیا ہو رہا ہے جب میں نے اس صفحے کو ملاحظہ کریں. 141 00:08:34,830 --> 00:08:38,669 پہلے مجھے اپنی کیش کو خالی. 142 00:08:38,669 --> 00:08:43,570 میں کروم میں کی ترتیبات میں جانے کی اس کے بعد کی تاریخ پر جا رہا ہوں 143 00:08:43,570 --> 00:08:46,420 اور پھر تمام براؤزنگ کی ڈیٹا صاف کریں. 144 00:08:46,420 --> 00:08:48,170 آپ کو دوسرے مقاصد کے لئے یہ کر رہی میں استعمال کیا جا سکتا ہے، [ہنسی] 145 00:08:48,170 --> 00:08:51,990 لیکن جب وہ ترقی ویب سائٹ پر آتا ہے، اصل میں مفید ہے - 146 00:08:51,990 --> 00:08:55,980 اگر تم ہںس رہے ہو تم جانتے ہو. [ہنسی] 147 00:08:55,980 --> 00:08:59,310 یہ اصل میں واقعی مفید ہے جب ویب سائٹ کی ترقی کیونکہ حقیقت یہ ہے 148 00:08:59,310 --> 00:09:04,100 عارضی HTML فائلوں، عارضی جاوا اسکرپٹ فائلوں کی طرح کوکیز اور چیزوں کی طرح چیزوں 149 00:09:04,100 --> 00:09:06,390 اصل میں ایک بڑا سر درد بن سکتے ہیں کیونکہ اگر کسی بھی وجہ سے 150 00:09:06,390 --> 00:09:11,500 براؤزر کچھ فائل کیش کرنے کا فیصلہ کرتا ہے اور ابھی تک آپ کو سرور پر اس فائل میں تبدیلی کر دیا ہے 151 00:09:11,500 --> 00:09:14,670 لیکن براؤزر واقعی اس فائل کو تبدیل کر دیا گیا ہے کا احساس نہیں ہے 152 00:09:14,670 --> 00:09:19,060 اور اسی وجہ سے اصل میں نہیں ہے اس کو دوبارہ ڈاؤن لوڈ، اتارنا اس وقت بھی جب آپ کو دوبارہ لوڈ کریں بٹن پر کلک کریں، 153 00:09:19,060 --> 00:09:23,210 سب سے زیادہ surefire صرف اس بات کا یقین کر لیں کہ آپ کے کوڈ کے ساتھ غلطی نہیں ہے بنانے کے طریقے میں سے ایک، 154 00:09:23,210 --> 00:09:26,480 براؤزر کے رویے کے ساتھ ہے، یہاں میں آپ کے براؤزر میں جانا ہے 155 00:09:26,480 --> 00:09:29,950 اور ساری سرگزشت صاف تاکہ کوئی الجھن نہیں ہے. 156 00:09:29,950 --> 00:09:33,210 >> اور پھر اگر تم واقعی پاگل ہو چاہتے ہیں، براؤزر چھوڑ، یہ دوبارہ شروع کریں، 157 00:09:33,210 --> 00:09:35,660 اور پھر یقین ہے کہ تمام کام کے طور پر توقع کی جاتی ہے. 158 00:09:35,660 --> 00:09:38,820 تو مختصر میں، کلیرنگ کیشے اچھا ہے جب ترقی کر رہی ہے. 159 00:09:38,820 --> 00:09:40,690 تو ہم یہاں نیٹ ورک کے ٹیب ہے. 160 00:09:40,690 --> 00:09:46,020 میں پہلے سائٹ کا دورہ کیا 9 مرتبہ تھا، لیکن مجھے آگے اب جاؤ اور کو دوبارہ لوڈ کریں پر کلک کریں. 161 00:09:46,020 --> 00:09:47,500 اور میں واپس نیچے 0 ہوں. 162 00:09:47,500 --> 00:09:52,100 چلو، اصل میں یہ دیکھنے کی ضرورت ہے کہ یہ کس طرح ہے کہ اس سیشن superglobal عملدرآمد کیا جا رہا ہے. 163 00:09:52,100 --> 00:09:55,990 میں 1 HTTP درخواست کیا گیا تھا پر کلک کرنے کے لئے جا رہا ہوں، 164 00:09:55,990 --> 00:09:58,810 اور یہ بگ ونڈو کی اجازت دیتا ہے کے وزٹرز کا ریکارڈ رکھا جائے گا. میرے اس کے اندر دیکھو. 165 00:09:58,810 --> 00:10:01,970 یہاں میں صرف سرور، جو دلچسپ نہیں ہے سے جواب دیکھتے ہیں. 166 00:10:01,970 --> 00:10:04,030 میں کئی طریقوں میں سے کسی میں نے یہ دیکھا ہے. 167 00:10:04,030 --> 00:10:06,350 لیکن کیا تکنیکی طور پر دلچسپ ہے ہیڈرز ہیں. 168 00:10:06,350 --> 00:10:11,770 اگر میں یہاں نیچے سکرال کریں اور درخواست کے ہیڈر پر توجہ مرکوز کریں اور مسودہ پر کلک کریں، 169 00:10:11,770 --> 00:10:14,400 جو میں دیکھنے جا رہا ہوں لفظی HTTP درخواست ہے 170 00:10:14,400 --> 00:10:17,250 جو صرف اپنے براؤزر سے سرور پر چلا گیا، 171 00:10:17,250 --> 00:10:21,400 آپریٹو لفظ ہونے کی وجہ، تو / فائل کے نام ہونے کی وجہ counter.php 172 00:10:21,400 --> 00:10:25,670 HTTP/1.1 صرف HTTP کے ورژن ہے کہ اپنے براؤزر کا استعمال کرتے ہوئے کر رہا ہے ہے. 173 00:10:25,670 --> 00:10:31,070 یہ لائن براؤزر سے ایک چھوٹا سا سرور یاددہانی سرور کا نام کیا ہے 174 00:10:31,070 --> 00:10:33,020 کہ اس سے بات کرنا چاہتا ہے. 175 00:10:33,020 --> 00:10:38,200 اور پھر اس کے باقی بعض اوقات دلچسپ نہیں بلکہ متعلقہ ابھی ہے. 176 00:10:38,200 --> 00:10:40,090 >> یہ تجسس کی صرف ایک قسم ہے. 177 00:10:40,090 --> 00:10:43,530 کسی بھی وقت اگرچہ میں اس جملے کو خفیہ ہے، آپ کے براؤزر میں ایک ویب سائٹ کا دورہ 178 00:10:43,530 --> 00:10:47,110 اس سرور کو مطلع آپ کیا براؤزر استعمال کر رہے ہیں 179 00:10:47,110 --> 00:10:50,040 اور کیا آپ آپریٹنگ سسٹم کا استعمال کرتے ہوئے اور جو اس ورژن رہے ہیں. 180 00:10:50,040 --> 00:10:52,650 اگر ایسا ہے تو سی این این اور whatnot جیسے تم نے کبھی کہ کس طرح ویب سائٹ حیران ہے 181 00:10:52,650 --> 00:10:56,860 معلوم ہے کہ کیا فی صد ویب، PC صارفین پر میک صارفین کے 182 00:10:56,860 --> 00:11:00,820 IE کے صارفین، کروم، صارفین اور طرح، یہ اس لئے کیونکہ ہماری تمام براؤزرز کی 183 00:11:00,820 --> 00:11:04,300 کر رہے ہیں ہر ایک ویب سائٹ کو وہاں سے کہہ کہ ہم کیا ہیں. 184 00:11:04,300 --> 00:11:07,410 یہ ذاتی طور پر قابل شناخت معلومات ضروری نہیں ہے، پر مشتمل 185 00:11:07,410 --> 00:11:13,060 لیکن یہ سرور بتاو کہ کیا آپ کے آئی. پی (IP) ایڈریس ہے اور براؤزر اور OS آپ استعمال کر رہے ہیں ہے. 186 00:11:13,060 --> 00:11:14,720 تو یہ ہے کہ یہ معلومات کہاں ہے. 187 00:11:14,720 --> 00:11:19,960 لیکن کیا اب زیادہ دلچسپ ہے جب ان سیشن آتا ہے جواب ہیڈر ہے. 188 00:11:19,960 --> 00:11:22,530 مجھے ماخذ دیکھیں جواب اگلا پر کلک کریں. 189 00:11:22,530 --> 00:11:24,590 کیا دلچسپ یہاں ہے کچھ چیزیں ہے. 190 00:11:24,590 --> 00:11:27,580 1، ہمیں 200 کی حیثیت کوڈ ہے. 191 00:11:27,580 --> 00:11:29,840 ہم نے اس کی حیثیت کا کوڈ دیکھ کبھی نہیں کیونکہ اس کا مطلب ہے کہ سب کچھ ٹھیک ہے. 192 00:11:29,840 --> 00:11:32,920 یہ کچھ اور کے برعکس میں لفظی ٹھیک ہے کا مطلب ہے. 193 00:11:32,920 --> 00:11:36,380 ایک بڑی تعداد ہے ہم کبھی کبھی دیکھتے ہیں کہ بری بات ہے کیا ہے؟ 404 [طالب علم. 194 00:11:36,380 --> 00:11:39,860 404 فائل نہیں مل سکا ہے، 403 آپ صلی اللہ علیہ وسلم نے پہلے ہی کر سکتے ہیں ٹھوکر کھا، 195 00:11:39,860 --> 00:11:43,660 جو جو حرام ہے، کا مطلب ہے کہ آپ chmod کچھ، کا امکان سب سے زیادہ بھول گیا. 196 00:11:43,660 --> 00:11:45,190 اور دوسروں کے ایک گروپ ہے. 197 00:11:45,190 --> 00:11:47,760 >> نیچے یہاں، یہ تھوڑا پاگل ہے. 198 00:11:47,760 --> 00:11:52,340 میں واقعی میں gedit میں چسپاں کر کے اس فائل کو چند منٹ پہلے لکھا. 199 00:11:52,340 --> 00:11:57,100 اس صفحہ کو 1981 میں پہلے کیوں واقعی میں ایک ویب تھا وقت کی حد ختم ہو؟ 200 00:11:58,010 --> 00:12:00,730 وہاں کیا ہو رہا ہے؟ 201 00:12:00,730 --> 00:12:04,390 >> [اشراوی طالب علم کے جواب] وقت سٹیمپ. لیکن کیوں؟ 202 00:12:06,110 --> 00:12:09,120 یہ کسی حد تک صوابدیدی ہے، لیکن یہ اصل میں مفید ہے. 203 00:12:09,120 --> 00:12:15,500 کیا یہ اپنے براؤزر کو کہہ رہا ہے یہ پی ایچ پی فائل آپ نے پہلے ہی میعاد ختم ہو کی درخواست کی ہے. 204 00:12:15,500 --> 00:12:18,580 اصل میں، یہ 30 سال پہلے ختم ہوگیا ہے. 205 00:12:18,580 --> 00:12:20,260 لیکن کیا یہ واقعی مطلب ہے؟ 206 00:12:20,260 --> 00:12:22,500 یہ صرف اگلی بار جب صارف اس صفحے کا دورہ کا مطلب ہے کہ، 207 00:12:22,500 --> 00:12:25,540 ، چاہے دوبارہ لوڈ کریں یا ٹائپ ایڈریس بار میں یو آر ایل کی طرف سے 208 00:12:25,540 --> 00:12:28,010 اس بات کا یقین کر لیں کہ آپ جا کر اور اس کی ایک نئی کاپی کی بازیافت ہے. 209 00:12:28,010 --> 00:12:30,840 یہ طرح کی کیشے busting کی ایک مثال کے ہے، 210 00:12:30,840 --> 00:12:33,790 ایک پاگل لفظ ہے جو صرف براؤزر کی حوصلہ شکنی کرنے کی کوشش کا مطلب ہے کہ 211 00:12:33,790 --> 00:12:37,260 اصل میں کیشنگ HTML سے ایک سرور سے بھیجا گیا ہے 212 00:12:37,260 --> 00:12:41,490 تاکہ تم دوبارہ لوڈ اتفاقی طور پر نہیں مارا اور اس کے بعد فائل کے اسی ورژن دیکھیں. 213 00:12:41,490 --> 00:12:43,730 تم واقعی ایک نئی کاپی بھیجنے کے لئے سرور کی ضرورت ہے. 214 00:12:43,730 --> 00:12:47,440 تو حقیقت یہ ہے کہ یہ 1981 ہے کا مطلب صرف اتنا ہے کہ اس کا کیا آلے ​​کا انتخاب کر رہا ہے 215 00:12:47,440 --> 00:12:50,280 ماضی میں ایک صوابدیدی تاریخ کے طور پر. 216 00:12:50,280 --> 00:12:53,380 لیکن اصلی رسیلی لائن اب اس میں سے ایک ہے. 217 00:12:53,380 --> 00:12:57,550 بھی 50 سے پہلے آپ شاید کوکیز کے ساتھ vaguely واقف ہیں. 218 00:12:57,550 --> 00:13:01,820 جیسا کہ ابھی، خاص طور پر کم آرام دہ اور پرسکون یا درمیان میں ان کے درمیان 219 00:13:01,820 --> 00:13:04,120 کیا آپ کی سمجھ میں کوکی ابھی ہے 220 00:13:04,120 --> 00:13:06,980 اگرچہ ہم آپ کی سمجھ بوجھ زیادہ تکنیکی بنانے کے لئے کے بارے میں؟ 221 00:13:08,150 --> 00:13:10,070 کوکی کیا ہے؟ جی ہاں. 222 00:13:10,070 --> 00:13:13,890 [طالب علم کے صارف کے بارے میں معلومات چاہتے ہیں اگر وہ اپنے صارف نام یا کچھ اور لکھا ہے. 223 00:13:13,890 --> 00:13:17,370 >> اچھی بات ہے. اس صارف کے بارے میں معلومات ہے، چاہے وہ اپنے صارف کا نام میں ٹائپ پہلے ہی ہے. 224 00:13:17,370 --> 00:13:21,190 کوکیز کا ایک طریقہ ہے جس میں سرورز کو ایک صارف کے بارے میں کچھ یاد کر سکتے ہیں ہیں. 225 00:13:21,190 --> 00:13:25,810 اور جو واقعی ایک کوکی ہے ایک ٹیکسٹ فائل یا بائٹس کی کچھ ترتیب ہے 226 00:13:25,810 --> 00:13:28,340 جو سرور کی طرف سے اپنے براؤزر کے اندر لگایا ہے، 227 00:13:28,340 --> 00:13:31,960 اور اندر اس فائل کی یا ان بائٹس میں کچھ قسم کی شناخت کنندہ کے ہے. 228 00:13:31,960 --> 00:13:35,640 شاید یہ لفظی آپ کے صارف کے نام ہے، لیکن زیادہ کثرت سے مزید خفیہ نظر آنے والے کچھ ہے 229 00:13:35,640 --> 00:13:43,700 bo8dal3ct اور وغیرہ - - یہ واقعی بڑی اکشرانکیی سٹرنگ یہاں اس بات کی طرح 230 00:13:43,700 --> 00:13:47,050 کہ واقعی صرف آپ کے لئے ایک منفرد شناخت کنندہ مراد ہے. 231 00:13:47,050 --> 00:13:49,790 یا پھر آپ کو اس کی طرح کی ایک مجازی ہاتھ سٹیمپ کے طور پر سوچ سکتے ہیں. 232 00:13:49,790 --> 00:13:53,020 اگر آپ کو کچھ کلب یا ایک تفریحی پارک میں جانا یاد ہے کہ تم اصل میں ادا کیا ہے 233 00:13:53,020 --> 00:13:55,850 میں چلی گئی ہے، وہ کسی قسم کے آپ کے ہاتھ پر ایک چھوٹا سا سرخ سٹکر ڈال، 234 00:13:55,850 --> 00:13:59,270 اور یہ کہ لوگوں کو کاؤنٹر ہے کہ آپ کے پاس پہلے سے ہی ادا کیا ہے یاد کر لیتا ہے 235 00:13:59,270 --> 00:14:01,340 تم آ جاؤ جیسا کہ آپ براہ مہربانی کر سکتے ہیں. 236 00:14:01,340 --> 00:14:04,250 کوکیز تھوڑا ہے کہ روح میں اسی طرح کی ہیں. 237 00:14:04,250 --> 00:14:08,070 پہلی بار میں نے اس ویب سائٹ کا دورہ کیا، کے طور پر میں صرف اپنے کیش کو خالی کرنے سے کرنے کے بعد کیا تھا، 238 00:14:08,070 --> 00:14:11,620 ویب سرور، آلات، اس معاملے میں میرے ہاتھ پر ٹکٹ دیا 239 00:14:11,620 --> 00:14:15,030 جس کا نام ہے PHPSESSID، سیشن ID، 240 00:14:15,030 --> 00:14:18,260 جس کی قیمت یہ واقعی طویل اکشرانکیی سٹرنگ ہے. 241 00:14:18,260 --> 00:14:22,470 >> تو تو ہے کہ اب میرے ہاتھ پر emblazoned طرح کی ہے کہ اگلی بار مجھے مارا دوبارہ لوڈ 242 00:14:22,470 --> 00:14:25,230 یا دستی طور پر ایک براؤزر میں اس URL پر، 243 00:14:25,230 --> 00:14:29,230 HTTP کی تعریف کی طرف سے اپنے براؤزر کو ہاتھ سٹیمپ پیش کرنے جا رہا ہے 244 00:14:29,230 --> 00:14:31,940 بار بار بار. 245 00:14:31,940 --> 00:14:34,550 تو اگرچہ سرور ضروری ہے میں کون ہوں نہیں ہے جانتے ہیں، 246 00:14:34,550 --> 00:14:39,610 انہوں نے کم از کم پتہ ہے کہ میں نے ایک ہی صارف یا کم از کم، زیادہ خاص طور پر، ایک ہی براؤزر ہوں. 247 00:14:39,610 --> 00:14:45,660 اور اس طرح یہ بالآخر یہ ہے کہ کس طرح سیشن superglobal لاگو کیا جاتا ہے. 248 00:14:45,660 --> 00:14:51,200 سرور کو کوئی اندازہ نہیں ہے کہ تم کون ہو جب تم دوسرے کے لئے ایک ویب سائٹ یا تیسری بار نظرثانی ہے 249 00:14:51,200 --> 00:14:53,410 جب تک آپ اس کے ہاتھ سٹیمپ پیش کرتے ہیں. 250 00:14:53,410 --> 00:14:55,530 اور جیسے ہی کے طور پر تم نے اس ہاتھ سٹیمپ پیش کرتے ہیں، 251 00:14:55,530 --> 00:14:59,370 ویب سرور بنیادی طور پر اپنی ایک چھوٹی سی ڈیٹا بیس میں جاتا ہے 252 00:14:59,370 --> 00:15:06,040 اور چیک ٹھیک ہے، میں صرف صارف bo8dal3ct کے ہاتھ سٹیمپ دیکھا ہے اور وغیرہ. 253 00:15:06,040 --> 00:15:09,850 مجھے جو معلومات پروگرامر محفوظ ہے 254 00:15:09,850 --> 00:15:12,380 کے اندر اس صارف کے بارے میں superglobal 255 00:15:12,380 --> 00:15:17,000 اور پھر مجھے اس بات کا یقین کر لیں کہ ہے کہ اس ڈیٹا کو دوبارہ superglobal سیشن کے اندر 256 00:15:17,000 --> 00:15:19,830 تاکہ پروگرامر ہے کہ ڈیٹا کو دوبارہ تک رسائی حاصل کر سکتے ہیں 257 00:15:19,830 --> 00:15:23,360 یہاں تک کہ اگر یہ کچھ منٹ یا گھنٹے پہلے قائم کیا گیا تھا. 258 00:15:23,360 --> 00:15:26,150 تو دوسرے الفاظ میں، کوکیز، جس میں کچھ وقت کے لئے ایک بری ریپ ہے 259 00:15:26,150 --> 00:15:29,990 براؤزر میں عدم تحفظ کی وجہ سے وہ ہماری رازداری اور یہ سب واقعی کی خلاف ورزی کر سکتے ہیں، 260 00:15:29,990 --> 00:15:31,900 وہ اصل میں کیونکہ ان کے بغیر بڑی افادیت ہے 261 00:15:31,900 --> 00:15:36,110 آپ کو مسلسل ہر فیس بک کا صفحہ آپ کی جائے گی میں لاگ ان 262 00:15:36,110 --> 00:15:40,680 یا Gmail کا ہر ای میل آپ کو پڑھا اگر براؤزر کی یاد کے کوئی نہ کوئی راستہ نہیں تھا 263 00:15:40,680 --> 00:15:43,320 کہ آپ کے پاس پہلے سے ہی کی توثیق ہے. 264 00:15:43,320 --> 00:15:46,640 >> تو اس طرح سے کوکیز تار بھر آگے اور پیچھے بھیجے جاتے ہیں. 265 00:15:46,640 --> 00:15:52,470 کوکیز کے بارے میں ایک اور تجسس، خاص طور پر یہاں ہے، کہ یہ مکمل طور پر cleartext میں ہے. 266 00:15:52,470 --> 00:15:54,930 کوئی نہیں یہاں جو کچھ خفیہ کاری ہے، 267 00:15:54,930 --> 00:15:57,240 اور بیشک میں اس وقت HTTP کا استعمال کرتے ہوئے کر رہا ہوں. 268 00:15:57,240 --> 00:16:00,890 CS50 میں ہمارے پسندیدہ لمحات میں سے ایک، جو کہ اب 2 سال پہلے، 269 00:16:00,890 --> 00:16:04,750 وقت کے ارد گرد نامی Firesheep آلہ باہر آئے. 270 00:16:04,750 --> 00:16:08,320 یہ سافٹ ویئر کی ایک مفت ٹکڑا ہے جو کہ آپ نے ایک سیکورٹی محقق کی طرف سے بنایا گیا تھا ہے وہ یہ کہ یہ ہے 271 00:16:08,320 --> 00:16:13,250 کمیونٹی کے لئے ایک کال بيدار کے طور پر کہتے ہیں کہ کس طرح atrociously نافذ 272 00:16:13,250 --> 00:16:17,900 بعض ویب پر تصدیق کے میکنزم کے تھے. 273 00:16:17,900 --> 00:16:22,880 تو کچھ وقت کے لئے، فیس بک HTTP، کوئی HTTPS کے اوپر تقریبا مکمل طور پر تھا. 274 00:16:22,880 --> 00:16:25,640 اور S بھی اگر آپ کو کوئی اندازہ نہیں ہے کس طرح crypto کام ہے، محفوظ ہے 275 00:16:25,640 --> 00:16:27,950 تو اس کا مطلب ہے کہ کم از کم کچھ خفیہ کاری شامل ہے. 276 00:16:27,950 --> 00:16:30,610 فیس بک صارف نام اور پاس ورڈ کو خفیہ کرنے کے لئے استعمال کیا جاتا تھا، 277 00:16:30,610 --> 00:16:33,560 لیکن جیسے ہی کے طور پر آپ نے آپ کو دیکھا pokes یا آپ کے پیغامات یا آپ کی خبر فیڈ، 278 00:16:33,560 --> 00:16:35,360 یہ سب غیرخفیہ کردہ کیا گیا تھا. 279 00:16:35,360 --> 00:16:37,870 تو Gmail کو صرف ایک سال یا 2 پہلے تک تھا. 280 00:16:37,870 --> 00:16:41,100 کسی بھی وقت آپ لاگ ان، جی ہاں، وہ محفوظ خفیہ کاری کا استعمال کیا، 281 00:16:41,100 --> 00:16:44,300 لیکن اس کے بعد انہوں نے نہیں کیا. اور یہ ہو سکتا ہے کیوں؟ 282 00:16:44,300 --> 00:16:49,210 خفیہ نگاری صرف وقت کی سب کیوں اس طرح استعمال کی صورتوں میں نہیں استعمال کرتے ہیں؟ 283 00:16:49,210 --> 00:16:53,700 یہ کیا ہے؟ مجھے لگتا ہے کہ میں نے کچھ سنا. [طالب علم] رفتار. 284 00:16:53,700 --> 00:16:56,250 سپیڈ، ٹھیک ہے؟ اس کے ارد گرد طریقے ہیں. 285 00:16:56,250 --> 00:16:59,610 لیکن اگر آپ صرف کی قسم اس کے بارے میں کیا سوچتے منطقی طور پر، اگر آپ کو کچھ خفیہ، 286 00:16:59,610 --> 00:17:01,820 آپ کو کم سے کم ایک چھوٹا سا کام کرنا ہے. 287 00:17:01,820 --> 00:17:05,460 2 pset میں جب آپ کیسر یا Vigenere عملدرآمد یا اس سے بھی ٹوٹ 288 00:17:05,460 --> 00:17:07,760 صرف ایک سٹرنگ پرنٹ کرنا نسبتا آسان ہے. 289 00:17:07,760 --> 00:17:12,040 اور پھر خفیہ کاری ایک تار minimally چھپائی تھوڑی زیادہ کام کی ضرورت ہے. 290 00:17:12,040 --> 00:17:14,520 >>  ، گوگل اور فیس بک کی طرح سپر مقبول ویب سائٹس کے لئے 291 00:17:14,520 --> 00:17:18,839 اگر آپ ہر ایک ویب صفحے کے لیے وہ کے ہر صارف کے لئے زیادہ کام کرنا ہے، 292 00:17:18,839 --> 00:17:20,520 کہ صرف CPU وقت لگتا ہے. 293 00:17:20,520 --> 00:17:22,920 اور اگر آپ کو زیادہ CPU وقت کی ضرورت ہے، آپ کو زیادہ سے زیادہ سرورز کی ضرورت ہو سکتی ہے، 294 00:17:22,920 --> 00:17:24,270 جس کا مطلب ہے کہ آپ کو مزید رقم کی ضرورت ہو سکتی ہے. 295 00:17:24,270 --> 00:17:27,579 اور اتنے سال کے لئے یہ صرف واقعی بہتر طرز عمل نہیں تھا. 296 00:17:27,579 --> 00:17:31,440 پیپلز SSL خفیہ کاری استعمال کریں گے صرف اس وقت جب وہ کرنے کی ضرورت ہے. 297 00:17:31,440 --> 00:17:34,960 لیکن یہ پتہ چلا، اور Firesheep کے ساتھ اس کے ساتھی کے طور پر سپر واضح کر دیا ہے، 298 00:17:34,960 --> 00:17:37,920 جب لوگ تم میں سے جو اس وقت فیس بک پر ہیں ابھی - 299 00:17:37,920 --> 00:17:39,880 تجسس کے باہر جانے دو، دیکھو، اگر آپ کو fess گے. 300 00:17:39,880 --> 00:17:42,620 اگر آپ کو فیس بک پر ابھی کچھ ٹیب میں ہیں، یہاں تک کہ اگر یہ نہیں foregrounded ہے، 301 00:17:42,620 --> 00:17:46,610 اپنی URL HTTP یا HTTPS ہے؟ 302 00:17:46,610 --> 00:17:50,560 [ایک سے زیادہ طالب علموں] S S.؟ [ہنسی] 303 00:17:50,560 --> 00:17:55,510 ٹھیک ہے. کوئی HTTP؟ صرف 1؟ ٹھیک ہے. 304 00:17:55,510 --> 00:17:58,940 تو ہم سب کو اس آدمی کے فیس بک اکاؤنٹ ہیک کر سکتا ہے. 305 00:17:58,940 --> 00:18:04,100 سب سے زیادہ حصہ اس کے لئے بن ڈیفالٹ کی طرف سے پر کر دیا کچھ ویب سائٹس میں سے کم از کم ہے. 306 00:18:04,100 --> 00:18:08,120 اور لمبی کہانی مختصر ہے، اگر اپنی ویب کی ٹریفک کے مرموز نہیں ہے، 307 00:18:08,120 --> 00:18:12,960 نہ صرف HTML غیرخفیہ کردہ WiFis بھر کے آگے اور پیچھے ہے، جانا 308 00:18:12,960 --> 00:18:16,760 کوکیز کی طرح چیزیں ہوا بھر پیچھے کرتے ہیں 309 00:18:16,760 --> 00:18:18,940 خفیہ کاری کے بغیر کسی بھی شکل کے. 310 00:18:18,940 --> 00:18:23,540 لہذا اگر تم صرف پروگرامنگ پریمی کے تھوڑا سا یا مہارت Googling کا تھوڑا سا ہے 311 00:18:23,540 --> 00:18:27,410 مفت سافٹ ویئر ہے کہ یہ اس کی تلاش کرنے کے لئے سٹاربکس میں تمام تمہیں کیا کرنا ہے، بیٹھ ہے 312 00:18:27,410 --> 00:18:30,680 یا ایک ہوائی اڈے میں بیٹھ جہاں عام طور پر وائی فائی غیرخفیہ کردہ ہے 313 00:18:30,680 --> 00:18:36,070 یا PHPSESSID: اور مرتب کریں کوکی جیسے مطلوبہ الفاظ کے لئے دیکھ 314 00:18:36,070 --> 00:18:39,300 کیونکہ اگر آپ کو تکنیکی پریمی ہے صرف وائی فائی دیکھنے 315 00:18:39,300 --> 00:18:43,010 بٹس اس طرز کے لئے ہوا بھر میں بہاؤ ہے کہ سب کے لئے، 316 00:18:43,010 --> 00:18:50,840 تو تم کہہ سکتے ہیں کہ لڑکے کا PHPSESSID bo8dal اور وغیرہ ہوتا ہے. 317 00:18:50,840 --> 00:18:53,890 اور پھر اگر آپ کافی تکنیکی پریمی ہیں یا صحیح آلہ ہے، 318 00:18:53,890 --> 00:18:58,890 آپ کو صرف reconfigure تو آپ اپنے براؤزر ہے کہ ہاتھ سٹیمپ پیش شروع 319 00:18:58,890 --> 00:19:05,030 Facebook.com، اور فیس بک فرض ہے کہ تم اس لڑکے ہیں جا رہا ہے 320 00:19:05,030 --> 00:19:09,880 کیونکہ انہیں معلوم ہے کہ نہیں ہے کہ تم کون ہو، لیکن ہے کہ آپ کو یہ منفرد شناخت کنندہ ہے. 321 00:19:09,880 --> 00:19:14,650 تو اگر آپ نے اس منفرد شناخت کی چوری اور آپ کے اپنے ویب سرور کو پیش کر، 322 00:19:14,650 --> 00:19:16,860 وہ صرف آپ کو اس شخص کی خبر فیڈ دکھانے کے لئے جا رہے ہیں 323 00:19:16,860 --> 00:19:18,980 یا اس شخص کے پیغامات یا pokes. 324 00:19:18,980 --> 00:19:23,190 >> اور اب میں گوگل ہے کہ کس طرح فیس بک کے لئے HTTPS شاید چالو کریں گے. 325 00:19:23,190 --> 00:19:25,150 لیکن یہ سچ میں اس کے طور پر کے طور پر آسان ہے. 326 00:19:25,150 --> 00:19:27,660 اور اس فیس بک اور گوگل اور اس طرح اس میں واقعی اچھے ہو گیا ہے، 327 00:19:27,660 --> 00:19:31,870 لیکن کسی بھی ویب سائٹ آپ HTTP استعمال نہیں کرتے کے لئے سب کو ایک نظر رکھنے کے 328 00:19:31,870 --> 00:19:35,020 اور ان پر کچھ قسم کی حساس معلومات کے 329 00:19:35,020 --> 00:19:37,490 چاہے وہ مالی یا ذاتی ہے یا پسند. 330 00:19:37,490 --> 00:19:43,180 اگر وہ اس کا استعمال نہیں کر رہے ہیں، بہت ممکن ہے اس طرح کوکیز بہت آسانی سے چوری ہو سکتی ہے 331 00:19:43,180 --> 00:19:46,270 اور پھر جعلی ہے، اور کہ بالکل کیا Firesheep کیا ہے. 332 00:19:46,270 --> 00:19:48,250 تم ایک پروگرامر کی ضرورت نہیں تھی. 333 00:19:48,250 --> 00:19:51,680 تم کرنا پڑا تھا ایک انٹرنیٹ کنکشن، اس مفت کے آلے پر ڈاؤن لوڈ، اتارنا ہے، 334 00:19:51,680 --> 00:19:56,490 اور ہے کہ وہ کیا کرتے ہے، تم میں لاگ ان کریں اور پھر اس کے بعد آپ فیس بک کا نام دکھائیں گے 335 00:19:56,490 --> 00:20:00,170 Sanders میں اس مخصوص مظاہرے میں سے ہر ایک، آپ کے ارد گرد، 336 00:20:00,170 --> 00:20:03,260 اور تم سب کو کرنا چاہیے تھا ان کے نام پر کلک کریں اور سافٹ ویئر کے عمل کو خود کار طریقے سے 337 00:20:03,260 --> 00:20:05,970 اس کوکی سنفنگ، آپ کے اپنے فیس بک پر یہ پیش 338 00:20:05,970 --> 00:20:07,990 اور voila، تم اندر ریکارڈ کر رہے ہیں 339 00:20:07,990 --> 00:20:11,190 تو یہ ان میں سے ایک ہے سرکاری طور پر "یہ نہ کرو". 340 00:20:11,190 --> 00:20:14,660 اگر آپ کو اپنے گھر کے نیٹ ورک ہے اور آپ کو ٹنکر کرنا چاہتے ہیں، سب کا مطلب ہے کی طرف سے، 341 00:20:14,660 --> 00:20:17,530 احساس لیکن اس یونیورسٹی کے ماحول پر لائن پار ہے. 342 00:20:17,530 --> 00:20:20,030 >> لیکن یہاں مقصد واقعی ہے پر زور نہیں کہ کس طرح ایسا 343 00:20:20,030 --> 00:20:22,320 لیکن اس طرح کی چیزوں کی ان کے خلاف کس طرح کے دفاع کے لئے. 344 00:20:22,320 --> 00:20:26,180 اور یہاں چھوٹی سی حل، اگرچہ وہ خود نظم و ضبط میں بہت سی خامیاں ہیں جن کی بنا پر ہے، 345 00:20:26,180 --> 00:20:31,360 واقعی سائٹس جو کہ HTTPS کا استعمال نہیں کر رہے ہیں مسلسل کے استعمال کو کم کرنے کے ہے. 346 00:20:31,360 --> 00:20:34,520 تو فیس بک اور گوگل جیسی سائٹس تیزی سے چیک باکس ہے 347 00:20:34,520 --> 00:20:36,200 آپ کو اس طرح کی بات کی جہاں میں داخل کر سکتے ہیں، 348 00:20:36,200 --> 00:20:40,000 اور بینکوں سال کے لئے اسی طرح کی وجوہات کی بناء پر یہ دیکھا گیا ہے. 349 00:20:40,000 --> 00:20:43,580 تو اگر ہم کر سکتے ہیں ایک خوف کے عنصر کے صرف تھوڑا سا. لیکن اس کے یہ مختصر میں ہے. 350 00:20:43,580 --> 00:20:46,420 یہی وجہ ہے کہ کس طرح ایک سرور یاد ہے تم کون ہو. 351 00:20:46,420 --> 00:20:50,760 اور جیسے ہی وہ یاد ہے تم کون ہو سکتا ہے، وہ آپ کے بارے میں کچھ یاد کر سکتے ہیں 352 00:20:50,760 --> 00:20:56,140 کہ اس خصوصی ملاقات کی $ _SESSION superglobal پروگرامر کے اندر محفوظ ہے. 353 00:20:56,140 --> 00:20:59,750 اور ہم 7 pset کے لئے trivially استعمال کر رہے ہیں صرف ایک int یاد 354 00:20:59,750 --> 00:21:02,260 صارف جو میں ریکارڈ ہے یعنی منفرد ID، 355 00:21:02,260 --> 00:21:05,880 تا کہ ہم جانتے ہیں کہ وہ وہاں سے پہلے کیا گیا ہے. 356 00:21:05,880 --> 00:21:12,450 پھر سیشن یا کوکیز یا جیسے کوئی سوال؟ 357 00:21:12,450 --> 00:21:15,130 Firesheep کے طور پر کام نہیں ہے، 358 00:21:15,130 --> 00:21:18,310 اور آپ کو ایک خصوصی promiscuous موڈ میں آپ کے کمپیوٹر پر ڈال ہے 359 00:21:18,310 --> 00:21:20,700 تو آپ کو اصل میں اپنے آپ کے علاوہ ٹریفک کے لیے سن رہے ہیں. 360 00:21:20,700 --> 00:21:23,940 تو اگر آپ کے پاس فی الحال Firesheep ڈاؤن لوڈ کر رہے ہیں، اس کا احساس نہیں بہت آسان ہے 361 00:21:23,940 --> 00:21:26,850 کیونکہ یہ ایک بار کا مظاہرہ تھا. 362 00:21:26,850 --> 00:21:29,070 ٹھیک ہے. Sanders میں ایسا نہیں ہے. گھر میں کیا. 363 00:21:29,070 --> 00:21:30,890 ڈیٹا بیس. 364 00:21:30,890 --> 00:21:33,580 چیزیں ہم 7 pset میں نے بہت جان بوجھ میں سے ایک 365 00:21:33,580 --> 00:21:37,780 تھا کہ ہم صارفین کو کچھ صارف کی شناخت ہے آپ کے لئے ایک نمونہ ڈیٹا بیس کی میز دے، 366 00:21:37,780 --> 00:21:41,020 کچھ صارف نام، اور کچھ خفیہ پاس ورڈ وہاں. 367 00:21:41,020 --> 00:21:44,520 اور جیسا کہ آپ دیکھیں گے، اگر آپ کے پاس پہلے سے ہی نہیں ہے، آپ کو میز کو تھوڑا سا تبدیل کر جا رہے ہیں. 368 00:21:44,520 --> 00:21:47,710 آپ اس ٹیبل میں صارفین میں سے ہر ایک کو کچھ کیشے میں شامل کرنے جا رہے ہیں، 369 00:21:47,710 --> 00:21:51,130 اور آپ کو ایک اور تاریخ، میز، محکموں کی میز کو شامل کرنے کی ضرورت کے لئے جا رہے ہیں، 370 00:21:51,130 --> 00:21:53,310 یا شاید اسے کچھ اور کہتے ہیں. 371 00:21:53,310 --> 00:21:56,740 لیکن کس طرح ایسا کرنے کے بارے میں سوچ کے لحاظ سے، اس آلے کو کھولنے کے 372 00:21:56,740 --> 00:22:00,570 جو ہم نے جمعہ کو استعمال کیا ہے، لیکن اگر مجریچت، آلات، ایک آلہ کے ساتھ آتا ہے ہے 373 00:22:00,570 --> 00:22:04,680 phpMyAdmin جو اتفاق PHP کے وزٹرز کا ریکارڈ رکھا جائے گا ہے کہا جاتا ہے، 374 00:22:04,680 --> 00:22:07,950 لیکن زندگی میں اس کا مقصد، میں کرمسن کے ساتھ jharvard کے طور پر یہاں لاگ ان کریں کے بعد 375 00:22:07,950 --> 00:22:15,160 کے وزٹرز کا ریکارڈ رکھا جائے گا. میرے دیکھنے اور تبدیل کرنے سے اپنے ڈیٹا بیس کی ایک صارف دوستانہ طریقہ فراہم کرنا ہے. 376 00:22:15,160 --> 00:22:18,040 >> ڈیٹا بیس ہے کہ میں آلے پر چل رہے ہوں ایس کیو ایل کہا جاتا ہے. 377 00:22:18,040 --> 00:22:23,420 یہ بہت مقبول ہے، اور یہ ایک مفت اوپن سورس ڈیٹا بیس ہے کہ wonderfully استعمال کرنے کے لئے آسان ہے ہے، 378 00:22:23,420 --> 00:22:25,620 خاص طور پر کے ساتھ سامنے اس طرح ختم ہوتا ہے. 379 00:22:25,620 --> 00:22:29,350 اس آلے کو کیا آپ کے وزٹرز کا ریکارڈ کرنے کے لئے کی اجازت دیتا ہے، مثال کے طور پر، ٹیبل کے ارد گرد ڑکیلنا ہے. 380 00:22:29,350 --> 00:22:30,890 آپ کے وزٹرز کا ریکارڈ رکھا آگے بڑھیں اور اس کام کو کرنے دو 381 00:22:30,890 --> 00:22:36,580 جمعہ کے روز ہم نامی طالب علم جو سپر سادہ تھا ٹیبل بنایا. 382 00:22:36,580 --> 00:22:41,680 ID، نام، اور ای میل - - 3 کالم تھی اور میں دستی طور پر قطار کے ایک جوڑے کے داخل 383 00:22:41,680 --> 00:22:44,420 داؤد اور اس مخصوص مثال میں مائیک کی طرح. 384 00:22:44,420 --> 00:22:47,290 چلو، مزید یہ تھوڑا سا لگے، اور چلو مان لیتے ہیں کہ ہم کو یاد کرنے کی چاہتے ہیں 385 00:22:47,290 --> 00:22:49,660 سے ایک صارف کے بارے میں صرف نام اور ای میل. 386 00:22:49,660 --> 00:22:53,090 مجھے ڈھانچہ سب سے اوپر کے لئے یہاں کلک کریں. 387 00:22:53,090 --> 00:22:55,440 اور پھر، pset آپ کو یہاں ضروری اقدامات کے ذریعے چلتا ہے، 388 00:22:55,440 --> 00:22:58,150 تو فکر کرنے کی ضرورت نہیں ہے اگر اس میں سے کچھ تھوڑا جلدی ہے. 389 00:22:58,150 --> 00:22:59,690 پھر میں یہاں پر کلک کریں کی جا رہی ہوں. 390 00:22:59,690 --> 00:23:02,270 میں ای میل کے بعد کالم میں سے کچھ تعداد کو شامل کرنے کے لئے جا رہا ہوں 391 00:23:02,270 --> 00:23:04,130 کیونکہ میں گھر کی طرح کچھ اضافہ کرنا چاہتے ہیں. 392 00:23:04,130 --> 00:23:06,640 میں ایک طالب علم کے گھر کو ریکارڈ کرنے کے لئے بھول گیا. 393 00:23:06,640 --> 00:23:11,400 مجھے دیکھیں کلک کریں، اور اب ہم اس فارم ہے جو بدقسمتی سے بائیں سے دائیں جانب تھوڑا وسیع ہے ہے، 394 00:23:11,400 --> 00:23:13,710 لیکن میں اس فیلڈ کے گھر کے نام کو بلانے جا رہا ہوں، 395 00:23:13,710 --> 00:23:16,050 اور اس کے بعد کی قسم اب میں کرنے کا انتخاب کرتے ہیں. 396 00:23:16,050 --> 00:23:18,870 تو ایس کیو ایل میں مختلف اقسام کے بارے میں ایک مختصر بات چیت ہے 397 00:23:18,870 --> 00:23:24,590 کیونکہ، جبکہ پی ایچ پی کو کمزور ٹائپ ہے اور اس طرح کی اقسام کے ساتھ تیز رفتار اور ڈھیلا ادا کرتا ہے 398 00:23:24,590 --> 00:23:29,430 خاص طور پر ایک ڈیٹا بیس میں یہ انتہائی ضروری ہے اصل میں آپ کے فائدہ پر ٹائپنگ کا استعمال 399 00:23:29,430 --> 00:23:33,260 کیونکہ چیزوں کو ایس کیو ایل اور دیگر ڈیٹا بیس انجن کی ایک آپ کے لئے کیا کر سکتے ہیں 400 00:23:33,260 --> 00:23:37,910 ہے اس بات کا یقین کرنے کے لئے کہ آپ کو آپ کے ڈیٹا بیس میں جعلی اعداد و شمار نہیں کرتے. 401 00:23:37,910 --> 00:23:41,850 اس طرح کی مفت آپ کو دستیاب کی جانچ پڑتال کرنے میں غلطی کی ہے. 402 00:23:41,850 --> 00:23:46,250 >> گھر کے لئے ہم نے واضح طور پر یہ ایک int، جس میں ایس کیو ایل میں ایک 32 بٹ کی قیمت ہے نہیں کرنا چاہتا. 403 00:23:46,250 --> 00:23:49,810 ہم نے جمعہ کو مختصر varchar، جو متغیر چار کی حد کے لئے کھڑا ہے کے بارے میں بات نہیں کی. 404 00:23:49,810 --> 00:23:54,720 یہ سب کیا ہے؟ یہ آپ کی وضاحت ہے کہ آپ اس کو کسی قسم کا ایک تار کرنا چاہتے ہیں کی اجازت دیتا ہے ہے. 405 00:23:54,720 --> 00:23:56,840 آپ پہلے کتنی دیر تک ہے میں واقعی نہیں جانتے، 406 00:23:56,840 --> 00:24:00,100 تو ہم منمانے ایک گھر کا نام 255 حروف ہو سکتے ہیں کہیں گے، 407 00:24:00,100 --> 00:24:04,190 لیکن آپ 32 64 کے ساتھ جا سکتے ہیں - کسی بھی تعداد سچ میں. 408 00:24:04,190 --> 00:24:10,700 لیکن نامی چار فیلڈ پر varchar استعمال کرنے کا فائدہ کیا ہے؟ 409 00:24:10,700 --> 00:24:15,110 نوٹس صرف intuitively اگر میں یہاں نیچے سکرال، وہاں چار ہے اور اس varchar ہے. 410 00:24:15,110 --> 00:24:19,520 Varchar متغیر حروف کی حد کے ہے، چار ایک مقررہ حروف کی حد کے ہے. 411 00:24:19,520 --> 00:24:24,730 تو صرف اس تعریف پر مبنی ہے، ان میں سے ہر ایک کا فائدہ یا نقصان کیا ہے؟ 412 00:24:24,730 --> 00:24:30,490 دوسرے الفاظ میں، امتیاز کے بارے میں کسے پرواہ ہے، یا آپ کو اس کی پرواہ کیوں چاہئے؟ 413 00:24:31,660 --> 00:24:35,750 >> جی ہاں. [طالب علم] Varchar زیادہ لچک ہے لیکن زیادہ میموری لیتا ہے. 414 00:24:35,750 --> 00:24:40,730 اچھی بات ہے. Varchar اپ لیتا ہے - چلو دیکھتے ہیں. مجھے یقین ہے کہ اگر میں اس نے صحیح سنا نہیں ہوں. 415 00:24:40,730 --> 00:24:42,360 ہے کہ آپ ایک بار کہہ سکتا ہے؟ 416 00:24:42,360 --> 00:24:45,850 [طالب علم] میں نے کہا varchar شاید زیادہ لچک ہے لیکن یہ زیادہ میموری لیتا ہے. 417 00:24:45,850 --> 00:24:51,170 دلچسپ. ٹھیک ہے. Varchar شاید آپ کو زیادہ لچک فراہم کرتا ہے لیکن زیادہ میموری لیتا ہے. 418 00:24:51,170 --> 00:24:53,220 مؤخر الذکر لازمی طور پر درست نہیں ہے. 419 00:24:53,220 --> 00:24:56,290 یہ سیاق و سباق پر منحصر ہے، لیکن اس واپس آ. 420 00:24:56,290 --> 00:25:03,230 >> [اشراوی طالب علم کے جواب] بالکل. 421 00:25:03,230 --> 00:25:06,900 یہ دراصل معاملہ ہے کہ چار زیادہ میموری عام طور پر استعمال کریں گے 422 00:25:06,900 --> 00:25:10,950 کیونکہ ایک چار، C کی طرح، ایک تار کی طرح ہے، یہ کرداروں میں سے ایک صف ہے. 423 00:25:10,950 --> 00:25:13,690 اگر ایسا ہے تو آپ کو 255 کی لمبائی کی چار فیلڈ کا کہنا ہے کہ، 424 00:25:13,690 --> 00:25:16,910 ڈیٹا بیس لفظی آپ کو 255 حروف دینے جا رہا ہے. 425 00:25:16,910 --> 00:25:22,290 اور اگر گھر ختم ہو جاتی ہے MATHER اور 6 حروف کے کل ہونے، 426 00:25:22,290 --> 00:25:25,090 آپ کو 200 حروف سے زیادہ برباد کر رہے ہو. 427 00:25:25,090 --> 00:25:29,640 >> تو ایک مؤثر طریقے سے varchar صرف بہت سے حروف کے طور پر استعمال کیا جاتا ہے کے طور پر ضروری ہے 428 00:25:29,640 --> 00:25:31,590 زیادہ سے زیادہ رقم ہے. 429 00:25:31,590 --> 00:25:35,470 لیکن قیمت ادا کرنی اصل میں کارکردگی ہے، ممکنہ طور پر ہے. 430 00:25:35,470 --> 00:25:39,740 اگر آپ کو پہلے سے معلوم ہے کہ اپنے تمام ڈور کے 8 حروف کا ہونا جا رہے ہیں - 431 00:25:39,740 --> 00:25:43,090 مثال کے طور پر، مان لیں کہ آپ کو 8 لمبائی کا پاس ورڈ کی ضرورت ہوتی ہے - 432 00:25:43,090 --> 00:25:47,350 اس موقع پر ایک چار فیلڈ کا استعمال کرتے ہوئے، لیکن نہیں اکثر کے اوپر، 433 00:25:47,350 --> 00:25:51,100 ایک پاس ورڈ کی طرح کسی چیز کے لئے ایک مقررہ لمبائی کی وضاحت ہے 434 00:25:51,100 --> 00:25:53,300 کیونکہ اب ڈیٹا بیس کو ہوشیار بھی ہو سکتا ہے. 435 00:25:53,300 --> 00:25:58,160 اگر یہ کہ ہر چار فیلڈ جانتا ہے، ایک کالم میں ہر سٹرنگ ایک ہی کی حد ہے، 436 00:25:58,160 --> 00:26:00,780 آپ بے ترتیب رسائی کی اس سہولت کا ملتا ہے. 437 00:26:00,780 --> 00:26:05,110 آپ کو مختلف چار شعبوں کے درمیان آپ کے ڈیٹا بیس کے ٹیبل میں کے ارد گرد کود کر سکتے ہیں 438 00:26:05,110 --> 00:26:07,940 کیونکہ قطاروں اور کالموں کے طور پر ایک ڈیٹا بیس کے بارے میں سوچو. 439 00:26:07,940 --> 00:26:11,670 تو اگر ڈور میں سے ہر ایک میں ایک ہی کی حد ہے، 440 00:26:11,670 --> 00:26:17,820 اگلی بار آپ کو معلوم ہے کہ سب سے پہلے 0 بائٹ میں ہے، 8 بائٹ میں ہے 441 00:26:17,820 --> 00:26:20,240 اور 16 پھر اور پھر 24 اور وغیرہ. 442 00:26:20,240 --> 00:26:24,500 لہذا اگر تمام ڈور اسی کی لمبائی کی ہیں، آپ کے ارد گرد بہت زیادہ مؤثر طریقے سے کود کر سکتے ہیں. 443 00:26:24,500 --> 00:26:26,710 تو اس کی کارکردگی کے لحاظ سے ایک فائدہ ہو سکتا ہے، 444 00:26:26,710 --> 00:26:29,420 لیکن عام طور پر آپ کو پہلے سے جاننے کے عیش و آرام کی ضرورت نہیں ہے، 445 00:26:29,420 --> 00:26:32,170 تو ایک varchar جانا کرنے کا طریقہ ہے. 446 00:26:32,170 --> 00:26:36,030 یہاں ایک اور تفصیل ہے کہ فیس بک بھی بالآخر میں بھاگ گیا ہے. 447 00:26:36,030 --> 00:26:39,670 Ints عظیم ہیں، اور ہم طرح ان ڈیفالٹ کی طرف سے کسی بھی وقت ہم نے ایک نمبر کی ضرورت ہے کا استعمال، 448 00:26:39,670 --> 00:26:41,750 لیکن یہ صرف 32 بٹس ہے. 449 00:26:41,750 --> 00:26:46,210 >> اور اگرچہ فیس بک 4 ارب صارفین کافی نہیں ہے اب 450 00:26:46,210 --> 00:26:48,680 یقینی طور سے ایک سے زیادہ اکاؤنٹس کے ساتھ ہے وہاں کچھ لوگ 451 00:26:48,680 --> 00:26:50,960 یا اکاؤنٹ کی گئی ہے اور اس کے بعد کھول بند 452 00:26:50,960 --> 00:26:55,130 اور تو فیس بک خود مجھے یقین ہے کہ چند سال پہلے int سے منتقلی تھا 453 00:26:55,130 --> 00:27:00,010 ، کے طور پر aptly کہا جاتا ہے، bigint، جس میں 64 بجائے صرف بٹس ہے 454 00:27:00,010 --> 00:27:02,230 تو یہ بھی ایک ڈیزائن فیصلہ ہے. 455 00:27:02,230 --> 00:27:06,570 آپ حیرت انگیز خوش ہو اگر آپ کی آخری منصوبے کے آغاز بدل جاتا ہے، 456 00:27:06,570 --> 00:27:10,010 4 ارب اور 1 صارفین، یا اٹھانے کے لئے دیتے ہیں، 457 00:27:10,010 --> 00:27:13,200 جس صورت میں ints کا استعمال کرتے ہوئے تھوڑا shortsighted ہو سکتا ہے. 458 00:27:13,200 --> 00:27:16,230 لیکن حقیقت میں، شاید آپ کے صارفین کی میز ہے ints کے ساتھ ٹھیک ہے. 459 00:27:16,230 --> 00:27:19,340 لیکن 7 pset کی طرح کسی چیز کے لئے، اپنی تاریخ کے ٹیبل کی طرح 460 00:27:19,340 --> 00:27:23,700 آپ ہزاروں، لاکھوں صارفین کی ہے اگر آپ etrade.com میں تیار ہو سکتا ہے. 461 00:27:23,700 --> 00:27:26,020 تو جبکہ آپ کو 4 ارب سے زائد صارفین نہیں ہو سکتا ہے، 462 00:27:26,020 --> 00:27:30,070 ان صارفین کو آپ کو یہ کرنا ہے کہ وقت کے ساتھ 4 ارب سے زائد لین دین کر سکتے ہیں - 463 00:27:30,070 --> 00:27:33,200 خریدتا ہے اور فروخت کرتا ہے اور ان کی تاریخ میں چیزوں. 464 00:27:33,200 --> 00:27:38,090 تو اگر آپ کی امید کرتے ہیں - پھر یہ اچھا اگر آپ کو یہ زیادہ ڈیٹا مسائل ہیں - 465 00:27:38,090 --> 00:27:40,920 اگر آپ کو ایک int کے سائز سے زیادہ ڈیٹا اندازہ کرتے ہیں، 466 00:27:40,920 --> 00:27:47,740 bigint طرح کچھ کے ساتھ ڈیزائنرز کی طرف سے بار بار کافی نہیں اپنایا سمت ہے 467 00:27:47,740 --> 00:27:49,710 کیونکہ لوگوں کے اعداد و شمار ہے کہ ایک مسئلہ نہیں ہے، 468 00:27:49,710 --> 00:27:51,930 لیکن یہ اس سے بڑا کچھ منتخب کرنے کے لئے یہ آسان ہے. 469 00:27:51,930 --> 00:27:55,380 دشملو ہم 7 pset، جو مقررہ صحت سے متعلق وضاحت کرتا ہے میں استعمال کر رہے ہیں 470 00:27:55,380 --> 00:27:59,840 تاکہ آپ floats اور ڈبلز اور reals طرح کے معاملات سے بچنے کر سکتے ہیں. 471 00:27:59,840 --> 00:28:02,440 >> اور پھر کچھ دوسرے شعبوں میں یہاں ہے. ہم نے ان میں کسی حد تک ہمارے ہاتھ لہر کریں گے. 472 00:28:02,440 --> 00:28:07,270 لیکن تاریخوں، اوقات تمام ایس کیو ایل میں ایک مقررہ فارمیٹ ہے، 473 00:28:07,270 --> 00:28:10,830 اور تاریخوں اور varchars کے طور پر ذخیرہ کرنے کی تاریخوں کا فائدہ 474 00:28:10,830 --> 00:28:15,730 کا مطلب ہے کہ ڈیٹابیس کے انہیں مختلف شکلوں میں اصل میں دوبارہ سوروپت کر سکتے ہیں، 475 00:28:15,730 --> 00:28:18,800 کہ ایک امریکی کی شکل یا یورپی فارمیٹ یا جیسے - تاہم آپ اسے چاہتے ہیں - 476 00:28:18,800 --> 00:28:22,700 بہت زیادہ مؤثر طریقے سے اگر یہ صرف کچھ کلی varchar تھے سے. 477 00:28:22,700 --> 00:28:25,150 اور پھر کچھ دوسرے بائنری، varbinary، blobs ہے. 478 00:28:25,150 --> 00:28:28,580 یہ بائنری بڑی اشیاء ہیں، اور آپ کو بائنری ڈیٹا بھی جمع کر سکتے ہیں 479 00:28:28,580 --> 00:28:30,750 کے ساتھ ساتھ ایک ڈیٹا بیس میں ہندسی اعداد و شمار کے طور پر. 480 00:28:30,750 --> 00:28:34,350 لیکن ints اور varchars اور اس طرح کے بارے میں ہم نے ہمارے لئے خاص طور پر دیکھ بھال کریں گے. 481 00:28:34,350 --> 00:28:36,230 آو کے گھر کے ساتھ اس مثال کو ختم. 482 00:28:36,230 --> 00:28:40,030 ہاؤس میں منمانے کہنے جا رہا ہوں میں 255 حروف ہو جائے گا. 483 00:28:40,030 --> 00:28:42,850 پھر ڈیفالٹ قدر ہم یہ کر سکتے ہیں. 484 00:28:42,850 --> 00:28:47,440 ہم سب پہلے سے طے شدہ کی طرف سے Mather ہاؤس میں ڈالا، مثال کے طور پر کر سکتے ہیں. 485 00:28:47,440 --> 00:28:49,710 اس کا ہے کہ ہم کس طرح کی وضاحت کر سکتا ہے کہ ڈیٹا بیس 486 00:28:49,710 --> 00:28:52,460 اس بات کا یقین کرنے کے لئے کہ کوئی ہمیشہ ایک قیمت ہے. میں چلتا ہوں لیکن یہ ہو جائے گا. 487 00:28:52,460 --> 00:28:55,270 اصل میں، ان لوگوں کے جو کیمپس میں رہتے ہیں اور ایک گھر میں نہیں 488 00:28:55,270 --> 00:28:59,590 شاید میں واقعی میں کی وضاحت کرنا چاہتے ہیں کہ اس کے گھر کے لئے پہلے سے طے شدہ کی قیمت خالی ہے، 489 00:28:59,590 --> 00:29:04,890 اور پھر میں اس باکس کو چیک کرنے کے لیے اور ڈیٹا بیس بتاو یہ ٹھیک ہے اگر صارف کے گھر خالی ہے کرنے کی ضرورت ہے. 490 00:29:04,890 --> 00:29:07,270 >> ایک بار پھر، یہ ایک اور دفاعی میکانزم آپ اس میں ڈال کر سکتے ہیں ہے 491 00:29:07,270 --> 00:29:10,590 تو آپ کو آپ کی پی ایچ پی کوڈ میں ضروری ڈال بھی نہیں ہے. 492 00:29:10,590 --> 00:29:14,630 ڈیٹا بیس کو اس بات کا یقین کرنے کے لئے کہ چیزیں ہیں یا نل نہیں ہیں. 493 00:29:14,630 --> 00:29:17,310 اور پھر آخر میں، صفات. 494 00:29:17,310 --> 00:29:18,920 ان میں سے کسی نے بھی واقعی متعلقہ ہیں. 495 00:29:18,920 --> 00:29:22,880 ثنائی، اہستاکشرت - ان میں سے کوئی بھی ایک varchar سے متعلقہ ہیں. 496 00:29:22,880 --> 00:29:24,220 انڈیکس. 497 00:29:24,220 --> 00:29:27,320 کیا کسی کو یا انڈیکس کیا ہے کے طور پر ایک اندازہ یاد معلوم 498 00:29:27,320 --> 00:29:29,510 گھر کی طرح کچھ کے لئے؟ 499 00:29:29,510 --> 00:29:35,240 یہ بھی اصل میں ایک اہم اور ڈیزائن فیصلہ نسبتا آسان ہے. 500 00:29:35,240 --> 00:29:39,200 وہ لوگ جو ابھی تک نہیں دیکھا ہے کے لئے، ہم نے جمعہ کو بنیادی چابیاں کے بارے میں مختصر طور پر بات کی تھی. 501 00:29:39,200 --> 00:29:43,240 ایک ڈیٹا بیس کے ٹیبل میں، ایک بنیادی کلید فیلڈ یا کالم ہے 502 00:29:43,240 --> 00:29:46,270 جو منفرد ٹیبل میں قطاروں کی نشاندہی کی گئی ہے. 503 00:29:46,270 --> 00:29:49,150 تو موجودہ ٹیبل ہم شناخت ہے، ہم نام اور ای میل ہے. 504 00:29:49,150 --> 00:29:52,050 ان میں سے کون سی بنیادی کلید کا بہترین امیدوار ہیں، 505 00:29:52,050 --> 00:29:55,810 جس کا کردار منفرد قطاروں کی نشاندہی کی ہے؟ 506 00:29:55,810 --> 00:29:57,530 شاید ID. 507 00:29:57,530 --> 00:29:59,930 Arguably، لیکن کیا ہم بھی استعمال کر سکتے ہیں؟ 508 00:29:59,930 --> 00:30:02,860 ہو سکتا ہے آپ کو ای میل کا استعمال کرتے ہیں کیونکہ اس کی تھیوری اور اس میں منفرد ہے ہے 509 00:30:02,860 --> 00:30:05,380 جب تک لوگوں کے ای میل اکاؤنٹ کا اشتراک کر رہے ہیں. 510 00:30:05,380 --> 00:30:09,980 لیکن حقیقت ہے کہ، اگر آپ کو 1234 کی طرح ایک عددی ID کا استعمال کرتے ہوئے کر رہے ہیں 511 00:30:09,980 --> 00:30:14,170 جو صرف 32 بٹس ہے، جبکہ ایک ای میل ایڈریس یہ بہت بائٹس یا اس کئی بائٹس ہو سکتا ہے. 512 00:30:14,170 --> 00:30:16,610 تو، میں کارکردگی کے لحاظ سے منفرد identifiers کے لئے 513 00:30:16,610 --> 00:30:19,270 یہ صرف ایک int کو استعمال کرنے کے لئے کے لئے اچھی پریکٹس جاتا 514 00:30:19,270 --> 00:30:23,090 یہاں تک کہ اگر آپ کچھ سٹرنگ امیدوار ہے کہ آپ استعمال کر سکتے ہیں arguably ہے. 515 00:30:23,090 --> 00:30:26,760 >> کے گھر کی طرح کچھ کے لئے، یہ ایک بنیادی کلید نہیں ہونا چاہئے 516 00:30:26,760 --> 00:30:30,770 کیونکہ اس وقت صرف 1 شخص Mather میں رہنے Currier طرح میں 1 شخص اور کر سکتے ہیں. 517 00:30:30,770 --> 00:30:32,790 اسی طرح، اس منفرد نہیں ہونا چاہئے. 518 00:30:32,790 --> 00:30:37,830 ہمارے موجودہ ٹیبل کے معاملے میں پرائمری اور منفرد کے درمیان فرق یہ ہے کہ، 519 00:30:37,830 --> 00:30:42,620 ID بنیادی ہو سکتا ہے لیکن ای میل کی وجہ سے ہم صرف ذکر کے لئے بنیادی نہیں ہے - 520 00:30:42,620 --> 00:30:44,740 کارکردگی - لیکن یہ منفرد اب بھی ہونا چاہئے. 521 00:30:44,740 --> 00:30:47,200 تو آپ کے دعوے کئے بغیر انفرادیت کے نفاذ کر سکتے ہیں 522 00:30:47,200 --> 00:30:49,520 کہ یہ ایک انتہائی اہم بنیادی فیلڈ ہے. 523 00:30:49,520 --> 00:30:52,610 لیکن یہ بھی بہت مفید ہے: انڈیکس. 524 00:30:52,610 --> 00:30:56,180 اگر آپ کو اپنے حتمی منصوبہ کے لئے پیشگی پتہ ہے، 7 pset کے لئے، یا عام طور پر، 525 00:30:56,180 --> 00:30:59,480 کہ اس فیلڈ کے گھر کچھ آپ کو بہت تلاش کی جا رہی ہے 526 00:30:59,480 --> 00:31:01,910 منتخب مطلوبہ لفظ یا کچھ کا استعمال کرتے ہوئے، 527 00:31:01,910 --> 00:31:05,180 تو آپ ڈیٹا بیس preemptively اس کا جادو کام بتا سکتے ہیں 528 00:31:05,180 --> 00:31:10,510 اور اس بات کا یقین کر لیں کہ ہے کہ یہ یاد میں پسند ہیں ڈیٹا کے ڈھانچے کی تخلیق ضروری ہے 529 00:31:10,510 --> 00:31:13,770 گھر پر کی بنیاد پر تلاش کو تیز کرنے کے. 530 00:31:13,770 --> 00:31:17,860 ہو سکتا ہے یہ ایک ہیش ٹیبل استعمال کریں گے، شاید یہ ایک لنک کی فہرست کا استعمال کریں گے. 531 00:31:17,860 --> 00:31:21,260 حقیقت میں، یہ ایک درخت کو استعمال کرنے کے لئے جاتا ہے، اکثر ڈھانچہ B درخت قرار دیا ہے - 532 00:31:21,260 --> 00:31:24,090 ایک بائنری درخت نہیں بلکہ ایک B درخت - جس میں ایک بہت وسیع درخت ہے 533 00:31:24,090 --> 00:31:27,370 کہ آپ ایک کلاس میں CS124، ڈیٹا ڈھانچے کلاس کی طرح دیکھ سکتے ہیں. 534 00:31:27,370 --> 00:31:31,800 لیکن مختصر میں، آپ جب ہوشیار ڈاٹا بیس سوفٹ ویئر کا استعمال کرتے ہوئے اس کے بارے میں فکر کرنے کی ضرورت نہیں ہے. 535 00:31:31,800 --> 00:31:35,890 تم نے یہ صرف بتا "انڈیکس اس میدان تو میں زیادہ مؤثر طریقے سے اس پر تلاش کر سکتے ہیں." ​​کر سکتے ہیں 536 00:31:35,890 --> 00:31:40,250 >> اگر آپ اسے بند چھوڑ دو اور آپ ڈیٹا بیس Mather میں رہتا ہے میں سب کے لئے تلاش کرنے کی کوشش کرتے ہیں، 537 00:31:40,250 --> 00:31:42,710 لکیری تلاش میں devolve گے. 538 00:31:42,710 --> 00:31:45,360 اور اگر آپ کو 6،000 undergrads نے تمام زندہ ہے کسی کے گھر میں، 539 00:31:45,360 --> 00:31:47,900 آپ پورے میز Matherites تلاش کرنے کے لئے تلاش کرنے جا رہے ہیں، 540 00:31:47,900 --> 00:31:52,190 جبکہ اگر آپ کا کہنا ہے کہ انڈیکس، امید ہے کہ یہ لوگارتمی تلاش کے قریب کچھ ہو جائے گا 541 00:31:52,190 --> 00:31:54,510 ان قسم کے طلباء کو تلاش کرنے کے لئے. 542 00:31:54,510 --> 00:31:56,750 یہ صرف ایک مفت خصوصیت یہ ہے چالو، 543 00:31:56,750 --> 00:31:59,530 اگرچہ اس علاقے میں سے کچھ رقم کی قیمت میں آیا ہے. 544 00:31:59,530 --> 00:32:02,690 آخر میں،، آٹو اضافہ، اس AI میدان 545 00:32:02,690 --> 00:32:05,830 جس میں صرف کا مطلب ہے کہ اگر یہ ایک int ہے اور آپ کو خود اضافہ کی پرواہ نہیں کرنا چاہتا 546 00:32:05,830 --> 00:32:07,570 ہر بار ایک نیا صارف ہے، کہ چیک کرنے کے لیے، 547 00:32:07,570 --> 00:32:11,910 اور ہر صارف ہے جو داخل ہو جاتا ہے ایک نئی شناخت کو خود کار طریقے سے ہو جائے گا. 548 00:32:11,910 --> 00:32:15,620 چلو پر کلک کریں محفوظ کریں، اور اب اس ڈیزائن کے ساتھ غلطی تلاش کریں. 549 00:32:15,620 --> 00:32:20,200 اگر میں براؤز کریں، نوٹس کہ دونوں مائیک اور اپنے گھر خالی ہے میں جاتے ہیں. 550 00:32:20,200 --> 00:32:22,420 میں phpMyAdmin کا ​​استعمال کرتے ہوئے دستی طور پر اس میں ترمیم کرنے کی کر سکتے ہیں. 551 00:32:22,420 --> 00:32:25,110 میں میں Mather میں یہاں اور قسم اور پھر کر سکتے ہیں درج کریں مارا، 552 00:32:25,110 --> 00:32:27,740 اور اب محسوس میز مختلف ہے. 553 00:32:27,740 --> 00:32:29,270 نوٹس لیکن میں کچھ اور کے ساتھ کر سکتے ہیں. 554 00:32:29,270 --> 00:32:33,530 ڈیوڈ ID 1 ہے، پھر phpMyAdmin صرف ایک انتظامی آلہ ہے. 555 00:32:33,530 --> 00:32:35,970 اس بات پر کبھی بھی اپنے صارفین کو دیکھنے جا رہے ہیں نہیں ہے. 556 00:32:35,970 --> 00:32:38,810 - تو اگر میں اوپر بجائے SQL کے ٹیب پر کلک کریں 557 00:32:38,810 --> 00:32:41,450 اور پھر سے، 7 pset آپ کو ان سوالات کے متعارف کرائے گا - 558 00:32:41,450 --> 00:32:45,260 میں SQL تشکیل استفسار زبان کمانڈ دستی طور پر پھانسی کر سکتے ہیں 559 00:32:45,260 --> 00:32:56,410 اپ ڈیٹ صارفین نے گھر = 'Pfoho' WHERE ID = 1 کو مقرر کیا ہے. 560 00:32:56,410 --> 00:33:00,830 یہ SQL سوالات ہیں، اچھی طرح سے کافی خوبصورت بائیں سے دائیں جانب پڑھنے کے قابل ہے. 561 00:33:00,830 --> 00:33:04,350 صارفین کی میز کو اپ ڈیٹ کریں، Pfoho کہا جاتا گھر فیلڈ ترتیب 562 00:33:04,350 --> 00:33:06,830 صارف ID 1 کہاں ہے. 563 00:33:06,830 --> 00:33:11,480 نہیں تو میں بھی کر سکتا ہے جہاں ای میل = 'malan@harvard.edu'. 564 00:33:11,480 --> 00:33:14,860 جب تک کہ منفرد آپ کے وزٹرز کا ریکارڈ رکھا نشاندہی کی گئی ہے، جو اس کے ساتھ ساتھ کام کریں گے. 565 00:33:14,860 --> 00:33:18,810 لیکن ID زیادہ اعلی کارکردگی کے لئے جاتا ہے، تو چلو ایسا کریں. 566 00:33:18,810 --> 00:33:22,950 کلک کریں. ٹھیک ہے، lecture.users کا کوئی وجود نہیں ہے. میری کیا غلطی ہے؟ 567 00:33:22,950 --> 00:33:26,220 اصل میں یہاں بلایا ٹیبل کیا ہے؟ 568 00:33:26,220 --> 00:33:28,770 یہ طالب علموں کو کہا جاتا ہے کہ صرف اس وجہ سے ہے جو ہم نے یہاں سب سے اوپر بائیں میں کیا ہے. 569 00:33:28,770 --> 00:33:31,860 یہ طالب علموں، صارفین کو کہا جاتا ہے. تو اب دیکھیں کریں پر کلک کریں. 570 00:33:31,860 --> 00:33:34,330 1 صف متاثر ہوئے ہیں. طلب 0.01 سیکنڈ تک جاری رہی. 571 00:33:34,330 --> 00:33:38,010 اگر اب میں براؤز کریں، اب Pfoho میں Malan زندگی کلک کریں. 572 00:33:38,010 --> 00:33:42,070 تو یہ SQL کے ایک ذائقہ ہے، لیکن آپ کو تھوڑا سا اس سے زیادہ کے ذریعے pset چلے جائیں گے. 573 00:33:42,070 --> 00:33:44,710 >> ایک احمقانہ فیصلہ ہے یہاں میں نے پہلے ہی کر دیا ہے. 574 00:33:44,710 --> 00:33:47,820 میں یہ کہنا چاہتا ہوں کہ یہ ڈیٹا بیس ڈیزائن غیر فعال ہے 575 00:33:47,820 --> 00:33:51,650 کیونکہ جن لوگوں کو میں طالب علموں کی میز پر شامل 576 00:33:51,650 --> 00:33:54,730 ہم میں سے زیادہ میں انہوں نے کہا کہ TFs میں انہوں نے مزید کہا شروع شروع، 577 00:33:54,730 --> 00:33:58,320 ہم دیکھتے ہیں جو اس کے ٹیبل میں redundancies شروع کرنے جا رہے ہیں؟ 578 00:34:00,840 --> 00:34:06,020 >> جی ہاں. [طالب علم] دیکھ رہا ہوں کہ یہ طالب علموں میں ہے، ہم ایک ہی استعمال کر رہے ہیں [اشراوی] 579 00:34:06,020 --> 00:34:07,360 اسی - ٹھیک ہے، بالکل. 580 00:34:07,360 --> 00:34:10,400 تو اگر 400 لوگ Mather میں رہتے ہیں، یا اٹھانے کے لئے دیتے ہیں، 581 00:34:10,400 --> 00:34:15,000 بالآخر اس جدول 400 قطاروں "Mather،" "Mather کا کہنا ہے کہ، ہو رہا ہے" 582 00:34:15,000 --> 00:34:16,590 "Mather،" "Mather،" "Mather." 583 00:34:16,590 --> 00:34:19,820 ہم نے ان تمام بائٹس کی برباد کر رہے ہیں، اور اس takeaways کے ایک جوڑے کے وہاں ہے. 584 00:34:19,820 --> 00:34:23,080 1، پاگل کونے معاملہ ہے جہاں اگر کوئی رقم کا ایک بہت ادا کرتا ہے 585 00:34:23,080 --> 00:34:25,949 اور نیا نام دیتا ہے Mather، اب ہم ہمارے پورے ڈیٹا بیس کی میز کو تبدیل کرنا ہوگا. 586 00:34:25,949 --> 00:34:29,730 یہ اکثر ہونے والا نہیں ہے، اگرچہ Pfoho ایک بار شمالی ہاؤس سے کہا گیا تھا 15 سال پہلے، 587 00:34:29,730 --> 00:34:32,310 تو یہ ہوتا ہے. لیکن اس سے وہ سب مجبور نہیں ہے. 588 00:34:32,310 --> 00:34:36,000 بلک میں اعداد و شمار کو اپ ڈیٹ کرنے کی ضرورت ہے کہ کی طرح ایک کونے کیس سے زیادہ مجبور 589 00:34:36,000 --> 00:34:41,150 ایک ڈیٹا بیس کے لئے کیوں ہے آپ MATHER بار بار ذخیرہ کرنے اور بار بار 590 00:34:41,150 --> 00:34:43,020 یہ حروف، 6 حروف کا ایک بہت ہے. 591 00:34:43,020 --> 00:34:45,500 ہم خاص طور پر Pforzheimer کے لئے اس سے بھی بہتر کرتے ہیں، نہیں کر سکتا ہے؟ 592 00:34:45,500 --> 00:34:48,320 بیشک ہم ہے کہ بہت سے حروف سے بہتر کر سکتے ہیں. 593 00:34:48,320 --> 00:34:51,790 ہر گھر کے ساتھ ایک منفرد شناخت کنندہ کیوں نہیں منسلک 594 00:34:51,790 --> 00:34:55,020 اور ہر صارف کے لئے سٹور؟ تو اس کی کوشش ہے. 595 00:34:55,020 --> 00:35:00,610 بجائے صرف طالب علموں کی میز کا استعمال کریں، کے وزٹرز کا ریکارڈ رکھا جائے گا. میرے سب سے اوپر بائیں میں میرے لیکچر ڈیٹا بیس تک یہاں. 596 00:35:00,610 --> 00:35:02,600 یہاں نوٹس کا کہنا ہے کہ ٹیبل بنائیں. 597 00:35:02,600 --> 00:35:04,550 آپ کے وزٹرز کا ریکارڈ رکھا نامی ایک نئی گھروں ٹیبل بنا دو. 598 00:35:04,550 --> 00:35:08,880 کالموں کی تعداد 2 جا رہا ہے. درج کریں. 599 00:35:08,880 --> 00:35:11,200 اب میں 2 شعبوں ہے. 600 00:35:11,200 --> 00:35:14,600 میں اس نام کو فون کرنے جا رہا ہوں، اور یہ 255 کی لمبائی کی varchar ہونے جا رہا ہے، 601 00:35:14,600 --> 00:35:18,770 >> لیکن یہ بہت غیر منطقی ہے. مجھے یہ یہاں ذیل کنونشن کی طرف سے ڈال. 602 00:35:18,770 --> 00:35:22,840 تو ایک ID یہاں ڈال. ہر گھر ایک منفرد شناخت دے دو. 603 00:35:22,840 --> 00:35:25,360 ہر گھر ایک کا نام دے دو 604 00:35:25,360 --> 00:35:30,980 چلو، کی وضاحت کریں کہ شناخت کنندہ صرف کنونشن کی طرف سے اہستاکشرت صرف مثبت تعداد کا استعمال کریں گے. 605 00:35:30,980 --> 00:35:35,020 چلو آگے بڑھو اور اب کے لئے یہ ایک فیلڈ آٹو اضافہ دے. 606 00:35:35,020 --> 00:35:38,160 اور کیا ہم کسی اور چیز کی ضرورت ہے؟ 607 00:35:38,160 --> 00:35:41,010 چلو آگے بڑھو اور محفوظ کریں پر کلک کریں. 608 00:35:41,010 --> 00:35:42,480 اب میں ایک دوسرے کی میز ہے. 609 00:35:42,480 --> 00:35:45,860 نوٹس ایک طرف ایک کے طور پر یہ تھوڑا سا خفیہ SQL کمانڈ ہے 610 00:35:45,860 --> 00:35:50,280 ہے کہ آپ کو دستی طور پر اگر phpMyAdmin کی طرح ایک انتظامی آلہ استعمال نہیں کر ٹائپ ہوتا ہے. 611 00:35:50,280 --> 00:35:51,990 تو کسی دوسرے کی وجہ سے ہم اس کا استعمال کرتے ہیں. 612 00:35:51,990 --> 00:35:55,480 pedagogically wonderfully مفید طرح ہے کیونکہ آپ کے ارد گرد کلک کر سکتے ہیں 613 00:35:55,480 --> 00:36:01,050 اور اعداد و شمار کس طرح چیزوں کو صرف کاپی اور پیسٹ کیا phpMyAdmin کیا کام کرتے ہیں. 614 00:36:01,050 --> 00:36:04,150 لیکن بنائیں میز کمانڈ ہے جو صرف پھانسی دے دی گئی ہے، اور یہاں میری میز ہے. 615 00:36:04,150 --> 00:36:11,370 مجھے آگے اب جاؤ اور داخل ٹیب پر کلک کرکے خام بجائے SQL oversimplify کا استعمال. 616 00:36:11,370 --> 00:36:15,040 کے وزٹرز کا ریکارڈ رکھا جائے گا. میرے گھروں میں INSERT کرتے ہیں، 617 00:36:15,040 --> 00:36:22,230 اور میں کہتا ہوں کہ گھر کا نام 'Mather' قیمت پر کی جا رہی ہے کے لئے جا رہا ہوں. 618 00:36:22,230 --> 00:36:24,790 کہ یہ ہے. یہ نحو تھوڑا زیادہ خفیہ ہے. 619 00:36:24,790 --> 00:36:26,660 یہ شعبوں ہم داخل کرنا چاہتے ہیں کے نام پر ہے. 620 00:36:26,660 --> 00:36:30,390 ان کی اقدار سے ہم ان خانوں میں داخل کرنا چاہتے ہیں ہیں. آپ کے وزٹرز کا ریکارڈ رکھا دیکھیں کلک کریں. 621 00:36:30,390 --> 00:36:34,410 1 داخل صف 0.02 سیکنڈ تک جاری رہی. چلو، مجھے اب براؤز کریں پر کلک کریں. 622 00:36:34,410 --> 00:36:42,020 >> نوٹس اگر میں براؤز کریں پر کلک کریں، Mather، جس کی ID آٹومیشن کی طرف سے نمبر 1 ہے. 623 00:36:42,020 --> 00:36:45,000 مجھے ایک دوسرے سے کرتے ہیں. کے وزٹرز کا ریکارڈ رکھا جائے گا. میرے SQL ٹیب میں جانے دو. 624 00:36:45,000 --> 00:36:52,950 گھروں میں ڈالیں. گھر کا نام Pfoho کی قیمت جا رہی ہے اور وغیرہ. 625 00:36:52,950 --> 00:36:56,350 جاؤ. اور میں نے یہ کر رہی بار بار بار رکھ سکتے ہیں. 626 00:36:56,350 --> 00:36:59,470 یا اگر آپ phpMyAdmin کا ​​استعمال کرتے ہوئے ؤب، آپ داخل ٹیب کا استعمال کر سکتے ہیں 627 00:36:59,470 --> 00:37:01,000 اور خام SQL ٹائپ کرنا نہیں ہے. 628 00:37:01,000 --> 00:37:04,690 ، تم نے یہ صرف ٹائپنگ کی طرف سے باہر پھینک زیادہ تیزی سے کر سکتے ہیں، مثال کے طور پر، Currier درج کریں، 629 00:37:04,690 --> 00:37:07,610 اور اب اگر ہم براؤز کریں پر کلک کریں، 3 ID کے ساتھ Currier ہے. 630 00:37:07,610 --> 00:37:09,920 تو یہ ہے جو ہم آٹو اضافہ کی طرف سے مطلب ہے. 631 00:37:09,920 --> 00:37:12,280 لیکن اب ہم طالب علم میں کچھ طے ہے. 632 00:37:12,280 --> 00:37:16,240 طالب علموں میں کیا گھر فیلڈ کے اعداد و شمار کی قسم اب ہونا چاہئے؟ 633 00:37:16,240 --> 00:37:19,450 یہ ایک int چاہئے، ٹھیک ہے؟ 634 00:37:19,450 --> 00:37:23,950 تو یہاں کا مقصد باہر عنصر ہے، دوسری صورت میں کے طور پر معمول پر جانا جاتا ہے، میزیں 635 00:37:23,950 --> 00:37:27,940 تاکہ ہم میری ٹیبل میں سے کسی ایک میں معلومات جمع نہیں redundantly. 636 00:37:27,940 --> 00:37:31,130 اور پھر، ہم یہاں پر تھے راستے Mather Mather کہنا جا رہا ہے، 637 00:37:31,130 --> 00:37:34,220 Mather، Mather، Pfoho، Pfoho، Pfoho، Pfoho، جو بہت بے کار ہے 638 00:37:34,220 --> 00:37:36,240 حروف کی wastefulness کی شرائط میں. 639 00:37:36,240 --> 00:37:40,820 ، تو آپ کے وزٹرز کا ریکارڈ رکھا آگے بڑھیں اور پر کلک ساخت کی طرف سے اسے تبدیل 640 00:37:40,820 --> 00:37:44,620 اور آپ کے وزٹرز کا ریکارڈ رکھا آگے بڑھو اور گھر فیلڈ چیک کرنے کے لیے، تبدیل کریں پر کلک کریں، 641 00:37:44,620 --> 00:37:46,990 اور اب میں یہ int تبدیل کرنے جا رہا ہوں. 642 00:37:46,990 --> 00:37:49,490 255 اب متعلقہ نہیں ہے. 643 00:37:49,490 --> 00:37:54,010 آپ کے وزٹرز کا ریکارڈ رکھا آگے بڑھیں اور کا کہنا ہے کہ ٹھیک ہے اگر یہ اب بھی ہے نل. محفوظ کریں. 644 00:37:54,010 --> 00:37:55,870 اب میز کے طالب علموں کو کامیابی کے ساتھ تبدیل 645 00:37:55,870 --> 00:37:59,090 بار گھر ایک int ہے نوٹس 646 00:37:59,090 --> 00:38:02,220 ایک طرف ایک کے طور پر، قوسین میں نمبر نظر انداز جب ints پر آتا ہے. 647 00:38:02,220 --> 00:38:03,770 >> یہ میراث بھی ویسی ہی وجوہات کی بناء پر ہے. 648 00:38:03,770 --> 00:38:06,920 پیچھے اگلا، دوسرا دن میں جب آپ GUIs نہیں تھا، آپ نے بجائے ایک کمانڈ لائن کے ماحول تھا، 649 00:38:06,920 --> 00:38:11,580 بالترتیب 10 اور 11 مخصوص حروف کتنے آپ کو دکھانا چاہیئے 650 00:38:11,580 --> 00:38:13,950 ٹرمنل ونڈو میں اصل شعبوں کو ظاہر کرنے کے لئے. 651 00:38:13,950 --> 00:38:19,150 اس کا اصل فیلڈ کی بٹ کی لمبائی کے ساتھ کوئی تعلق نہیں ہے، تو اب ہم صرف نظر انداز کریں گے. 652 00:38:19,150 --> 00:38:20,990 اب میں اس ٹیبل میں جانے کے لئے ہے. 653 00:38:20,990 --> 00:38:24,610 اور اگر ڈیوڈ Mather میں رہتا ہے، اور گھر 0 نہیں کرنا چاہئے، 654 00:38:24,610 --> 00:38:27,350 جو ڈیفالٹ int شہوت انگیز null قریب کی گئی ہے. 655 00:38:27,350 --> 00:38:29,810 انہوں نے 1 کے گھر میں رہنا چاہئے. 656 00:38:29,810 --> 00:38:36,870 چلو منمانے کا کہنا ہے کہ Pfoho میں مائیک زندگی، تو گھر نمبر 2. 657 00:38:36,870 --> 00:38:40,160 اب میری میز تھوڑا خفیہ لگتا ہے. 658 00:38:40,160 --> 00:38:41,960 لیکن کارکردگی پر غور کریں. 659 00:38:41,960 --> 00:38:44,860 میں اب صرف 32 بٹس کا استعمال کرتے ہوئے کر رہا ہوں گھر کی شناخت کے لئے، 660 00:38:44,860 --> 00:38:49,530 جس کا مطلب ہے کہ صرف میرے گھر Mather اور Pfoho 1 وہیت تعریف ہے 661 00:38:49,530 --> 00:38:52,090 اور یہ کہ گھروں ٹیبل میں ہے. 662 00:38:52,090 --> 00:38:55,880 تو اگر میں اب ان کی ٹیبلز پر دوبارہ کرنا چاہتے ہیں، اسے اس طرح کے بارے میں سوچو. 663 00:38:55,880 --> 00:39:01,980 یہاں میں اپنے طالب علموں کی میز ہے، اور دائیں ہاتھ پر ان کی تعداد، 1 اور 2. 664 00:39:01,980 --> 00:39:04,180 1 2 Mather ہے، Pfoho ہے. 665 00:39:04,180 --> 00:39:08,580 ہم نے اس دوسرے ٹیبل میں وہی تعداد، جو گھروں میں کہا جاتا ہے ہے، 666 00:39:08,580 --> 00:39:11,020 1 اور 2 اور ان 3 گھروں کے لئے 3. 667 00:39:11,020 --> 00:39:14,990 اب ہم کیا کرنا چاہتے ہیں کوڈ میں صلاحیت، پی ایچ پی اور SQL ہے، 668 00:39:14,990 --> 00:39:18,800 کی ترتیب ان کے ٹیبل کو دوبارہ، جہاں اگر ان طلباء ہیں اور یہ گھر ہیں، 669 00:39:18,800 --> 00:39:22,050 ہم 1 کے ساتھ کسی بھی طرح انہیں تاکہ 1 لائنوں تک جمع کرنا چاہتے ہیں، 670 00:39:22,050 --> 00:39:25,670 2 کے ساتھ 2 لائنیں، اور تاکہ ہم ڈیوڈ جہاں اعداد و شمار کر سکتے ہیں 671 00:39:25,670 --> 00:39:28,000 اور جہاں مائیک اور کہاں اور ہر شخص کی زندگی. 672 00:39:28,000 --> 00:39:31,850 ایسا کرنے کے لیے ہم نے مندرجہ ذیل کی طرح ایک SQL استفسار پھانسی کر سکتے ہیں. 673 00:39:31,850 --> 00:39:40,470 طلبہ پر گھروں شمولیت سے * منتخب کریں - 674 00:39:40,470 --> 00:39:43,000 اور اب ہم کن شعبوں پر اپنے ساتھ شامل کرنا چاہتے ہیں؟ 675 00:39:43,000 --> 00:39:49,520 تو students.house = houses.id. 676 00:39:49,520 --> 00:39:54,150 >> ایک چھوٹا سا خفیہ، لیکن اس حصے کا مطلب لفظی ایک نیا عارضی ٹیبل بنانے کے 677 00:39:54,150 --> 00:39:56,690 ہے جو طلباء اور گھروں میں شمولیت کا نتیجہ ہے. 678 00:39:56,690 --> 00:40:00,340 اور کس طرح تم نے میری انگلیوں کے تجاویز کو یہاں جمع کرنا چاہتے ہیں؟ 679 00:40:00,340 --> 00:40:05,280 طلباء کا ID میدان گھر کے گھروں کے برابر میدان 'مقرر کریں. 680 00:40:05,280 --> 00:40:10,220 اور اگر میں اب جاؤ کریں پر کلک کریں، مجھے واپس جانا بالکل وہی جو میں نے امید ظاہر کی ہے. 681 00:40:10,220 --> 00:40:15,890 داؤد نے Mather میں ہے، مائیک Pfoho میں ہے، اور میں بھی منفرد identifiers دیکھ. 682 00:40:15,890 --> 00:40:18,640 لیکن بات یہ ہے میں ایک مکمل میز ہے. 683 00:40:18,640 --> 00:40:23,020 اور اس طرح 7 pset کے لئے یہاں takeaway یا واقعی حتمی منصوبے کے لئے: 684 00:40:23,020 --> 00:40:25,830 اگر آپ کو لگتا ہے کہ آپ کی معلومات کے کسی بھی حصے ذخیرہ کرنے redundantly کر رہے ہیں، 685 00:40:25,830 --> 00:40:28,850 چاہے وہ ایک گھر ہے، شاید یہ ایک شہر، ریاست، اور زپ ہے 686 00:40:28,850 --> 00:40:32,050 جہاں زپ ہمیشہ عام طور پر نہیں بلکہ ایک منفرد شناخت کنندہ کے طور پر استعمال کیا جائے سکتا ہے، 687 00:40:32,050 --> 00:40:35,810 phpMyAdmin کی طرح کچھ کے ساتھ مشق کے ذریعے ذہنی طور پر اور پھر جاتے ہو 688 00:40:35,810 --> 00:40:40,660 کہ عام ڈیٹا باہر فیکٹرنگ کی وجہ سے خاص طور پر اس صورت حال میں جبکہ آپ کی ویب سائٹ کو زیادہ اچھی طرح سے استعمال کیا جاتا ہے 689 00:40:40,660 --> 00:40:45,440 اور زیادہ مقبول، یہ ہے کہ آپ کس طرح اس بات کا یقین کر لیں کہ کہ یہ سب کچھ انتہائی تیز رفتار ہے، 690 00:40:45,440 --> 00:40:51,930 انفرادیت کے طور پر ہر ممکن حد تک بہت سے اشارے کے طور پر ڈیٹا بیس کو دے کر. 691 00:40:51,930 --> 00:40:53,860 یہ ایک بہت تھا. 692 00:40:53,860 --> 00:40:59,010 کوئی سوال؟ ٹھیک ہے. 5 منٹ کی ایک وقفے وہاں لے اور regroup دو. 693 00:41:01,600 --> 00:41:03,540 ٹھیک ہے. 694 00:41:03,540 --> 00:41:08,680 مندرجہ ذیل ایک مثال ہے کہ کچھ سال پہلے استعمال کیا جاتا ہے جب میں CS161 لیا تھا ہے، 695 00:41:08,680 --> 00:41:10,960 جو کالج میں آپریٹنگ سسٹم کلاس ہے 696 00:41:10,960 --> 00:41:15,160 ، جو حیرت انگیز ہونے کے لئے نام سے جانا جاتا ہے لیکن کام کی ایک پاگل مقدار 697 00:41:15,160 --> 00:41:19,810 اور یہ کم سطح کے مسائل جو آپریٹنگ سسٹمز میں پیدا میں سے کچھ واقعی توجہ مرکوز 698 00:41:19,810 --> 00:41:22,700 اور ڈیٹا بیس کی دنیا میں بھی. 699 00:41:22,700 --> 00:41:27,040 >> کہانی ہے کہ اس سال میرے پروفیسر Margo Seltzer، کی طرف سے بتایا گیا تھا کے طور پر مندرجہ ذیل ہے. 700 00:41:27,040 --> 00:41:30,990 لگتا ہے کہ آپ کو آپ کے اور آپ کے روممیٹ کے لئے ایک چھوٹا سا چھاترالی فرج یا ہے 701 00:41:30,990 --> 00:41:34,030 اور آپ دونوں کو واقعی دودھ پسند ہے. 702 00:41:34,030 --> 00:41:36,360 آپ کی روممیٹ تو آپ کلاس ایک دن سے گھر آتے ہیں، ابھی تک وہاں سے نہیں ہے، 703 00:41:36,360 --> 00:41:39,650 آپ کو فرج یا کھولتے ہیں، اور آپ کو احساس ہوتا ہے "اوہ، لات، ہم نے دودھ سے باہر ہو گیا ہے." 704 00:41:39,650 --> 00:41:42,070 تو آپ کو فرج یا بند، آپ کو سڑک کے پار CVS چل 705 00:41:42,070 --> 00:41:45,830 اور تیزی سے طویل لائنوں میں CVS میں تھوڑا دودھ خریدنے. 706 00:41:45,830 --> 00:41:48,470 اس دوران، آپ روممیٹ اس کا یا اس کی کلاس سے گھر آتا ہے، 707 00:41:48,470 --> 00:41:51,690 واقعی میں تھوڑا دودھ چاہتے فرج یا کمرے میں آتا ہے، کھولتا، 708 00:41:51,690 --> 00:41:54,130 فرج یا کھولتا ہے، اور "وفف، کوئی دودھ." 709 00:41:54,130 --> 00:41:57,890 تو وہ فرج یا بند، دروازہ چلتا ہے، اور اے بی پی جاتا ہے 710 00:41:57,890 --> 00:42:00,910 یا CVS آپ کہاں جا رہے ایک دوسرے سے ٹکرانا نہیں کر رہے ہیں کے مقابلے میں کہیں دوسرے 711 00:42:00,910 --> 00:42:02,790 تھوڑا دودھ حاصل کرنے کے لئے. 712 00:42:02,790 --> 00:42:04,820 کورس کے چند منٹ کے بعد تم دونوں کو گھر واپس جاؤ 713 00:42:04,820 --> 00:42:07,740 اور اب آپ کو دو بار زیادہ سے زیادہ دودھ کے طور پر آپ اصل میں چاہتی تھی ہے. 714 00:42:07,740 --> 00:42:10,670 اور دودھ ہونے کے، اب یہ برا جا ہے کیونکہ آپ نے دودھ پسند 715 00:42:10,670 --> 00:42:14,200 لیکن آپ واقعی دودھ کی طرح نہیں ہے، تو اب آپ کو بہت زیادہ دودھ ہے، تو اسے ھٹا ہو رہا ہے. 716 00:42:14,200 --> 00:42:16,830 یہ ایک خوفناک، خوفناک صورت حال ہے. 717 00:42:16,830 --> 00:42:22,920 اس حیثیت کیا ہے حل کیا جا سکتا ہے اگر آپ کو پہلے روممیٹ گھر تھے؟ جی ہاں. 718 00:42:22,920 --> 00:42:25,970 [طالب علم] آپ کو ایک نوٹ چھوڑ دینا چاہئے. [ہنسی] 719 00:42:25,970 --> 00:42:28,090 اچھی بات ہے. آپ کو ایک نوٹ چھوڑ دینا چاہئے. 720 00:42:28,090 --> 00:42:32,320 آپ کہہ رہے ہو، جیسے نوٹ پوسٹ یا ڈال دیا کرنا چاہیے "دودھ کے لئے گیا، 721 00:42:32,320 --> 00:42:36,830 اور پھر آپ روممیٹ conceptually کیا گیا ہوتا اصل میں یہ ہے کہ ایسا کرنے کے بند کر دیا. 722 00:42:36,830 --> 00:42:38,010 یا آپ مزید مرحلہ 1 جا سکتا ہے. 723 00:42:38,010 --> 00:42:41,060 آپ پیڈلاک کے کچھ قسم کے ساتھ فرج لفظی تالا لگا سکتا ہے، 724 00:42:41,060 --> 00:42:44,870 اور اب آپ روممیٹ لفظی فرج یا رکھا جائے گا بند کر دیا. 725 00:42:44,870 --> 00:42:48,520 اگر ہم پروگرامنگ واپس سامانییکرن، 726 00:42:48,520 --> 00:42:51,610 آپ متغیر کی کسی قسم یا struct کے طور پر فرج یا تقریبا سوچ سکتے ہیں، 727 00:42:51,610 --> 00:42:53,500 کچھ قسم کی معلومات کے لئے کنٹینر کے. 728 00:42:53,500 --> 00:42:58,290 مسئلہ بنیادی طور پر یہ ہے کہ تم دونوں کو معائنہ کی اجازت دی گئی 729 00:42:58,290 --> 00:43:02,370 یا یہ آنکڑا ڈھانچہ کی حالت کو پڑھنے کے، 730 00:43:02,370 --> 00:43:08,050 لیکن تم نے اسے مختلف اوقات میں دیکھا اور پھر تم دونوں کو ایک فیصلہ کیا 731 00:43:08,050 --> 00:43:11,920 وقت میں ان مختلف لمحات میں دنیا کی حالت پر مبنی ہے. 732 00:43:11,920 --> 00:43:15,570 تو کیا تم فرج یا بند کر دیا تھا، تو آپ کم از کم اپنے روممیٹ سے گریز 733 00:43:15,570 --> 00:43:19,070 ہے دنیا کی حالت کا معائنہ کرنے کے قابل ہو گیا 734 00:43:19,070 --> 00:43:22,530 تو وہ ہیں یا پھر وہ اس نے بھی یہی فیصلہ نہیں ہو سکتا. 735 00:43:22,530 --> 00:43:25,780 ڈیٹا بیس تو ہے، کے طور پر یہ پتہ چلتا ہے، اس مسئلہ کو مسلسل ہے. 736 00:43:25,780 --> 00:43:31,050 >> چلو دیکھتے ہیں اگر ہم حالات کی تعمیر کر سکتے ہیں. 737 00:43:31,050 --> 00:43:34,310 لگتا ہے کہ آپ ایک برا آدمی کی طرح ہیں اور آپ کو بینک آف امریکہ میں جاؤ 738 00:43:34,310 --> 00:43:37,950 یا ایک چوک میں دوسری جگہوں پر ہے کہ پارٹی کی طرف سے ایک جوڑے کو اے ٹی ایمز کی طرف ہے، 739 00:43:37,950 --> 00:43:41,200 اور کسی نہ کسی طرح آپ کو سوچا کہ کس طرح ایک ATM کارڈ کی نقل - کہ تمام مشکل نہیں ہے. 740 00:43:41,200 --> 00:43:42,730 یہ صرف ایک مقناطیسی پٹی ہے. 741 00:43:42,730 --> 00:43:45,180 اور اس وجہ سے کہ آپ کیا کرنے کی کوشش کرنا چاہتے ہیں اس کھیل کھیلتے ہیں 742 00:43:45,180 --> 00:43:49,060 جس سے آپ نے 1 مشین میں 1 کارڈ ڈال دوسری مشین میں ایک اور کارڈ 743 00:43:49,060 --> 00:43:51,980 اور آپ کو بنیادی طور پر پیسے ایک ساتھ واپس لینے کی کوشش کرنا چاہتے ہیں، 744 00:43:51,980 --> 00:43:54,930 کیونکہ یہ تصور کریں کہ کہانی مندرجہ ذیل جاتا ہے. 745 00:43:54,930 --> 00:43:57,350 بائیں پر مشین سے آپ کے کارڈ اور پن لیتا ہے، 746 00:43:57,350 --> 00:44:00,240 اور پھر آپ کا کہنا ہے کہ، "مجھے 100 ڈالر دے دو." 747 00:44:00,240 --> 00:44:04,790 ATM نے سب سے پہلے اس کی ڈیٹا بیس یا اس کے مساوی پر منتخب کیا پروگرام ہے - 748 00:44:04,790 --> 00:44:10,780 جو بھی ڈیٹا بیس کا استعمال کرتے ہوئے - دیکھ کر اس صارف کو اس کا یا اس کے اکاؤنٹ میں کم از کم 100 ڈالر کی ہے؟ 749 00:44:10,780 --> 00:44:16,180 اگر ایسا ہے تو، تو باہر 100 ڈالر تھوکنے اور ان کی میزان سے 100 ڈالر منہا. 750 00:44:16,180 --> 00:44:20,470 لیکن کورس کے اگر ایک سے زیادہ مشینیں یہاں ہے یا معائنہ کرنے کے ایک سے زیادہ طریقے 751 00:44:20,470 --> 00:44:23,560 اس دنیا کی حالت، بینک والٹ دیکھ، کتنا پیسہ ہے، 752 00:44:23,560 --> 00:44:26,780 بائیں طرف دیے گئے پر مشین میں موقع کی طرف سے صرف یہ ہے کہ فرض اور دائیں 753 00:44:26,780 --> 00:44:30,140 دونوں وقت میں تقریبا اسی وقت اس سوال پوچھتے ہیں. 754 00:44:30,140 --> 00:44:34,160 >> اور یہ ضرور ہو سکتا ہے. اے ٹی ایمز کمپیوٹر ان دنوں ہیں. 755 00:44:34,160 --> 00:44:37,670 لہذا اگر بائیں جانب مشین کا کہنا ہے کہ، "جی ہاں، آپ کم از کم 100 ڈالر ہے،" 756 00:44:37,670 --> 00:44:42,150 دوران دائیں طرف مشین کا کہنا ہے کہ، "جی ہاں، آپ کم از کم 100 ڈالر ہے، 757 00:44:42,150 --> 00:44:47,420 تو ان میں سے دونوں کو ان کے پروگراموں کو ختم کرنے کے لئے کارروائی اور اصل میں 100 ڈالر تھوکنے 758 00:44:47,420 --> 00:44:50,820 اور، کا کہنا ہے کہ "پہلے آپ 200 ڈالر تھا." 759 00:44:50,820 --> 00:44:54,890 "مجھے اب 100 ڈالر کے اکاؤنٹ میں چھوڑ متغیر کو اپ ڈیٹ کریں." 760 00:44:54,890 --> 00:44:58,780 لیکن اگر ان میں سے دونوں کو آپ کے اکاؤنٹ کے میزان کی جانچ پڑتال کی ہے اور پتہ چلا ہے کہ یہ 200 ڈالر 761 00:44:58,780 --> 00:45:02,000 100 - اور ان میں سے دونوں تو ریاضی اور 200 کا کہنا ہے کہ 762 00:45:02,000 --> 00:45:06,990 مشینیں ممکنہ طور پر ہر ایک مشین میں دو 100 ڈالر کے بل کو تھوکنے 763 00:45:06,990 --> 00:45:11,360 لیکن وہ صرف اپنے رقم کے اکاؤنٹ کے میزان کو اپ ڈیٹ کر دیا ہے 100 ڈالر ہے. 764 00:45:11,360 --> 00:45:15,130 دوسرے الفاظ میں، آپ کو نکال لیا $ 200 ہے، بلکہ اس لئے کہ انہوں نے دنیا کی حالت کا معائنہ کیا 765 00:45:15,130 --> 00:45:18,840 ایک ہی وقت میں اور اس کے بعد کہ قیمت کی بنیاد پر فیصلہ کیا، 766 00:45:18,840 --> 00:45:21,930 وہ ریاضی کے آخر میں صحیح طریقے سے نہیں ہو سکتا ہے. 767 00:45:21,930 --> 00:45:25,520 تو ایک بینک کی صورت حال میں بھی تم سچ میں طالابندی کے کچھ قسم ہے کرنا چاہتے ہیں 768 00:45:25,520 --> 00:45:28,450 تاکہ جیسے ہی تم نے کچھ متغیر کی حالت کی جانچ کیا ہے 769 00:45:28,450 --> 00:45:31,220 کہ آپ کے اکاؤنٹ کے میزان کی طرح بہت ضروری ہے، 770 00:45:31,220 --> 00:45:36,070 دیتے نہیں کسی اور کو اس کی بنیاد پر فیصلے جب تک آپ اپنی بات کر کیا کر رہے ہیں،، 771 00:45:36,070 --> 00:45:38,920 آپ اس معاملے میں جہاں بائیں طرف کے ATM ہے. 772 00:45:38,920 --> 00:45:41,160 باقی سب بند کر دو. 773 00:45:41,160 --> 00:45:44,650 آپ کو مختلف طریقوں میں سے ایک جوڑے میں اس سلسلے میں اصل میں حاصل کر سکتے ہیں. 774 00:45:44,650 --> 00:45:48,660 >> SQL کے ایس کیو ایل میں آسان طریقہ ایک لائن ہے کہ ہم نے تمہیں دیا تھا ہے 775 00:45:48,660 --> 00:45:52,030 مسئلہ سیٹ کی تفصیلات جو کہ بالکل اس طرح لگ رہا ہے. 776 00:45:52,030 --> 00:45:57,420 جو کچھ بھی کہتے ہیں - - ایک کی شناخت، ایک علامت، اور ایک حصہ، حصص کی ایک بڑی تعداد، ٹیبل میں داخل 777 00:45:57,420 --> 00:45:59,660 مندرجہ ذیل اقدار، مثال کے طور پر. 778 00:45:59,660 --> 00:46:03,370 اگر آپ نے ابھی تک رپورٹ نہیں پڑھی ہے، یہ شامل کہ آپ کس طرح کے بارے میں کیا ہو مثال کے طور پر ہے 779 00:46:03,370 --> 00:46:07,340 صدر Skroob کے لئے اس پینی اسٹاک کی 10 حصص خریدنے 780 00:46:07,340 --> 00:46:10,340 جس کا صارف ID نمبر 7 پر ہوتا ہے؟ 781 00:46:10,340 --> 00:46:14,070 اس کا کہنا ہے کہ میز مندرجہ ذیل کی شناخت، سنہرے بالوں والی، اور حصص کی تعداد میں ڈالیں 782 00:46:14,070 --> 00:46:18,200 7، 'DVN.V'، اور 10. 783 00:46:18,200 --> 00:46:21,510 لیکن - لیکن، لیکن، لیکن - دوسری لائن ضروری ہے. 784 00:46:21,510 --> 00:46:26,310 = مصنوعی چابی اپ ڈیٹ حصص حصص + اقدار (حصص). 785 00:46:26,310 --> 00:46:28,350 تو مکمل طور پر پہلی نظر میں خفیہ رہے ہیں. 786 00:46:28,350 --> 00:46:31,990 لیکن حقیقت یہ ہے کہ اس SQL استفسار، اگرچہ یہ 2 لائنوں پر wraps، 787 00:46:31,990 --> 00:46:35,920 1 طویل استفسار ہے، اس کا مطلب یہ ہے کہ یہ جوہری ہے 788 00:46:35,920 --> 00:46:41,000 احساس ہے کہ یا تو یہ استفسار سب یا نہیں رکھا جائے گا پھانسی بالکل. 789 00:46:41,000 --> 00:46:45,100 اور ایس کیو ایل کی تعریف کی طرف سے، یہ ہے کہ وہ کس طرح اس کے سوال کو نافذ کیا. 790 00:46:45,100 --> 00:46:51,010 یہ تمام میں ایک بار یا نہیں پھانسی کی ضمانت دی دستی میں تعریف کی طرف سے ہے. 791 00:46:51,010 --> 00:46:54,020 اس کے لئے حوصلہ افزائی کے طور پر مندرجہ ذیل ہے. 792 00:46:54,020 --> 00:46:58,540 اگر آپ کو اس کیس میں اسٹاک کی 10 حصص خریدنے کی کوشش کر رہے ہیں، 793 00:46:58,540 --> 00:47:02,260 یہ دودھ کے طور پر ایک ہی کہانی کی طرح ہے، ATM کے طور پر ایک ہی کہانی کی طرح ہے. 794 00:47:02,260 --> 00:47:04,970 >> اگر تم غلطی یہ نحو نہیں استعمال کرتے ہوئے 795 00:47:04,970 --> 00:47:09,610 بلکہ اس کی بجائے ڈیٹا بیس سے منتخب پینی اسٹاک کتنے شیئروں کو دیکھنے کے لئے 796 00:47:09,610 --> 00:47:13,750 کیا صدر Skroob ہے، اور لگتا ہے کہ وہ 10 حصص ہے، 797 00:47:13,750 --> 00:47:19,330 اور پھر بعد میں کچھ تقسیم دوسرا آپ کے پاس تو ایک اپ ڈیٹ کے بیان کرتے ہیں، 798 00:47:19,330 --> 00:47:24,810 جو SQL میں ایک بیان میں کہا ہے جو یہ کہتا ہے کہ آگے بڑھیں اور 10 مزید حصص شامل ہے 799 00:47:24,810 --> 00:47:28,700 تاکہ ان کی موجودہ 10 سے مثالی طور پر کل 20 ہے، 800 00:47:28,700 --> 00:47:33,490 مسئلہ کیونکہ آج کے ڈیٹا بیس کے نظام میں اور اس وجہ سے ہے آج کے کمپیوٹر میں 801 00:47:33,490 --> 00:47:35,990 آپ ایک سے زیادہ پروسیسرز، ایک سے زیادہ cores ہے - 802 00:47:35,990 --> 00:47:38,920 دوسرے لفظوں میں، کمپیوٹر لفظی ایک ہی بار میں کیا جا سکتا ہے ایک سے زیادہ چیزوں کو کر رہے - 803 00:47:38,920 --> 00:47:44,270 وہاں کوئی ضمانت نہیں ہے کہ آپ کو منتخب کریں اور اس صورت میں آپ کی تازہ کاری 804 00:47:44,270 --> 00:47:46,150 واپس واپس ہونے جا رہا ہے. 805 00:47:46,150 --> 00:47:49,140 ایک بری منظر نامے تو ہو گا آپ نے منتخب کیا 806 00:47:49,140 --> 00:47:51,670 Skroob کس طرح اس پینی اسٹاک کی کئی حصص ہے، 807 00:47:51,670 --> 00:47:54,710 اور پھر صرف موقع کی طرف سے ایک اور ڈیٹا بیس کی کیوری کو پھانسی دے دی ہے - 808 00:47:54,710 --> 00:47:57,740 شاید کسی دوسرے براؤزر ونڈو میں اس Skroob 10 حصص خریدنے کی کوشش کر رہے 809 00:47:57,740 --> 00:48:00,700 ایک دوسرے ونڈو میں مجموعی طور پر، بہت ATM کی طرح - 810 00:48:00,700 --> 00:48:05,410 فرض ہے اور یہ کہ ایک دوسرے سوال کو منتخب کریں اور اپ ڈیٹ کے درمیان میں ہو جاتا ہے. 811 00:48:05,410 --> 00:48:10,210 یہ کیس ہو سکتا ہے کہ اب Skroob شیئروں کی تعداد کچھ کھو دیتا ہے 812 00:48:10,210 --> 00:48:14,340 کیونکہ کسی دوسرے عمل اس دنیا کی حالت کا معائنہ کر رہا ہے، 813 00:48:14,340 --> 00:48:17,800 یا وہ زیادہ حصص اس سے ہونا چاہئے ملتا ہے. 814 00:48:17,800 --> 00:48:23,250 ہم ان مخصوص کہانی لائنوں بالکل کیا ہو گا تفصیلات میں نہیں جائیں گے، 815 00:48:23,250 --> 00:48:28,380 لیکن بات یہ ہے کہ اگر آپ کو ایک متغیر کی قدر اور چیک کرنے کے لیے اس کے بعد کوئی فیصلہ کرنے میں ہے، 816 00:48:28,380 --> 00:48:32,500 اگر کسی اور کو ان 2 بیانات کے درمیان میں کچھ کرنے کے خطرہ ہے، 817 00:48:32,500 --> 00:48:36,220 کے طور پر نظام multicore میں multiprocessor نظام میں ہو، کر سکتے ہیں، 818 00:48:36,220 --> 00:48:41,220 ایک بار میں ایک سے زیادہ کام کرنے کی صلاحیت کے ساتھ کمپیوٹر بری چیزیں ہو سکتا ہے، 819 00:48:41,220 --> 00:48:44,530 جیسے بینک اکاؤنٹس کو غلط طریقے سے ڈیبٹ کیا جا رہا ہے، دو بار زیادہ سے زیادہ دودھ خرید، 820 00:48:44,530 --> 00:48:46,730 یا حصص کی اس معاملے میں غلط نمبر. 821 00:48:46,730 --> 00:48:48,370 لیکن وہاں ایک آسان طریقہ ہے اس کے بارے میں سوچنا ہے. 822 00:48:48,370 --> 00:48:53,290 >> یہ پتہ چلا ہے کہ SQL بھی حمایت کرتا ہے، اگر آپ کو آپ کی ٹیبل کو درست طریقے سے ترتیب دیں، 823 00:48:53,290 --> 00:48:56,920 کچھ کہا جاتا لین دین میں جو بحث اصل میں بھی آسان ہے سمجھنے کی 824 00:48:56,920 --> 00:49:00,650 اس سے، لیکن یہ ایک 1 لائنر نہیں ہے، لہذا یہ اصل میں تھوڑا سا زیادہ ملوث ہے. 825 00:49:00,650 --> 00:49:04,960 لفظی SQL میں ایک بیان بلایا START ٹرانزیکشن ہے. 826 00:49:04,960 --> 00:49:08,300 جیسا کہ، اپ ڈیٹ کو منتخب کریں، INSERT کریں، خارج کر دیں، اور شمولیت ہے اور دوسروں کے ایک گروپ ہے، 827 00:49:08,300 --> 00:49:10,970 START ٹرانزیکشن کی طرح مطلوبہ الفاظ ہیں. 828 00:49:10,970 --> 00:49:13,560 اور کیا اس وقت تم 7 pset کے سیاق و سباق میں کیا - 829 00:49:13,560 --> 00:49:17,270 آپ 7 pset کے لئے اس کی ضرورت نہیں ہے، یہ واضح طور پر ضروری نہیں کے طور پر disclaimed ہے، 830 00:49:17,270 --> 00:49:18,830 لیکن یہ آخری منصوبوں کے لئے مفید ہو سکتے ہیں - 831 00:49:18,830 --> 00:49:22,820 اگر آپ کو شروع کے لین دین کی ایک سوال اور اس کے بعد ایک دوسرے سوال کے کہتے ہیں 832 00:49:22,820 --> 00:49:25,620 اور تو ایک دوسرے سوال کے اور پھر دوسرے، دوسرے اور دوسرے 833 00:49:25,620 --> 00:49:31,860 ان سوالات کو اصل میں پھانسی نہیں رکھا جائے گا جب تک کہ آپ کو فون SQL بیان کا ارتکاب، 834 00:49:31,860 --> 00:49:37,220 کس موڑ پر، چاہے وہ 2 بیانات یا 20 کے بیانات، وہ سب کے سب ایک ہی بار میں رکھا جائے گا پھانسی، 835 00:49:37,220 --> 00:49:42,770 جس کا مطلب ہے کہ کوئی نہیں بہت زیادہ دودھ یا بہت زیادہ پیسہ ڈیبٹ اتفاقی طور پر خرید سکتے ہیں 836 00:49:42,770 --> 00:49:46,340 یا بہت سے حصص خریدنے کے اپنے تمام سوالات کے وجہ سے قتل 837 00:49:46,340 --> 00:49:48,410 واپس واپس، واپس واپس. 838 00:49:48,410 --> 00:49:51,580 اور یہ سپر ضروری ہے، خاص طور پر جب آپ اس طرح کچھ کر رہے ہیں. 839 00:49:51,580 --> 00:49:54,900 یہ ایک صوابدیدی مثال کے طور پر ہے جو یہ کہتا ہے کہ لشکر بینک اکاؤنٹ کو اپ ڈیٹ کریں 840 00:49:54,900 --> 00:50:00,200 1000 ڈالر جہاں اکاؤنٹ نمبر 2 ہے - توازن کے برابر توازن قائم کرنے کی طرف سے. 841 00:50:00,200 --> 00:50:04,260 اور پھر دوسری بیان اب کہ 1000 ڈالر جمع 842 00:50:04,260 --> 00:50:07,310 میں کسی اور بینک اکاؤنٹ اکاؤنٹ جن کی تعداد 1 ہے ہے. 843 00:50:07,310 --> 00:50:10,400 >> دوسرے الفاظ میں، یہ جہاں آپ کو اس بات کا یقین کرنا چاہتے ہیں کی ایک بہترین مثال ہے 844 00:50:10,400 --> 00:50:13,590 کہ تمام ان دونوں بیانات یا نہیں ہو 845 00:50:13,590 --> 00:50:15,450 کیونکہ دوسری صورت میں کسٹمر کو خراب کرنے کے لئے کی جا رہی ہے 846 00:50:15,450 --> 00:50:17,670 اور آپ کو ان کے پیسے لے لو اور اسے جمع نہیں دوسری جگہوں پر جا رہے ہیں، 847 00:50:17,670 --> 00:50:20,470 یا بینک کو خراب کرنے کے لئے جا رہا ہے تم نے پیسے کہاں جمع کرنے جا رہے ہیں 848 00:50:20,470 --> 00:50:23,140 لیکن اس صارف کے اکاؤنٹ سے اصل میں نہیں منہا. 849 00:50:23,140 --> 00:50:25,810 تو کیا تم ان دونوں کو ساتھ پھانسی کرنا چاہتے ہیں. 850 00:50:25,810 --> 00:50:29,140 اس طرح دنیا لین دین میں داخل کرتی ہے. 851 00:50:29,140 --> 00:50:31,360 تو وہ آپ کے دماغ کی پشت میں رکھنے کے لئے کچھ ہے، 852 00:50:31,360 --> 00:50:34,710 ، صرف ایک حتمی منصوبے کے مقاصد کے لئے بہت زیادہ نہیں 853 00:50:34,710 --> 00:50:36,700 لیکن اگر آپ اپنی حتمی منصوبہ کو کہیں لے جانا چاہتا ہوں، 854 00:50:36,700 --> 00:50:39,040 اگر آپ کو اس کے ارد گرد کچھ کمپنی شروع کرنا چاہتے ہیں، 855 00:50:39,040 --> 00:50:41,270 اگر آپ کو کیمپس کچھ طالب علم گروپ کے مسئلہ کو حل کرنا چاہتے ہیں 856 00:50:41,270 --> 00:50:45,210 اور اصل میں ایک زندہ، فعال ویب سائٹ ہے، یہ ٹھیک ٹھیک کیڑے پیدا کر سکتے ہیں کی طرح ہیں 857 00:50:45,210 --> 00:50:49,480 اگر آپ کے ذریعے کافی نہیں سوچتے کیا ہو سکتا ہے اگر 2 افراد 858 00:50:49,480 --> 00:50:54,190 وقت میں لفظی ایک ہی لمحے میں آپ کی ویب سائٹ تک رسائی حاصل کرنے کی کوشش کر رہے 859 00:50:54,190 --> 00:50:56,890 ان کے سوالات ورنہ جس interwoven ہو سکتی ہے. 860 00:50:58,840 --> 00:51:01,420 >> کچھ جاوا سکرپٹ، اس جھلکی کے لئے تیار ہیں؟ 861 00:51:01,420 --> 00:51:04,320 سمسٹر کے لئے یہ ہماری آخری زبان ہے. ٹھیک ہے. 862 00:51:04,320 --> 00:51:09,940 شکر ہے، جاوا سکرپٹ بہت، بہت، بہت 2 زبانوں، سی اور پی ایچ پی کی طرح لگتا ہے، 863 00:51:09,940 --> 00:51:11,140 ہم نے اس طرح دور کیا ہے. 864 00:51:11,140 --> 00:51:14,340 7 pset میں کوئی جاوا اسکرپٹ ہے، لیکن یہ ایک ناقابل یقین حد تک مفید آلہ ہے 865 00:51:14,340 --> 00:51:18,840 ویب کی بنیاد پر فائنل منصوبوں کر رہے یا واقعی صرف ویب پروگرامنگ عام طور پر جب آتا ہے. 866 00:51:18,840 --> 00:51:20,950 کہا جاتا DOM کچھ تو ایک فوری جائزہ. 867 00:51:20,950 --> 00:51:23,600 یہ ایک سپر آسان ویب صفحہ ہے جو واقعی صرف کا کہنا ہے کہ ہیلو دنیا ہے 868 00:51:23,600 --> 00:51:25,970 دونوں کے عنوان میں اور جسم میں. 869 00:51:25,970 --> 00:51:29,270 کے طور پر پوٹ کاری دیا گیا ہے، کچھ وقت کے لئے تجویز 870 00:51:29,270 --> 00:51:31,380 واقعی ویب صفحات پر ایک درجہ واری ہے. 871 00:51:31,380 --> 00:51:34,220 میں ایک درخت کے طور پر HTML کے اس ایک ہی ٹکڑا اپنی طرف متوجہ کر سکتے ہیں، 872 00:51:34,220 --> 00:51:37,470 ڈیٹا ڈھانچے C میں ہماری بات چیت پر واپس سوچ، کے طور پر مندرجہ ذیل ہے. 873 00:51:37,470 --> 00:51:40,710 میں کچھ خصوصی طور پر جڑ سے ملاقات کی دستاویز نوڈ نوڈ ہے، 874 00:51:40,710 --> 00:51:43,650 اور ہم صرف ایک لمحے میں جاوا اسکرپٹ میں اس کے مطابق دیکھیں گے. 875 00:51:43,650 --> 00:51:48,330 اس کیس میں پہلے بچے اور اس کی اکلوتی اولاد HTML ٹیگ ہے. 876 00:51:48,330 --> 00:51:49,880 doctype کی کوئی براہ راست تعریفیں نہیں ہے. 877 00:51:49,880 --> 00:51:53,170 یہ ایک خاص بات ہے، ہم یہ صرف جب وہ اس DOM آتا ہے کو نظر انداز کرنا چاہئے، 878 00:51:53,170 --> 00:51:55,810 اس مسودہ کو آبجیکٹ ماڈل درخت. 879 00:51:55,810 --> 00:51:59,530 کہ نوٹس HTML ٹیگ، جس میں ایک مستطیل کے طور پر منمانے دکھائے جانے والے تاثر کیا ہے، 880 00:51:59,530 --> 00:52:02,890 سر اور جسم: 2 بچے ہیں. 881 00:52:02,890 --> 00:52:04,840 >> اور اسی طرح وہ rectangles کے طور پر تیار کر رہے ہیں. 882 00:52:04,840 --> 00:52:08,970 یہ بامعنی pictorially یہ ہے کہ سر جسم کے بائیں ہے. 883 00:52:08,970 --> 00:52:11,960 مطلب یہ ہے کہ سر درخت میں پہلے آتا ہے. 884 00:52:11,960 --> 00:52:14,910 تو وہاں اصل میں ایک درخت کا حکم جب تم نے اسے اس طرح سے اپنی طرف متوجہ، 885 00:52:14,910 --> 00:52:17,460 اگرچہ شکل اور whatnot صوابدیدی ہیں. 886 00:52:17,460 --> 00:52:20,360 دوران ہیڈ نامی ایک واحد عنوان بچہ ہے، 887 00:52:20,360 --> 00:52:25,170 اور عنوان اصل میں اس کے خود کے بچے، جس میں "ہیلو، دنیا" ہے، 888 00:52:25,170 --> 00:52:32,210 جو میں نے جان بوجھ کر ایک یہاں اوول مستطیل سے تھوڑا سا مختلف ہے کے طور پر متوجہ کیا. 889 00:52:32,210 --> 00:52:37,420 یہ rectangles عناصر ہیں، جبکہ ہیلو، دنیا واقعی ایک متن نوڈ ہے. 890 00:52:37,420 --> 00:52:39,850 تو اس درخت میں ایک نوڈ ہے، لیکن یہ نوڈ کی ایک مختلف قسم کی ہے 891 00:52:39,850 --> 00:52:41,730 تو میں نے اسے منمانے مختلف بنائے. 892 00:52:41,730 --> 00:52:45,000 اسی طرح جسم ایک بچے کہا جاتا ہیلو، ساتھ ساتھ دنیا ہے، 893 00:52:45,000 --> 00:52:47,910 اتنی مختلف نوڈ اگرچہ وہ اتفاق وہی متن ہے، 894 00:52:47,910 --> 00:52:52,100 لیکن میں نے اسے تیار کی ایک ہی شکل کا استعمال کرتے ہوئے ہے. تو کسے پرواہ ہے؟ 895 00:52:52,100 --> 00:52:56,820 ٹھیک ہے، کیا HTML کے بارے میں اچھی بات ہے وہ یہ ہے کہ اس درجہ بندی فطرت ہے. 896 00:52:56,820 --> 00:53:01,010 اور جاوا اسکرپٹ اور خاص طور پر لائبریریوں جو آزادانہ طور پر دستیاب ہیں کے بارے میں کیا اچھا لگتا ہے 897 00:53:01,010 --> 00:53:07,120 اور jQuery طرح مقبول، تم درخت اتنی حیرت انگیز آسان ڈھانچے پر کر سکتے ہیں. 898 00:53:07,120 --> 00:53:11,790 چیزیں ہم نے اشارہ اور traversing کے درخت کے ساتھ C میں کیا تھا کوئی اور نوڈس پر recursing 899 00:53:11,790 --> 00:53:15,300 بائیں دائیں بچے بچے، اچانک ہم الگ الگ کر سکتے ہیں لے کے لئے حاصل کی جاچکی 900 00:53:15,300 --> 00:53:19,450 حیرت انگیز روشن ہے، اگر نراشا تھوڑا سا نہیں کے طور پر 901 00:53:19,450 --> 00:53:22,470 لیکن پروگرامنگ کے بارے میں جانے کے لئے کے لئے ایک مؤثر طریقہ تقریبا نہیں. 902 00:53:22,470 --> 00:53:24,470 اور اس طرح ان اعلی جاوا اسکرپٹ جیسے سطح زبانوں کے ساتھ 903 00:53:24,470 --> 00:53:28,340 ہم اس پیڑ سے بہت زیادہ intuitively پر کرنے کے قابل ہو جائے گا. 904 00:53:28,340 --> 00:53:30,430 >> اور یقینا نحو بہت واقف ہو جا رہا ہے. 905 00:53:30,430 --> 00:53:32,950 اگر آپ کو جاوا سکرپٹ کے پہلے کبھی نہیں دیکھا، یہ ایک بہت اچھا حوالہ ہے 906 00:53:32,950 --> 00:53:35,910 موزیلا لوگوں سے لوگ ہیں جو فائر فاکس بنا، 907 00:53:35,910 --> 00:53:38,370 تو ہے کہ آپ کی سہولت میں براؤز کرنے کے لئے آزاد محسوس کرتے ہیں. 908 00:53:38,370 --> 00:53:41,590 کیا آپ کو تلاش کر لیں گے - اور یہ سلائڈ دوسرے دن جو ہم کرتے تھے جیسا ہے - 909 00:53:41,590 --> 00:53:44,030 اسی طرح، مرکزی گئی ہے. 910 00:53:44,030 --> 00:53:47,010 تو جب آپ کو جاوا سکرپٹ میں ایک پروگرام لکھتے ہیں، کوئی اہم تقریب ہے. 911 00:53:47,010 --> 00:53:48,690 تم صرف کوڈ لکھنا شروع کریں. 912 00:53:48,690 --> 00:53:51,660 لیکن جاوا سکرپٹ اور سی اور پی ایچ پی کے درمیان ایک اہم فرق 913 00:53:51,660 --> 00:53:55,890 یہ ہے کہ جبکہ سی اور پی ایچ پی کی اس طرح دور کیا گیا ہے سرور سائیڈ کو پھانسی 914 00:53:55,890 --> 00:53:59,180 اس معاملے میں آلات کی طرف سے یا اس سے زیادہ عام طور پر ایک سرور کی طرف سے 915 00:53:59,180 --> 00:54:04,270 ڈیزائن کرتے ہوئے JavaScript کو عام طور پر ایک براؤزر کی طرف سے پھانسی ہے. 916 00:54:04,270 --> 00:54:08,440 دوسرے الفاظ میں، آپ کو جاوا سکرپٹ کے کوڈ لکھنے، جیسا کہ ہم ہیں ہو سکتا ہے، 917 00:54:08,440 --> 00:54:13,080 آلے میں ایک سرور، لیکن آپ یہ آپ کے HTML کے درمیان آپ کی سی ایس ایس کے درمیان میں شامل ہیں، پر، 918 00:54:13,080 --> 00:54:16,100 آپ کے GIFs اور آپ کے PNGs اور اپنے JPEGs میں 919 00:54:16,100 --> 00:54:19,170 تاکہ جب صارف آپکے ویب صفحے کا دورہ کرتا ہے، اگر آپ کو جاوا سکرپٹ کا استعمال کر رہے ہیں، 920 00:54:19,170 --> 00:54:21,770 کہ جاوا سکرپٹ کے کوڈ کو سرور سے براؤزر کے لئے آتا ہے، 921 00:54:21,770 --> 00:54:24,540 اور یہ براؤزر ہے کہ اصل میں یہ executes ہے. 922 00:54:24,540 --> 00:54:27,960 تو یہ کے بوددک املاک بھی کے لئے پر بامعنی منفی اثرات مرتب ہوں ہے. 923 00:54:27,960 --> 00:54:32,600 یہ حماقت کی طرح ہے یہاں تک کہ آپ اپنے آئی پی کی حفاظت کے بارے میں لگتا ہے کہ جب یہ جاوا سکرپٹ کے کوڈ کو آتا ہے 924 00:54:32,600 --> 00:54:37,560 کیونکہ یہ عام طور پر زبان کی نوعیت کی طرف سے پھانسی براؤزر کی طرف ہو جاتا ہے. 925 00:54:37,560 --> 00:54:40,360 >> تم obfuscate، کر سکتے ہیں جس کا مطلب ہے کہ آپ اسے پاگل اور بدسورت دیکھ سکتے ہیں 926 00:54:40,360 --> 00:54:45,400 کوئی وائٹ کے ساتھ، خوفناک متغیر کے نام، اس مشکل کے لئے لوگوں کو اپنی IP چوری 927 00:54:45,400 --> 00:54:48,120 لیکن چابی ہے کہ یہ براؤزر کی طرف سے پھانسی ہے. 928 00:54:48,120 --> 00:54:51,790 اگرچہ باجو میں جاوا سکرپٹ کے استعمال کیا جا سکتا ہے ایک سرور سائیڈ کے طور پر، 929 00:54:51,790 --> 00:54:54,480 سب سے زیادہ عام استعمال کے معاملہ ابھی براؤزر پر اب بھی ہے. 930 00:54:54,480 --> 00:54:59,800 اور یہاں ہے جو اس کی طرح لگتا ہے. یہ ایک ہے کہ اگر اور صرف پی ایچ پی کی طرح اگر اور صرف C کی طرح تعمیر،. 931 00:54:59,800 --> 00:55:02,420 یہاں ایک بولین اظہار ہے جب آپ کو "یا" 2 چیزیں ایک ساتھ. 932 00:55:02,420 --> 00:55:04,330 یہاں ہے جب آپ "اور" 2 چیزیں ایک ساتھ مل کر. 933 00:55:04,330 --> 00:55:08,300 یہاں ایک سوئچ بیان ہے، جو کہ پی ایچ پی کی طرح ہے 934 00:55:08,300 --> 00:55:10,810 اقدار کی مختلف اقسام پر ہے کہ میں آپ کو تبدیل کر سکتے ہیں. 935 00:55:10,810 --> 00:55:15,180 Loops اسی طرح loops کے لئے یہاں ہے، جس سے جو ہم نے پہلے دیکھا ہے identically کا ڈھانچہ ہیں. 936 00:55:15,180 --> 00:55:18,110 اگرچہ loops، ہم loops جبکہ ملا ہے. 937 00:55:18,110 --> 00:55:20,290 متغیرات، کبھی تو تھوڑا سا مختلف ہے. 938 00:55:20,290 --> 00:55:24,560 آپ متغیر کا اعلان جیسے آپ کو پی ایچ پی اور سی کرتے ہیں، 939 00:55:24,560 --> 00:55:27,860 لیکن اسی طرح جاوا اسکرپٹ کا کمزور ٹائپ ہے. 940 00:55:27,860 --> 00:55:32,730 آپ int یا فلوٹ یا سٹرنگ یا عام طور پر اس طرح کچھ بھی وضاحت نہیں ہے. 941 00:55:32,730 --> 00:55:34,240 تم متغیر کی وضاحت کر سکتے ہیں. 942 00:55:34,240 --> 00:55:38,040 تم متغیر کی وضاحت کرنے کی ضرورت نہیں ہے، لیکن یہ اثر پڑتا ہے اگر آپ ایسا نہیں کرتے. 943 00:55:38,040 --> 00:55:42,000 عام طور پر اگر آپ متغیر ترک، آپ نے اتفاقی طور بجائے مقامی ایک عالمی متغیر تخلیق کرتے ہیں. 944 00:55:42,000 --> 00:55:46,420 تو آپ کے وزٹرز کا ریکارڈ رکھا تجویز ہے کہ آپ تقریبا ہمیشہ صرف متغیر کا کہنا ہے کہ اور پھر متغیر کے نام. 945 00:55:46,420 --> 00:55:48,740 یہ ایک قسم نہیں ہے، ویرئیےبل کے لئے متغیر ہے. 946 00:55:48,740 --> 00:55:52,930 یہ ایک مثال ہے، چاہے وہ 123 یا "ہیلو دنیا" ہے گی. 947 00:55:52,930 --> 00:55:58,910 Arrays موجودہ اور syntactically پی ایچ پی کی طرح ہوتے ہیں. 948 00:55:58,910 --> 00:56:03,690 میں متغیر کی تعداد کا کہنا ہے کہ اور پھر میں مربع بریکٹ پھر سے استعمال ایک متغیر کا اعلان کریں گے 949 00:56:03,690 --> 00:56:08,870 جس کی قسم کی صف ہے جو کہ اس میں خاص طور پر ان کی تعداد کوما کے ذریعے الگ ہے ہے. 950 00:56:08,870 --> 00:56:11,740 اور پھر آخر میں، یہ صرف ایک ہے جو واقعی بہت مختلف لگ رہا ہے ہے. 951 00:56:11,740 --> 00:56:16,700 یاد ہے کہ ہم پی ایچ پی میں ایک طالب علم کے لئے ایک ساہچری سرنی کو لاگو ہوتا 952 00:56:16,700 --> 00:56:20,220 Zamyla کی طرح ہے کہ اس طرح نظر آئے، جہاں متغیر طالب علم کہا جاتا ہے ہو سکتا ہے. 953 00:56:20,220 --> 00:56:23,370 مربع بریکٹ کا مطلب ہے کہ یہاں ایک صف آتا ہے. 954 00:56:23,370 --> 00:56:28,500 >> حقیقت یہ ہے کہ میں عددی سوچکانک لیکن ڈور کا استعمال نہیں کر رہا ہوں - شناخت، گھر، اور نام - 955 00:56:28,500 --> 00:56:30,990 کا مطلب یہ ہے کہ یہ ایک ساہچری سرنی ہے، 956 00:56:30,990 --> 00:56:34,490 اور یہ تیر علامت اور angled بریکٹ برابر 957 00:56:34,490 --> 00:56:37,310 قیمت کا مطلب یہ ہے کہ چابی "شناخت" ہے، 1؛ 958 00:56:37,310 --> 00:56:39,310 قدر کے بٹن کو "گھر" ہے، Winthrop ہاؤس ہے. 959 00:56:39,310 --> 00:56:41,800 قیمت کلید "کا نام" ہے، Zamyla چان ہے. 960 00:56:41,800 --> 00:56:47,110 تو اندر اس ساہچری سرنی، جن میں سے ہر ایک اس کی اپنی قدر ہے 3 چابیاں ہے. 961 00:56:47,110 --> 00:56:52,880 ہم اس pset 7، یا آپ میں جلد ہی جاوا اسکرپٹ اسی خیال میں، دیکھا ہے 962 00:56:52,880 --> 00:56:55,220 لیکن یہ اس طرح نظر آئے جا رہا ہے. 963 00:56:55,220 --> 00:57:00,070 تو متغیر طالب علم - ڈالر کی کوئی علامت اور قسم کا کوئی ذکر نہیں لیکن پھر بھی متغیر - 964 00:57:00,070 --> 00:57:05,860 برابر، اور پھر گھوبگھرالی منحنی خطوط وحدانی کی وجہ سے جاوا اسکرپٹ میں جب سے آپ کو ان کلیدی قدر جوڑوں کھول 965 00:57:05,860 --> 00:57:08,900 آپ اصل میں ملاقات کی کسی چیز کو کچھ کا استعمال کریں. 966 00:57:08,900 --> 00:57:13,490 اور تم میں سے وہ لوگ جو APCS لے یا کیا طرح جاوا سے چیزوں کو یاد کر سکتے ہیں 967 00:57:13,490 --> 00:57:15,140 یا اسی طرح کی زبانوں. 968 00:57:15,140 --> 00:57:17,880 جاوا سکرپٹ جاوا نہیں ہے، سب سے پہلے. 969 00:57:17,880 --> 00:57:21,600 یہ ایک جان بوجھ ڈیزائن فیصلہ سال پہلے کی بات ہے کچھ اور جو مقبول تھا دستک 970 00:57:21,600 --> 00:57:25,640 اس کا نام ہے، اگرچہ اس کا کوئی بنیادی خود جاوا تعلق نہیں ہے. 971 00:57:25,640 --> 00:57:31,490 جاوا اسکرپٹ اشیاء کی ہے، اور آپ ان گھوبگھرالی تسمہ سنکیتن کی راہ کی طرف سے تشکیل. 972 00:57:31,490 --> 00:57:36,710 جاوا اسکرپٹ میں آبجیکٹ بہت زیادہ پی ایچ پی میں ساہچری arrays کے برابر ہیں 973 00:57:36,710 --> 00:57:40,030 یہ ان کے اندر ذخیرہ کرنے کا اعداد و شمار کو کب آتا ہے. 974 00:57:40,030 --> 00:57:44,100 >> لیکن اس سے بھی زیادہ طاقتور جاوا اسکرپٹ میں بہت آسانی سے آپ کو افعال منسلک کر سکتے ہیں 975 00:57:44,100 --> 00:57:48,040 کے اندر کسی چیز کی، اور اگرچہ آپ کو دیگر زبانوں میں یہ کر سکتے ہیں، 976 00:57:48,040 --> 00:57:50,040 یہ بہت عام مثال ہے، ہم کے طور پر نظر آئے گا. 977 00:57:50,040 --> 00:57:54,380 مختصر میں، یہ اعتراض ایک طالب علم کی نمائندگی کرتا ہے، جو خاص طور پر Zamyla ہے، 978 00:57:54,380 --> 00:58:00,380 اور یہ اسی طرح conceptually ہے، صرف اس سے syntactically مختلف ہے. 979 00:58:00,380 --> 00:58:03,840 میں اصل میں ایک فائل میں جاوا سکرپٹ کا استعمال ہے. 980 00:58:03,840 --> 00:58:05,570 اس کا بدل جاتا ہے وہاں ایک سکرپٹ ٹیگ ہے. 981 00:58:05,570 --> 00:58:08,180 ہم نے ایک انداز ٹیگ کو دیکھا ہے اور ہم دوسرے HTML ٹیگ کو دیکھا ہے. 982 00:58:08,180 --> 00:58:11,510 سکرپٹ ٹیگ اصل میں کچھ جاوا سکرپٹ کے کوڈ پر مشتمل ہے. 983 00:58:11,510 --> 00:58:15,500 کے وزٹرز کا ریکارڈ رکھا جائے گا. میرے آلے میں جہاں ہم کچھ منبع کوڈ پہلے بنایا ہے. 984 00:58:15,500 --> 00:58:18,700 میں اسے شائع نہیں کیا ابھی تک ویب سائٹ پر، لیکن مجھے کلاس کے بعد کروں گا. 985 00:58:18,700 --> 00:58:21,770 چلو، ایک اس کو کھولنے، blink.html. 986 00:58:21,770 --> 00:58:27,560 واپس 1990s میں، وہاں لفظی نامی ایک HTML جھپک ٹیگ ٹیگ 987 00:58:27,560 --> 00:58:30,340 اور یہ انٹرنیٹ پر سب سے زیادہ wonderfully overused ٹیگ میں سے ایک تھا 988 00:58:30,340 --> 00:58:36,140 آپ جس 1990s کچھ انداز ویب صفحے کا دورہ اور متن دیکھ کر تم سے اس طرح چمکتا شروع ہوتا، 989 00:58:36,140 --> 00:58:39,810 مارکوئس ٹیگ کے نتائج، جو متن اس طرح جا رہا تھا. 990 00:58:39,810 --> 00:58:45,070 چند بار میں جہاں دنیا اصل میں ایک ویب کے معیار پر اتفاق کیا ہے میں سے ایک، 991 00:58:45,070 --> 00:58:48,250 بورڈ بھر میں ہر کسی کو جھپک ٹیگ کچھ سال پہلے مار ڈالا. 992 00:58:48,250 --> 00:58:52,860 لیکن ہم طاقت آپ کے ایک مظاہرے کے طور پر جاوا اسکرپٹ کے ساتھ اسے زندہ کر سکتے ہیں 993 00:58:52,860 --> 00:58:56,660 جب آپ ایک ویب کے صفحے کے کے اندر ایک پروگرام لکھ سکتے ہیں. 994 00:58:56,660 --> 00:59:00,240 پہلے ہم نئی چیزیں زائد اور پرانی صرف توجہ مرکوز ہے. 995 00:59:00,240 --> 00:59:01,780 >> اس مثال میں پرانی چیز ہے. 996 00:59:01,780 --> 00:59:06,350 میں ایک HTML ٹیگ سر ٹیگ اور ایک عنوان ٹیگ ہے. 997 00:59:06,350 --> 00:59:11,210 جو یاد اس کے بعد میں ایک div کے ساتھ یہاں ایک جسم کا ٹیگ ہے، صرف اس صفحے کے ایک آئتاکار ڈویژن ہے 998 00:59:11,210 --> 00:59:14,720 کہ میں "سلام" کا ایک منفرد منمانے ID دیا ہے، 999 00:59:14,720 --> 00:59:18,320 ابھی تو میں منفرد اس کا حوالہ دے کا ایک طریقہ ہے، کچھ بہت آسان متن کی ہے: 1000 00:59:18,320 --> 00:59:20,220 ہیلو، دنیا. 1001 00:59:20,220 --> 00:59:23,940 اب مجھے اس فائل کے سب سے اوپر تک سکرال کریں اور دیکھیں کہ کیا نیا ہے. 1002 00:59:23,940 --> 00:59:27,710 پہلی بات یہ ہے کہ نئے اوپر سکرپٹ ٹیگ ہے، 1003 00:59:27,710 --> 00:59:31,280 اور اندر میں سکرپٹ ٹیگ نوٹس کی ایک تقریب کا اعلان کر دیا ہے. 1004 00:59:31,280 --> 00:59:34,610 جاوا اسکرپٹ میں ایک تقریب، کافی پی ایچ پی کی طرح کا اعلان کرنے کے لئے، 1005 00:59:34,610 --> 00:59:37,930 آپ لفظی تقریب پھر تقریب کے نام، قوسین لکھنے، 1006 00:59:37,930 --> 00:59:40,400 کچھ دلائل اور ہو سکتا ہے اگر اس کے ذہن میں کوئی لیتا ہے. 1007 00:59:40,400 --> 00:59:43,510 پھر میں نے ہمیشہ کی طرح میری گھوبگھرالی تسمہ ہے، ہے اور اب ہم نے کچھ تھوڑا نیا کوڈ ہے، 1008 00:59:43,510 --> 00:59:45,230 لیکن دیکھتے ہیں کیا اس کا مطلب یہ ہے کہ. 1009 00:59:45,230 --> 00:59:48,670 متغیر div تو یہ صرف مجھے ایک متغیر نام نہاد div دے کا مطلب ہے. 1010 00:59:48,670 --> 00:59:50,530 میں اسے FOO فون کر سکتے ہیں، لیکن میں اسے div کہا کرنا چاہتا تھا 1011 00:59:50,530 --> 00:59:52,620 وجوہات کی بناء پر ہے جو کہ ایک سیکنڈ میں واضح ہو جائے گا کے لئے. 1012 00:59:52,620 --> 00:59:57,480 اس کے بعد یہ جاوا سکرپٹ میں بدل جاتا ہے - اور یہ جاوا سکرپٹ اپنے ویب کے صفحے میں سرایت کوڈ آن ہے - 1013 00:59:57,480 --> 01:00:01,760 کہا جاتا دستاویز قسم کی ایک خصوصی عالمی متغیر ہے. 1014 01:00:01,760 --> 01:00:04,780 جاوا سکرپٹ حقیقت میں ایک زبان شئی کو پر مبنی ہے. 1015 01:00:04,780 --> 01:00:07,230 ہم میں سے 50 تفصیل میں کیا اس کا مطلب نہیں کرے گا، 1016 01:00:07,230 --> 01:00:11,180 لیکن اب پتہ ہے کہ ایک اعتراض ایک struct کی طرح بہت زیادہ ہے. 1017 01:00:11,180 --> 01:00:14,740 جیسا کہ ہم جس طرح دیکھا تھا جب جلد سے جلد اس مسئلے کا ایک میں ڈوبتا ہے 1018 01:00:14,740 --> 01:00:17,150 جہاں ہم struct میں معلومات کا ایک بہت ڈال، 1019 01:00:17,150 --> 01:00:21,330 اسی طرح ایک خاص struct ہے جو براؤزر کے ساتھ آتا ہے دستاویز ہے، 1020 01:00:21,330 --> 01:00:24,810 کسی بھی ویب کے صفحے کے ساتھ آتا ہے. اس میں کچھ پیدا نہیں ہے. 1021 01:00:24,810 --> 01:00:28,210 ، تاہم، اس دستاویز کی ساخت کے اندر آپ کو نہ صرف ڈیٹا ہے 1022 01:00:28,210 --> 01:00:30,010 لیکن تم بھی کام کرتا ہے. 1023 01:00:30,010 --> 01:00:34,090 >> اور کسی بھی وقت آپ کو ایک ڈھانچے کے اندر اندر کسی چیز کی ایک تقریب ہے، 1024 01:00:34,090 --> 01:00:36,490 یہ ایک طریقہ کہا جاتا ہے. لیکن یہ ایک ہی بات ہے. 1025 01:00:36,490 --> 01:00:40,110 ایک طریقہ ایک تقریب ہے کہ صرف تو کچھ اور اندر ہوتا ہے. 1026 01:00:40,110 --> 01:00:42,990 تو اس کا مطلب یہ ہے کہ یہ خصوصی عالمی متغیر دستاویز کہا جاتا ہے 1027 01:00:42,990 --> 01:00:47,690 ایک تقریب getElementById کہ لفظی کہ اس کی ملاقات کی. 1028 01:00:47,690 --> 01:00:52,460 یہ آپ DOM سے ایک عنصر ہے، دستاویز آبجیکٹ ماڈل کا درخت ملے گا، 1029 01:00:52,460 --> 01:00:55,520 جن ID اس کیس کے سلام میں ہے. 1030 01:00:55,520 --> 01:00:59,200 دوسرے الفاظ میں، اس وقت ہم ڈیٹا ڈھانچے پر خرچ کھیل میں یہاں آتا ہے. 1031 01:00:59,200 --> 01:01:01,400 DOM کی یہ تصویر ہے جو ہم نے ایک لمحے پہلے تھا، 1032 01:01:01,400 --> 01:01:06,100 اگرچہ پروفائل تھوڑا مختلف ہے، اگر میں نے اس تصویر میں ایک div 1033 01:01:06,100 --> 01:01:11,180 کیا document.getElementById مجھ سے واپس کریں گے پوائنٹر مؤثر طریقے سے ہو گی 1034 01:01:11,180 --> 01:01:15,440 درخت، درخت میں مستطیل پر ایک حوالہ میں مستطیل. 1035 01:01:15,440 --> 01:01:18,410 تو یہی اصل میں ان کے افعال میں سے ایک پر کال کا مطلب ہے. 1036 01:01:18,410 --> 01:01:21,960 اس صورت میں دوبارہ یہ div ہے. یہ ایک جسم ہے یا ایک عنوان نہیں ہے. 1037 01:01:21,960 --> 01:01:26,480 تو چلو دیکھتے ہیں تو کیا میں اس div کے ساتھ کیا کیا اب جب کہ میں نے اسے نامی اس متغیر div کے اندر ہے. 1038 01:01:26,480 --> 01:01:32,580 یہ جاوا سکرپٹ کے ساتھ پتہ چلتا ہے آپ کو آپ کے صفحے کے CSS کو متحرک طور پر موافقت کرنے کی صلاحیت ہے. 1039 01:01:32,580 --> 01:01:39,060 اب تک، CSS ہم نے محدود پیمانے پر ہی سہی، کیا ہے، سب انداز صفات میں ہے، 1040 01:01:39,060 --> 01:01:41,730 یا کوئی اور جہاں ہم CSS ڈال دیا ہے؟ 1041 01:01:42,730 --> 01:01:45,810 بگڑ ایک میں ہے. فائل کے سب سے اوپر دیئے گئے ٹیگ انداز میں. 1042 01:01:45,810 --> 01:01:49,180 یا تیسرے نمبر پر رہا ہے؟ 1043 01:01:50,710 --> 01:01:54,590 >> کوئی بیرونی فائل، کچھ سی ایس ایس. 1044 01:01:54,590 --> 01:01:56,730 تو ان 3 مقامات پر ہم ابھی تک سی ایس ایس کیا ہے ہیں، 1045 01:01:56,730 --> 01:01:59,310 لیکن پکڑنے ہے ہم مشکل یہ سب کوڈت ہے. 1046 01:01:59,310 --> 01:02:04,060 تم نے فیصلہ کیا کے طور پر آپ کو 7 pset میں کبوتر، ہم نے فیصلہ کیا ہے اس سے پہلے تقریر ہمارے CSS کیا جائے گا. 1047 01:02:04,060 --> 01:02:07,380 لیکن اگر آپ اپنے CSS کو تبدیل کرنا چاہتے ہیں، آپ کہ اصل میں کیا کر سکتے ہیں 1048 01:02:07,380 --> 01:02:09,370 ایک بار آپ کو ایک حقیقی پروگرامنگ زبان ہے. 1049 01:02:09,370 --> 01:02:13,910 CSS، HTML - نہیں پروگرامنگ زبانوں. جاوا سکرپٹ ہے. 1050 01:02:13,910 --> 01:02:18,200 تو یہ پتہ چلتا ہے کہ جیسے ہی آپ کو درخت سے ان rectangles میں سے ایک ہے 1051 01:02:18,200 --> 01:02:23,050 DOM کہا جاتا ہے، وہ خود اس کے اندر کچھ ڈیٹا ہے. 1052 01:02:23,050 --> 01:02:27,820 تو div ہے کہ میں نے ابھی درخت سے پکڑا ہے جو ہم نے اس کے اندر ایک خاصیت کو فون کرتا ہوں 1053 01:02:27,820 --> 01:02:34,390 کہا جاتا ہے، سٹائل، اور انداز جائیداد خود کو نامی نمائش کو جائیداد ہے. 1054 01:02:34,390 --> 01:02:37,330 میں صرف ایک CSS صارف دستی دیکھ کر یہ پتہ چل جائے گی. 1055 01:02:37,330 --> 01:02:41,160 اس کا بدل جاتا ہے وہاں کی نمائش CSS جائیداد ہے کہ ہے کہ یہ کیا کہتے ہیں کہ نہیں ہے. 1056 01:02:41,160 --> 01:02:44,530 یہ نظر آتا ہے یا نہیں، نظر آتا ہے یا نہیں کچھ کرتا ہے. 1057 01:02:44,530 --> 01:02:46,810 اور کس طرح تم کرتے ہو کہ یہ ہے. 1058 01:02:46,810 --> 01:02:50,510 میں پروگرام کا سوال ہے کہ اس div کی مرئیت چھپا رہی ہے، 1059 01:02:50,510 --> 01:02:53,390 کیا میں اسے تبدیل کروں؟ نظر آتا ہے. 1060 01:02:53,390 --> 01:02:58,840 دوسری صورت میں اگر اس صفحے کی مرئیت نہیں پوشیدہ ہے، منطقی طور پر میں نے اسے مخفی کر سکتا ہوں. 1061 01:02:58,840 --> 01:03:04,070 مجھے کوئی اندازہ نہیں ہے کیوں یہ نظر آتا ہے اور پوشیدہ اور ظاہر نہ ہوں اور پوشیدہ ہے. 1062 01:03:04,070 --> 01:03:06,000 اس راستے میں ایک غریب ڈیزائن فیصلہ تھا. 1063 01:03:06,000 --> 01:03:09,530 لیکن وہ یقینا CSS میں مخالف ہیں: نظر آتا ہے اور پوشیدہ ہے. 1064 01:03:09,530 --> 01:03:15,520 یہ سب کچھ ہے اور اس کا مطلب یہ ہے میری فائل کی سی ایس ایس کو تبدیل اور، پر اور 1065 01:03:15,520 --> 01:03:16,870 اس مخصوص div کے لئے. 1066 01:03:16,870 --> 01:03:20,630 لیکن پھر یہ کہا جاتا جھپک ایک تقریب ہے. جھپک تقریب میں جب کہا جاتا ہے؟ 1067 01:03:20,630 --> 01:03:24,080 یہ پتہ چلا ہے کہ ایک خاص عالمی متغیر کہتے ہیں ونڈو ہے، 1068 01:03:24,080 --> 01:03:28,220 دستاویز کی روح میں اسی طرح کی ہے، لیکن جبکہ دستاویز آپ کے ویب کے صفحے سے مراد، 1069 01:03:28,220 --> 01:03:31,700 DOM درخت کی طرح، HTML آپ کو سرور سے بھیجا، 1070 01:03:31,700 --> 01:03:35,250 ونڈو سے مراد اس کے ارد گرد کروم، ایڈریس بار، عنوان بار، 1071 01:03:35,250 --> 01:03:37,880 اور ہے کہ آپ کے ویب کے صفحے کے ارد گرد چیزیں. 1072 01:03:37,880 --> 01:03:42,800 >> اور یہ پتہ چلا ہے کہ ونڈو اعتراض اس کی ایک خصوصی تقریب اندر بلایا setInterval ہے 1073 01:03:42,800 --> 01:03:44,360 ایسا کرتا ہے کہ وہ کیا کہتی ہے. 1074 01:03:44,360 --> 01:03:48,600 اس معاملے میں ہر 500 milliseconds - یہ ایک وقفہ ترتیب دے گا - 1075 01:03:48,600 --> 01:03:52,270 اور ایک اندازہ کیا ہر 500 milliseconds جا رہا ہے؟ 1076 01:03:52,270 --> 01:03:55,240 یہ اس تقریب کی جھپک پر عمل کرنے جا رہا ہے. 1077 01:03:55,240 --> 01:03:58,560 اور کیا اچھا یہاں ہے یہ ہے کہ ہم C کیا کر سکتے تھے اگرچہ ہم نے کبھی نہیں کیا. 1078 01:03:58,560 --> 01:04:01,580 C بلایا تقریب اشارہ کچھ جہاں آپ کے ارد گرد افعال کو منتقل کر سکتی ہیں ہے 1079 01:04:01,580 --> 01:04:03,140 دلائل کے طور پر. 1080 01:04:03,140 --> 01:04:07,620 اسی طرح جاوا سکرپٹ میں آپ کو ایک اور تقریب میں ایک تقریب کے نام منتقل کر سکتی ہیں. 1081 01:04:07,620 --> 01:04:10,630 نوٹس اور جو میں کر رہا ہوں. میں یہ نہیں کر رہا ہوں. 1082 01:04:10,630 --> 01:04:14,380 اگر میں جھپک کے بعد قوسین ڈال، جو جھپک تقریب کو کال کا مطلب ہو گا. 1083 01:04:14,380 --> 01:04:17,430 اگر میں ان کا ترک ہے، جو یہاں کا مطلب ہے کہ جھپک تقریب ہے 1084 01:04:17,430 --> 01:04:21,330 تاکہ setInterval یہ ہر 500 milliseconds کو فون کر سکتے ہیں. 1085 01:04:21,330 --> 01:04:28,200 تو نتیجہ ہے، اگرچہ atrocious ہے، کہ اگر میں localhost میں جاکر blink.html جانے کی، 1086 01:04:28,200 --> 01:04:32,120 اب میں یہ بار بار ہو رہا ہے. 1087 01:04:32,120 --> 01:04:34,950 اور اگر میں اصل عنصر کا معائنہ، دیکھو، اگر ہم یہ دیکھ سکتے ہیں. 1088 01:04:34,950 --> 01:04:38,550 آپ کے وزٹرز کا ریکارڈ رکھا عنصر کا معائنہ دو، آپ کے وزٹرز کا ریکارڈ رکھا صرف تھوڑا سا سکرال، 1089 01:04:38,550 --> 01:04:44,320 دو کے وزٹرز کا ریکارڈ رکھا جائے گا. میرے یہاں عناصر کو منتخب کریں، اور کروم انسپکٹر کی DOM اندر محسوس. 1090 01:04:44,320 --> 01:04:48,840 یہ لفظی اور پیچھے ہر 500 milliseconds تبدیل کرنا. 1091 01:04:48,840 --> 01:04:55,660 اگر ہم ہمارا دوست نیٹ، 1092 01:04:55,660 --> 01:05:00,020 اگر تم نے کبھی ایک وقفہ کے ساتھ یہ کس طرح کام کر رہا ہے، اسی طرح خیال حیران، 1093 01:05:00,020 --> 01:05:04,810 لیکن نیٹ اصل میں یہ خاص طور پر یہاں کے معاملے میں رنگ کا بہت ہی مؤثر استعمال کر رہا ہے. 1094 01:05:04,810 --> 01:05:07,350 تو اور کیا واقعی ہم نے اس کے ساتھ کیا کر سکتے ہیں؟ 1095 01:05:07,350 --> 01:05:09,990 چلو، ایک اور مثال کو کھولنے کے اور کچھ کرنے کی کوشش کریں 1096 01:05:09,990 --> 01:05:12,940 کہ پروگرام چیزوں جھپک کرنے سے بھی زیادہ فائدہ مند ہے. 1097 01:05:12,940 --> 01:05:17,990 آج کے وزٹرز کا ریکارڈ رکھا جائے گا. میرے ہمارے فارم ڈائریکٹری میں جاؤ اور form0 میں جانے دو. 1098 01:05:17,990 --> 01:05:20,820 یہ ممکن ugliest شکل ہے کہ میں اس کے ساتھ آ سکتا ہے تھا، 1099 01:05:20,820 --> 01:05:23,290 اور مجھے صرف تمہیں دکھاتا ہوں کہ یہ ایک براؤزر میں کی طرح لگتا ہے. 1100 01:05:23,290 --> 01:05:28,960 >> کے وزٹرز کا ریکارڈ رکھا جائے گا. میرے localhost / فارم میں جانا ہے، اور اس form0 ہے. 1101 01:05:28,960 --> 01:05:33,400 یہ ایک سپر بدسورت HTML قسم ہے جو کہ ای میل کے لئے چند شعبوں پاس ورڈ کے لئے ہے، ہے، 1102 01:05:33,400 --> 01:05:37,190 پاس ورڈ، اور اس کے بعد ایک چھوٹا سا دیے گئے چیک باکس کو کچھ شرائط و ضوابط سے اتفاق کرتا ہوں. 1103 01:05:37,190 --> 01:05:41,350 پکڑنے ہے اگر میں اس فارم کا دورہ کریں اور میں آپ کو اپنا ای میل ایڈریس نہیں دینا چاہتا، 1104 01:05:41,350 --> 01:05:44,730 میں شاید شرائط و ضوابط سے متفق نہیں کرنا چاہتے ہیں، میں کلک کر سکتے ہیں رجسٹر 1105 01:05:44,730 --> 01:05:46,920 اور یہ آپ کے وزٹرز کا ریکارڈ رکھا اجازت دیتا ہے کے ذریعے ویسے بھی. 1106 01:05:46,920 --> 01:05:50,800 یہ پی ایچ پی کے ایک پاگل بلایا dump.php فائل جمع کرنے کے لئے ہوتا ہے. 1107 01:05:50,800 --> 01:05:58,420 سب اس سے فرق پڑتا ہے تشخیصی مقاصد کے لئے صرف _GET ڈالر کے مندرجات پرنٹ. 1108 01:05:58,420 --> 01:06:01,580 یہ تھا جو ابھی صارف کی طرف سے پیش کیا گیا ہے. 1109 01:06:01,580 --> 01:06:05,010 لیکن لگتا ہے کہ ہم واقعی صارف فارم جمع کرانے کی توثیق کرنا چاہتے ہیں. 1110 01:06:05,010 --> 01:06:06,530 کے وزٹرز کا ریکارڈ رکھا جائے گا. میرے 1 ورژن میں جانے دو. 1111 01:06:06,530 --> 01:06:11,420 یہ form1.html ہے. یہ صرف برا کے طور پر خوبصورت دکھائی دیتی ہے، لیکن محسوس کتنا پسند ہے. 1112 01:06:11,420 --> 01:06:15,450 اگر میں تعاون کے بغیر رجسٹر پر کلک کریں، میں چللایا ہو جاتے ہیں. 1113 01:06:15,450 --> 01:06:17,320 "آپ کو آپ کے ای میل ایڈریس مہیا کرنا ضروری ہے." 1114 01:06:17,320 --> 01:06:21,670 ٹھیک ہے. تو مجھے اس کی کوشش. تو malan@harvard.edu. میں ایک پاس ورڈ کی ضرورت نہیں ہے. 1115 01:06:21,670 --> 01:06:25,100 رجسٹر کریں. "آپ کو ایک پاس ورڈ مہیا کرنا ضروری ہے." ٹھیک ہے. 1116 01:06:25,100 --> 01:06:28,470 تو میں نے کرمسن کے ایک پاس ورڈ فراہم کریں گے. رجسٹر کریں. 1117 01:06:28,470 --> 01:06:32,300 "پاس ورڈ مماثل نہیں ہے." اب میں کرمسن یہاں ٹائپ ہے. 1118 01:06:32,300 --> 01:06:35,710 میں نے غلطی سے اس کی جانچ پڑتال کی ہے. رجسٹر کریں. 1119 01:06:35,710 --> 01:06:39,860 "تم شرائط و ضوابط سے متفق ہونا ضروری ہے." ٹھیک ہے. وہاں اتفاق کرتا ہوں. رجسٹر کریں. 1120 01:06:39,860 --> 01:06:43,700 اور اب یہ کے وزٹرز کا ریکارڈ رکھا جائے گا. میرے وہاں تشخیصی پیداوار کو ظاہر کرتا ہے. 1121 01:06:43,700 --> 01:06:45,630 >> تو کیا صرف ہوا ہے؟ 1122 01:06:45,630 --> 01:06:48,330 ہم اس فارم گذارشات کو درست کرنے کی صلاحیت ہے. 1123 01:06:48,330 --> 01:06:51,420 اصل میں، اگر آپ کو 7 pset میں ڈوبکی نے، اس سے مستثنی مانگتی ہوں تقریب ہے 1124 01:06:51,420 --> 01:06:54,620 کہ یہ خوبصورت سکرین پر ایک پیغام کے ساتھ صارف چللانا آسان بنا دیتا ہے. 1125 01:06:54,620 --> 01:06:57,580 میں تھوڑا سا مختلف نظام ہے، الرٹ تقریب کا استعمال کرتے ہوئے کر رہا ہوں، 1126 01:06:57,580 --> 01:07:03,690 جو ایک تقریب نہیں ہے، اس مقصد مسکرایا ہے کیونکہ یہ بہت بدسورت صارف پیغامات کرتا ہے. 1127 01:07:03,690 --> 01:07:05,710 لیکن میں یہاں کیا کر رہا ہوں. 1128 01:07:05,710 --> 01:07:09,620 یہ form1.html ہے، اور دیکھیں گے کہ میں نے کچھ بہت واقف نحو ہے: 1129 01:07:09,620 --> 01:07:12,920 جسم ٹیگ، فارم کا ٹیگ، کارروائی وصف، طریقہ وصف ہے. 1130 01:07:12,920 --> 01:07:17,050 نوٹس لیکن میں نے اپنے طور سہولت کے لئے ایک منفرد شناختی نمبر دے دیا ہے. 1131 01:07:17,050 --> 01:07:19,190 اس وقت میں ایک ای میل میدان جس کی قسم متن ہے ہے، 1132 01:07:19,190 --> 01:07:23,780 ایک پاس ورڈ کا خانہ جن کی قسم، پاس ورڈ کی تصدیق میدان جس کی قسم پاسورڈ ہے ہے، 1133 01:07:23,780 --> 01:07:28,070 اور پھر ایک چیک باکس جس کا نام یہاں پر معاہدہ ہے، قسم، چیک باکس ہے. 1134 01:07:28,070 --> 01:07:30,380 اور پھر میں نے جمع کرانے کے بٹن مل گیا ہے. 1135 01:07:30,380 --> 01:07:33,050 لیکن سب سے اوپر محسوس کیا میں نے. 1136 01:07:33,050 --> 01:07:35,810 سب سے پہلے، اسکرپٹ ٹیگ ایک اور فائدہ ہے. 1137 01:07:35,810 --> 01:07:40,520 اگر آپ کو ایک اور فائل میں صرف طرح CSS کے ساتھ کچھ جاوا سکرپٹ کے کوڈ ہے، آپ اسے شامل کر سکتے ہیں. 1138 01:07:40,520 --> 01:07:44,530 اور آپ کو اسکرپٹ کے ذریعہ کے ساتھ ایسا، اور پھر نوٹس میں بظاہر منسلک رہا ہوں 1139 01:07:44,530 --> 01:07:50,349 ایک بہت لمبا راستہ googleapis.com لیکن جن کی فائل کے نام jquery.min میں ختم ہو جاتی ہے 1140 01:07:50,349 --> 01:07:52,420 کم از کم کے لئے JS. 1141 01:07:52,420 --> 01:07:55,969 jQuery جاوا سکرپٹ کے لئے ایک انتہائی مقبول لائبریری ہے کہ صرف جاوا اسکرپٹ کرتا ہے ہے 1142 01:07:55,969 --> 01:07:58,230 اور بھی زیادہ استعمال کرنے کے لئے صارف دوست ہے. 1143 01:07:58,230 --> 01:08:00,610 یہ مؤثر طریقے سے ایک اصل معیار بن گیا ہے. 1144 01:08:00,610 --> 01:08:04,090 اگرچہ جو تم کو دیکھنے کے لئے کے بارے میں پاک جاوا اسکرپٹ فی SE نہیں ہے، 1145 01:08:04,090 --> 01:08:09,340 CS50 لائبریری کی طرح جاوا سکرپٹ کے سب سے اوپر پر ایک لائبریری ہے ایک پرت ہے 1146 01:08:09,340 --> 01:08:13,670 کم سطح کے سی کوڈ کے سب سے اوپر پر حقیقت یہ ہے انٹرنیٹ پر تقریبا ہر کسی کو اس کا استعمال کرتا ہے. 1147 01:08:13,670 --> 01:08:18,030 تو یہ تربیت کے پہیوں نہیں ہیں. یہ ہے کہ ان دنوں کے بہترین طرز عمل ہے. 1148 01:08:18,030 --> 01:08:22,830 اب ذیل میں دیکھیں گے کہ میری اپنی سکرپٹ ٹیگ ہے، اور محسوس کیا میں نے یہاں کیا ہے. 1149 01:08:22,830 --> 01:08:27,450 یہ پتہ چلا ہے کہ jQuery کچھ تھوڑا سا پسند کرتا ہے. 1150 01:08:27,450 --> 01:08:29,660 جاوا اسکرپٹ ڈالر نشانیاں ہیں، لیکن وہ معنی ہیں. 1151 01:08:29,660 --> 01:08:32,870 >> وہ خط A B یا سی کی طرح ہیں 1152 01:08:32,870 --> 01:08:36,670 jQuery صرف اس بات کی رکھی دعوی کے کنونشن یا طرح اپنایا 1153 01:08:36,670 --> 01:08:40,280 کہ ڈالر ان کی خصوصی علامت ہو جائے گا. 1154 01:08:40,280 --> 01:08:44,950 تو جیسے ہی آپ کو اس عالمی جاوا اسکرپٹ فائل سکرپٹ ٹیگ کے ساتھ یہاں لوڈ، 1155 01:08:44,950 --> 01:08:49,080 آپ کو ایک خصوصی عالمی متغیر ہے کہ ڈالر کہتے ہیں کو رسائی حاصل ہے. 1156 01:08:49,080 --> 01:08:53,009 یہ زیادہ مناسب طریقے سے jQuery کہتے ہیں، لیکن اس سے تقریبا ڈالر کے طور پر کے طور پر تلاش نہیں لگتی ہے. 1157 01:08:53,009 --> 01:08:56,250 لیکن ڈالر کوئی خاص معنی ہے. پی ایچ پی میں یہ خاص معنی تھا. 1158 01:08:56,250 --> 01:08:58,440 تم نے اسے ایک متغیر کے سامنے میں تھا. 1159 01:08:58,440 --> 01:09:01,670 یہ صرف ایک کی تلاش میں بات یہ ہے کہ وہ لیا ہے. 1160 01:09:01,670 --> 01:09:03,389 یہاں کیا چل رہا ہے؟ 1161 01:09:03,389 --> 01:09:08,830 نوٹس میں jQuery فنکشن سے گزر میری عالمی متغیر دستاویز رہا ہوں 1162 01:09:08,830 --> 01:09:10,860 اور اس کے بعد میں فون کرنے کے لئے تیار ہوں. 1163 01:09:10,860 --> 01:09:15,480 کیا jQuery بنیادی طور پر یہ ہے کہ یہ آپ کو کچھ ونیلا جاوا اسکرپٹ چیزیں لینے کے لئے کی اجازت دیتا ہے ہے ہے 1164 01:09:15,480 --> 01:09:17,889 دستاویز اعتراض کی طرح،، ونڈو اعتراض 1165 01:09:17,889 --> 01:09:20,790 اور اگر تم اس کے jQuery تقریب میں پاس - 1166 01:09:20,790 --> 01:09:24,429 اور پھر صاف ہو جائے، یہ ایک ملاقات کی jQuery جشن ہے - 1167 01:09:24,429 --> 01:09:28,240 کیا اس سے فرق پڑتا ہے یہ ہے کہ یہ آپ کو دستاویز کے ایک خصوصی ورژن واپس 1168 01:09:28,240 --> 01:09:30,700 ہے کہ اس کے ساتھ منسلک فعالیت ہے. 1169 01:09:30,700 --> 01:09:34,760 تو خام جاوا اسکرپٹ میں کوئی تیار تقریب ہے، 1170 01:09:34,760 --> 01:09:37,810 لیکن اگر آپ jQuery تقریب دستاویز پہلے گزر 1171 01:09:37,810 --> 01:09:40,960 یہ آپ کو دستاویز کے اعتراض کا ایک خصوصی ورژن واپس 1172 01:09:40,960 --> 01:09:43,030 جو کہ زیادہ پسند ہیں خصوصیات ہیں. 1173 01:09:43,030 --> 01:09:48,230 اور یہی وجہ ہے کہ لوگوں کو یہ پسند ہے. یہ صرف کام کرنا آسان بناتا ہے، جیسا کہ ہم کو دیکھنے کے لئے کے بارے میں ہے. 1174 01:09:48,230 --> 01:09:49,820 تو کوڈ کے اس لائن کا مطلب کیا ہے؟ 1175 01:09:49,820 --> 01:09:52,690 کوڈ کا یہ لائن کا مطلب ہے کہ جب دستاویز تیار ہے - 1176 01:09:52,690 --> 01:09:56,830 دوسرے لفظوں میں، ایک بار براؤزر اس فائل کے سب سے اوپر نیچے کو پڑھنے کے کیا جاتا ہے - 1177 01:09:56,830 --> 01:09:59,200 آگے بڑھیں اور مندرجہ ذیل تقریب پھانسی. 1178 01:09:59,200 --> 01:10:03,540 جاوا اسکرپٹ میں واقعی دلچسپ کیا ہے - اور پی ایچ پی کی ہے، اس کے ساتھ ساتھ - 1179 01:10:03,540 --> 01:10:05,450 گمنام افعال ہے. 1180 01:10:05,450 --> 01:10:10,560 جاوا اسکرپٹ میں آپ افعال کا اعلان کر سکتے ہیں کہ اس کا کوئی نام نہیں ہے لیکن وہ ایک جسم ہے. 1181 01:10:10,560 --> 01:10:12,570 نوٹس یہاں کیا ہو رہا ہے. 1182 01:10:12,570 --> 01:10:16,220 >> نامی تیار فنکشن ہے، اور یہ صرف مندرجہ ذیل کام کا مطلب ہے 1183 01:10:16,220 --> 01:10:20,220 جب پورے ویب صفحہ کے لئے تیار ہے، جب یہ سب ہے سرور سے میں پڑھا ہے. 1184 01:10:20,220 --> 01:10:23,090 آپ کیا کرنا چاہتے ہیں؟ میں کوڈ کا ایک حصہ کو مکمل کرنے چاہتے ہیں. 1185 01:10:23,090 --> 01:10:27,120 یاد رکھیں کہ ہم اس کوڈ کو فورا پھانسی نہیں کرنا چاہتے ہیں. 1186 01:10:27,120 --> 01:10:34,350 اگر میں اس لپ، یہ فوری طور پر مطلب کوڈ کا ان لائنوں کو قتل کرنا شروع کریں گے. 1187 01:10:34,350 --> 01:10:39,040 لیکن اس طرح ایک گمنام تقریب میں حقیقت یہ ہے کہ میں نہیں، نہیں، نہیں کہہ رہا ہوں، اس لپیٹ 1188 01:10:39,040 --> 01:10:43,000 کا مطلب یہ پھانسی نہیں ابھی تک، یہ آخر میں فون ہے. 1189 01:10:43,000 --> 01:10:45,430 ہم یہ ہمارے پچھلے فارم مثال کے طور پر میں نے دیکھا ایک لمحے پہلے. 1190 01:10:45,430 --> 01:10:49,990 کیا تقریب میں ہم آخر میں نے فون کیا تھا، 500 milliseconds کے بعد؟ پلکیں جھپکاتی. 1191 01:10:49,990 --> 01:10:51,480 ایک ہی خیال تو. 1192 01:10:51,480 --> 01:10:53,950 ایک بار پھر، یہاں تک کہ اگر یہ تھوڑا عجیب لگتا ہے، صرف ایمان اب لے 1193 01:10:53,950 --> 01:10:57,060 کہ ایک گمنام تقریب ہے کہ آخر کہتے ہیں کا اعلان، 1194 01:10:57,060 --> 01:11:01,720 آپ کو صرف فنکشن () لکھنے { 1195 01:11:01,720 --> 01:11:05,380 تو ہم کیا کوڈ آخر کار پر عمل کرنے جا رہے ہیں؟ مندرجہ ذیل. 1196 01:11:05,380 --> 01:11:10,460 یہ بھی ایک چھوٹا سا نیا لگتا ہے، لیکن اس کا مطلب ہے کہ jQuery تقریب ہے، 1197 01:11:10,460 --> 01:11:13,430 اور اب یہ ایک شارٹ کٹ ہے. 1198 01:11:13,430 --> 01:11:18,830 کورس کی سکرین کے سب سے نیچے دیئے گئے HTML کا یہ ٹکڑا کسی درخت نمائندگی ہے. 1199 01:11:18,830 --> 01:11:21,730 یہ نہیں ہے. اس صفحے کو اس خوش مثال کے طور پر، دنیا کے مقابلے میں زیادہ دلچسپ ہے. 1200 01:11:21,730 --> 01:11:25,210 لیکن کچھ درخت اس HTML کے مساوی ہے. 1201 01:11:25,210 --> 01:11:28,910 گردن میں درد پنراورتی تقریب کی کسی قسم کو لاگو کرنے کے لئے کی ضرورت 1202 01:11:28,910 --> 01:11:34,380 جڑ نوڈ کو شروع کرنے اور پھر نوڈ جس کی ID رجسٹریشن ہے. 1203 01:11:34,380 --> 01:11:38,340 تو کیا jQuery سپر آسان بناتا ہے کے لئے ہم سے لفظی ہے. 1204 01:11:38,340 --> 01:11:43,000 آگے بڑھو اور مجھے لے جو بھی div یا جو کچھ بھی شکل، جو بھی HTML عنصر 1205 01:11:43,000 --> 01:11:45,820 رجسٹریشن کے ایک ID ہے. 1206 01:11:45,820 --> 01:11:52,440 یہ document.getElementById (رجسٹریشن) کے برابر ہے. 1207 01:11:52,440 --> 01:11:54,170 >> jQuery جیسے لوگوں کیوں نہیں کرتے؟ 1208 01:11:54,170 --> 01:12:00,110 کیونکہ یہ چھوٹا ہے ٹائپ کریں. لیکن یہ ہے. یہ وہی خیال ہے. 1209 01:12:00,110 --> 01:12:02,630 مجھے ٹیگ جن کی ID رجسٹریشن ہے حاصل کریں. 1210 01:12:02,630 --> 01:12:06,300 اور اس ٹیگ،، جس میں ایک فارم ہوتا ہے جب پیش ہے، 1211 01:12:06,300 --> 01:12:08,300 آگے بڑھو اور اس کوڈ کو پھانسی. 1212 01:12:08,300 --> 01:12:11,320 تو چلو کہ ہم کس طرح فارم کی توثیق کر رہے ہیں پر اب دیکھو. 1213 01:12:11,320 --> 01:12:15,950 نحو سب سے پہلے میں اس کا اقرار بھی خفیہ ہے، لیکن کیا ہو رہا ہے؟ 1214 01:12:15,950 --> 01:12:21,050 اگر لائن کوڈ کے اس سچ ہے، میں صارف میں اس کا یا اس کے ای میل ایڈریس کو فراہم کرنے کے لئے چللانا جا رہا ہوں. 1215 01:12:21,050 --> 01:12:22,970 تو کوڈ کے اس لائن ہے؟ 1216 01:12:22,970 --> 01:12:25,560 $ jQuery کا مطلب ہے. اب یہ نوٹس. 1217 01:12:25,560 --> 01:12:27,920 یہ CSS طرح طرح کی ہے. 1218 01:12:27,920 --> 01:12:33,370 اگر آپ سی ایس ایس میں dived ابھی تک ہے، آپ جانتے ہیں، کہ یہ عنصر جس کی ID رجسٹریشن ہے کا مطلب ہے کہ گے. 1219 01:12:33,370 --> 01:12:39,840 خلا کا مطلب ہے کہ ایک بچے یا رجسٹریشن کی اولاد جس کا نام ان پٹ ہے. 1220 01:12:39,840 --> 01:12:42,970 اور پھر مربع بریکٹ میں اس چیز ایک چھوٹا سا فلٹر ہے. 1221 01:12:42,970 --> 01:12:47,010 اور یہ بھی اگر یہ خفیہ لگتا ہے، صرف کا مطلب ہے کہ فارم جس کی ID رجسٹریشن ہے، 1222 01:12:47,010 --> 01:12:51,230 ، کہ جس کا نام ای میل یہ ہے کے ان پٹ عنصر اندر جانے کی 1223 01:12:51,230 --> 01:12:55,440 اور پھر اس کی قیمت حاصل ہے، جو بھی اس کی قدر کا ہوتا ہے - 1224 01:12:55,440 --> 01:12:59,670 asdf جو میں ٹائپ شدہ یا malan@harvard.edu ہے اگر یہی ہے جو میں ٹائپ ہو. 1225 01:12:59,670 --> 01:13:05,250 تو اگر صارف فارم ای میل فیلڈ == کچھ نہیں کی قدر چللاو. 1226 01:13:05,250 --> 01:13:09,700 ورنہ اگر پاس ورڈ کا خانہ کی قدر صارف میں کچھ نہیں == چللاو. 1227 01:13:09,700 --> 01:13:19,520 >> دوسری صورت میں، اگر پاس ورڈ کا خانہ کی قدر کی تصدیق کی فیلڈ کی قیمت کے برابر نہیں ہے 1228 01:13:19,520 --> 01:13:22,850 جو دوسرے فارم عنصر تھا، صارف پر چللاو. 1229 01:13:22,850 --> 01:13:25,680 اور پھر آخر میں - اور اس سے بھی اس کے اپنے کچھ نئے نحو ہے، 1230 01:13:25,680 --> 01:13:29,270 لیکن ایک بار آپ نے اسے دیکھا ہے، اسے کم سے کم تھوڑا سا زیادہ مناسب ہے - 1231 01:13:29,270 --> 01:13:34,060 اور اگر فارم جس کی ID رجسٹریشن ہے ایک ان پٹ عنصر ہے جس کا نام معاہدہ ہے ہے 1232 01:13:34,060 --> 01:13:39,720 اور اس کی جانچ پڑتال کی ہے، آگے جاؤ اور صارف میں چللانا. 1233 01:13:39,720 --> 01:13:42,520 تو میں مکمل طور پر تسلیم کرتے ہیں، یہ پہلی نظر میں مکمل طور پر غالب ہے. 1234 01:13:42,520 --> 01:13:46,530 یہ نئے نحو کی ایک بہت ہے. لیکن jQuery کے تمام نمونوں کی ان اقسام مندرجہ ذیل ہے. 1235 01:13:46,530 --> 01:13:49,880 اور سچ میں، میں بھی نہیں تھا کہ یہ موجود جب تک چند منٹ پہلے جانتے ہیں. 1236 01:13:49,880 --> 01:13:53,640 میں Googled، "آپ کس طرح چیک کرنے کے لیے اگر ایک چیک باکس jQuery میں جانچ پڑتال کر رہا ہے؟" 1237 01:13:53,640 --> 01:13:55,680 اور یہ نحو ہے، کیونکہ کرنے کے مختلف طریقوں 1238 01:13:55,680 --> 01:13:58,010 اصل خام جاوا سکرپٹ کے کوڈ کے ساتھ. 1239 01:13:58,010 --> 01:14:01,030 تاکہ مسئلہ 7 سیٹ کے بہت پہلے صفحے پر زور دیتا ہے، 1240 01:14:01,030 --> 01:14:04,500 7 pset بہت خود bootstrapping میں ایک مشق ہے 1241 01:14:04,500 --> 01:14:08,650 ہم فراہم جہاں امید ہے، جس کے ساتھ pset سے نمٹنے تصوراتی فریم ورک ہے. 1242 01:14:08,650 --> 01:14:12,280 >> لیکن جیسا کہ اکثر ویب ڈیزائن کے ساتھ معاملہ ہے، آپ پر منحصر ہے واقعی ارد گرد ڑکیلنا 1243 01:14:12,280 --> 01:14:16,680 ویب سے کوڈ کے ٹکڑوں اور مثالیں بہت لمبے وقت کے طور پر تم نے ان کا حوالہ دیتے شامل 1244 01:14:16,680 --> 01:14:17,960 اس پہلی شیٹ پر کی شرائط کے مطابق، 1245 01:14:17,960 --> 01:14:21,460 احساس اور یہ کہ HTML، CSS، جاوا سکرپٹ بھی SQL سیکھنے 1246 01:14:21,460 --> 01:14:26,020 واقعی میں اس مشق میں گھر کے طور پر ہم ان تربیت پہیوں کو لے جانے کے شروع ہونا چاہیے. 1247 01:14:26,020 --> 01:14:29,150 کا احساس اور بھی وہاں تو بہت زیادہ چیزیں آپ کو ایک براؤزر کے ساتھ کیا کر سکتے ہیں ہے. 1248 01:14:29,150 --> 01:14:33,790 ان عناصر کا سب سے زیادہ کے اندر دوسرے سے ملاقات کی ایونٹ handlers چیزیں ہیں. 1249 01:14:33,790 --> 01:14:37,140 فون کیا اور اگرچہ ہم صرف والوں میں دیکھا onsubmit اور onready 1250 01:14:37,140 --> 01:14:40,310 آپ onkeydown، onkeyup کی طرح باتیں کر سکتے ہیں، 1251 01:14:40,310 --> 01:14:43,410 جب صارف ایک چابی سے مباشرت چاہیں، تو آپ کہ اور اہم اپ کے لئے سن سکتے ہیں. 1252 01:14:43,410 --> 01:14:45,940 Gmail کے کی بورڈ شارٹ کٹس ہیں. 1253 01:14:45,940 --> 01:14:49,490 گوگل کے لئے تحریر کیسے C کی طرح کی بورڈ شارٹ کٹس پر عملدرآمد کرتا ہے؟ 1254 01:14:49,490 --> 01:14:54,120 وہ واقعات کے لئے، مدد، کے طور پر وہ onkeypress یا onkeyup اور onkeydown کی طرح، کہا جاتا رہے ہیں. 1255 01:14:54,120 --> 01:14:56,360 اگر تم نے کبھی کچھ مینو کے اختیارات پر اپنے ماؤس کو معلق 1256 01:14:56,360 --> 01:15:00,180 اور اچانک voila، تمام، ایک مینو ظاہر ہوتا ہے یا گرافک تبدیلیاں رنگ، 1257 01:15:00,180 --> 01:15:01,920 کہ وہ کس طرح کر رہے ہیں؟ 1258 01:15:01,920 --> 01:15:06,940 بجائے onready یا onsubmit کے لئے مدد، آپ onmouseover یا onmouseout کے لئے مدد. 1259 01:15:06,940 --> 01:15:10,920 >> تو مختصر میں، یہ بہت سادہ مبادیات کے ساتھ ہے کہ ہم آج کی سطح قلم ھیںچنا شروع کیا ہے 1260 01:15:10,920 --> 01:15:13,940 اور ہم نے بدھ کے روز مزید کودو، آپ ہیں، تیزی سے کریں گے، 1261 01:15:13,940 --> 01:15:17,530 قسم کی چیزیں ہیں جو آپ نے پہلے ہی سے واقف ہو پر عملدرآمد کرنے کی طاقت ہے. 1262 01:15:17,530 --> 01:15:21,620 تو وہاں ختم، اور ہم نے بدھ کے روز اس کو جاری رکھیں گے. 1263 01:15:22,690 --> 01:15:24,320 >> [CS50.TV]