[موسیقی بجانے] ڈوگ لایڈ: تو ایک تصور کی طرح کہ قسم کی چھتری کے تحت آتا ہے جاوا AJAX کہا جاتا ہے کچھ ہے. اس نقطہ تک، ہمارے جاوا سکرپٹ کے ساتھ بات چیت ایک دھکا تک محدود کر دیا گیا ہے بٹن اور کچھ ہوتا ہے. اور خاص طور پر، ہوتا ہے کہ کچھ ہماری ویب سائٹ دیکھنے کے لئے اور تبدیلی محسوس ہوتا ہے. ٹھیک ہے؟ خاص طور پر کی طرح، میں دستاویز آبجیکٹ ماڈل ویڈیو، میں پس منظر کا رنگ تبدیل کر دیا گیا. میں نے کیا لیکن جب، میں نہیں تھا کوئی خاص اضافی درخواستوں کرنا. میں اس درخواست کی ضرورت نہیں تھی سرور نے مجھے ایک نئی صفحہ بھیجیں. میں صرف میں نے پہلے ہی تھا کیا تبدیل کر دیا گیا. میں نے اپنے صفحہ دوبارہ لوڈ کرنے کی ضرورت نہیں تھی اور چیزوں کو یقینی طور، تبدیل کر دیا گیا تو یہ بہت اچھا ہے. لیکن یقینی طور پر نہیں ہے کچھ دستی صارف بات چیت شامل ہے. AJAX کی اجازت دیتا ہے کہ ایک ٹھنڈی ٹیکنالوجی ہے ہمیں ایک صفحے کے مواد کو اپ ڈیٹ کرنے، اور نہ صرف نظر اور دوبارہ لوڈ کے بغیر، محسوس. اور جب خاص طور پر کی طرف سے میں ایک صفحے کے مواد کو اپ ڈیٹ کہتے ہیں، میرے خیال میں ہمیں دوبارہ سے لکھنا نہیں کہہ رہا ہوں جاوا سکرپٹ کو استعمال صفحے. میں ہم اصل میں درخواست کہہ رہا ہوں سرور سے مزید معلومات ہمارے صفحہ کو دوبارہ لوڈ کرنے کے لئے بغیر. کا تھوڑا سا اب اس طرح ایک سے زیادہ اعلی درجے کی ٹیکنالوجی ہم بات کرنے کے لئے جا رہے ہیں اس ویڈیو کے بارے میں. ہم نے کچھ بات چیت کرنے کے لئے جا رہے ہیں. ہم کرتے ہیں لیکن جب، میں جا رہا ہوں ویب سرور پر درخواستوں کو بنانے کے. اس صورت میں، صرف کیا ہے میرے اپاچی ویب سرور چلانے. میں اضافی بنانے جا رہا ہوں درخواستوں میں، ایک ویب کے صفحے پر جاکر ہوں جبکہ لیکن میرے صفحہ کی تازہ کاری نہیں کرے گا. یہ صرف جا رہا ہے asynchronously اپنے صفحے کو اپ ڈیٹ. اور یہ کہ، حقیقت میں، ہے AJAX کے لئے کھڑا ہے جس، غیر ہم آہنگ جاوا اسکرپٹ اور XML ہے. XML مارکاپ کی ایک قسم ہے زبان، اور تم میں سے حل کر سکتے ہیں صرف ایچ ٹی ایم ایل کی طرح اس کے بارے میں سوچنا. یہ بہت ایک ہی بات نہیں ہے لیکن یہ بنیادی طور پر صرف ایک مارکاپ زبان ہے. تو یہ ایک اتلیکالک ہے جاوا اسکرپٹ اور ایک مارکاپ زبان. تو اس کا استعمال کرنے کے لئے AJAX technique-- AJAX ایک علیحدہ پروگرامنگ زبان نہیں ہے. یہ ایک کے الگ الگ ہے techniques-- ہم سیٹ ایک خصوصی بنانے کی ضرورت ہے جاوا اسکرپٹ اعتراض، جس ایک XMLHttpRequest کہا جاتا ہے. اب، یہ کرنا بہت آسان ہے. ہم صرف کا کہنا ہے متغیر، جو کچھ بھی ہم اس چیز کو کال کرنا چاہتے ہیں، نئے XMLHttpRequest برابر. اور اب ہم اب حاصل کیا ہے اعتراض کی ایک AJAX قسم، یا ایک XMLHttpRequest اجازت دے گا جس چیز، ہمیں asynchronously ہمارے صفحے کو اپ ڈیٹ کرنے. ہم اس نئے ہو گیا ہے کے بعد اعتراض، اس XMLHttpRequest، ہم کچھ کرنا پڑے اس onreadystatechange رویے. Onreadystatechange رویے واقعی صرف ہے آپ کو ایک درخواست کرنے کے لئے جب ایک ویب کے صفحے، صفحہ اقدامات کی ایک بڑی تعداد کے ذریعے جاتا ہے. سب سے پہلے، ایک درخواست بھیجا نہیں گیا ہے. پھر، درخواست کیا گیا تھا بھیجا، لیکن ان پر عمل کیا نہیں. پھر درخواست پر عمل کیا گیا ہے. پھر درخواست ہے آپ کو واپس بھیجا جا رہا ہے. پھر، درخواست ہے مکمل طور پر آپ کے صفحے میں بھری ہوئی. ان مختلف ریاستوں ہیں. اور اس طرح ہم نے اپنے قائم کرنے کی ضرورت نئے XMLHttpRequest اعتراض جب تیار ریاست تبدیلیاں تبدیل کرنے. اور عام طور پر، ہم کی طرف سے ایسا ایک گمنام تقریب، کی وضاحت ہے جس میں ہم سے سے واقف ہیں اب جاوا، کہ جب تیار ریاست تبدیلیاں کہا جاتا ہے. یہ اس سے بہت زیادہ نہیں ہے. ہم صرف ایک کی وضاحت کرنے جا رہے ہیں گمنام تقریب، قسم کی پسند کیا ہم کیا کر رہے تھے جاوا، جہاں ہم کریں گے ایک گمنام تقریب ہے پر کلک کریں کرنے کے لئے جواب، یا ہم کا ایک نقشہ کر رہے تھے جب ایک صف میں مختلف اشیاء. کچھ جب ہوا کچھ کلک کیا گیا تھا. اس صورت میں، یہ صرف کچھ ہے ہے ہو جب ہمارے صفحے کے ریاست تبدیلی. دو دیگر خصوصیات ہیں قسم of-- وہ نہیں ہو رہے ہیں کہ ہے کہ صرف خصوصیات XMLHttpRequest کے موروثی، لیکن وہ بہت اہم لوگ ہیں. readyState کہا جاتا ہے کچھ بھی نہیں ہے، جو آپ کو شاید اندازہ لگا سکتے ہیں کے طور پر، onreadystatechange سے متعلق ہے. یہ اصل میں آپ کو بتاتا ہے readyState ہے. 0، 1، 2، 3، اور 4 وہاں امکانات، اور وہ قسم کے تقریبا کے مطابق کیا میں نے صرف ایک دوسرے کے بارے میں پہلے بات کر رہا تھا. اور پھر حالت، جس میں امید ہے کہ سب کچھ ٹھیک ہو گیا تو، مختصر ہے جو، 200 کے لئے، کورس کی، ٹھیک ہے، ہم HTTP سے سے واقف ہے جو. تو ہم امید کر رہے ہیں کہ ہمارے تیار ریاست چار ہے، اور ہماری حیثیت 200. اور ہمارے تیار ریاست تو چار، اور جواب ہے پر ڈال کرنے کے لئے تیار ہے صفحے، اور حیثیت 200، ہم ایسا کرنے کے قابل تھے سب کچھ کامیابی، اب ہم asynchronously کر سکتے ہیں ہمارے صفحے کو اپ ڈیٹ دوبارہ لوڈ کرنے کے لئے بغیر اس کے پورے مواد. ہم کیا ہوتا ہے وضاحت کی گئی ہے کے بعد onreadystatechange رویے سے، اور ہم اس کی جانچ پڑتال کی ہے readyState ، 4 اور حیثیت 200 تو ہم کیا کرنے کی ضرورت ہے ایک اتلیکالک کھولو درخواست، صرف جو کر رہا ہے ایک HTTP درخواست عام طور پر حاصل. بس پروگرام یہ کام کر رہے، بجائے ہماری ویب براؤزر کے ذریعے کی. اور پھر ہم اس درخواست بھیجنے. تو کیا ہو سکتا ہے کہ یہ کرتا ہے تناظر میں کی طرح نظر آتے ہیں؟ تو یہاں ایک تقریب ہے کہ AJAX کی درخواستوں کے ساتھ سودے. ٹھیک ہے؟ اور میں منمانے کہا ہے یہ ایک دلیل کو قبول کرتا ہے. اور یہ ایک کی ایک قسم یہاں عام کنکال. بہت شروع میں، ہم ملے خود ایک نئی XMLHttpRequest اعتراض. پھر، میں قائم کرنے کی ضرورت onreadystatechange رویے. اور تو میں کہنے جا رہا ہوں جب readyState تبدیلیاں، میں آپ کو اس تقریب کو فون کرنا چاہتے ہیں. پوچھیں کرنے کے لئے جا رہی ہے جس سوال، readyState تو readyState تبدیل کر دیا گیا تو، 4 4 ہو، اور حیثیت 200 تھا، تو ہم نے، ایک کامیاب درخواست صفحے کے لئے کچھ کرنا چاہتے ہیں. اور ہم نے ایک نظر لے لیں گے کی ایک مثال کے طور پر کیا کہ کچھ ایک سیکنڈ میں ہو سکتا ہے. تو، اب میں وضاحت کی گئی ہے میری گمنام تقریب، میرا جواب تقریب جب readyState تبدیلیاں. تو پھر میں صرف ایک کو کھولنے کے لئے کی ضرورت ہے کھولیں طریقہ استعمال کر رہے ہیں، درخواست. اور پھر، میں نے اس کی درخواست بھیجنے. اور چلو پر ایک نظر ڈالیں ایک سے زیادہ ٹھوس مثال کے طور پر کیا AJAX کی ہماری ویب صفحات پر کر سکتے ہیں. تو میں یہاں ایک بہت ہی آسان ہے صفحہ home.html بلایا. پھر میں نے ایک کے بارے میں معلومات ہے مل گیا ہے یہاں اور ڈراپ ڈاؤن مینو میں کسی قسم کا. اور ہم نے ایک سیکنڈ میں اس نظرثانی کریں گے. لیکن میں اب ہم ایک لے لینا چاہیئے اصل منبع کوڈ کو دیکھنے کے. اور اس طرح، میں home.html کو کھولنے کے لئے جا رہا ہوں. اور ہم پر کیا ہو رہا ہے دیکھیں گے. یہاں بہت سب سے اوپر تو، میں نے پر جا رہا ہے کہ کچھ جاوا اسکرپٹ چیزیں. اور یہاں، میں بظاہر ہے جن ID infodiv ہے ایک div، اور کچھ کے بارے میں معلومات وہاں جانے کے لئے کی جا رہی ہے. اور پھر میں نے اس فارم ہے. اور اس کے اندر فارم، میں کچھ ہے ایک منتخب کریں، کہا جاتا ہے جس صرف ایک ڈراپ ڈاؤن مینو ہے مختلف اختیارات میں سے ایک گروپ کے ساتھ. اور یہ کہ، جب تبدیلیاں بظاہر جب منتخب کیا گیا ہے اس کا اختیار ہے تبدیل کر دیا گیا، میں فون کرنے جا رہا ہوں کچھ تقریب cs50Info، اور پھر میں جا رہا ہوں this.value میں منتقل، جہاں اس سے مراد جس کا اختیار منتخب کیا گیا، اور قیمت، یہاں اختیار ان میں سے ایک ہے قیمت = برابر خالی، "blumberg،" "Bowden کی،" "چان،" اور "MALAN." تو کیا اصل میں ہو سکتا ہے میں ایسا کرتے ہیں جب یہاں ہو؟ ٹھیک ہے، ایک لے blumberg.html دیکھو. یہ صرف ایک ہے کی طرح لگتا ہے کچھ HTML کا ٹکڑا. اور حقیقت میں، میں کیا امید کر رہا ہوں یہاں ہونے جا رہا ہے میں پلگ کرنے کے لئے کے قابل ہو جائے کرنے کے لئے جا رہا ہوں میری ویب کے صفحے میں براہ راست یہ HTML دوبارہ لوڈ کرنے کے لئے بغیر صفحے، اس طرح کہ جب میں ڈراپ ڈاؤن سے ہننا کریں مینو، ہننا کے بارے میں معلومات، خاص طور پر، اس کی معلومات میں یہاں blumberg.html میں، صفحے پر ظاہر کرتا ہے. میں تازہ کاری کی ضرورت نہیں ہے. اور میں، کسی کا انتخاب کیا ہے ان معلومات کو ظاہر کرے گا. میں یہ کیسے کروں؟ ایک بار پھر، اس کی ضرورت ہے ہمیں کچھ AJAX استعمال کرنے کے لئے. اور اس طرح، ہم ajax.js. کو کھولنے گے اور یہاں، cs50Info اس تقریب ہے. نام نہیں ہے تو، میں واپس. میں تو کچھ بھی نہیں کر رہا ہوں خالی اختیار منتخب کیا گیا ہے. دوسری صورت میں، میں جا رہا ہوں ایک نئی XMLHttpRequest پیدا. اور پھر میں، جب کہنے جا رہا ہوں readyState تبدیلیوں، اس تقریب کو فون. اور readyState ہے 4 اور حیثیت 200، یہاں ایک چھوٹا سا تھوڑا سا ہے 13 پر jQuery کی. لیکن میں کہہ رہا ہے کر رہا ہوں تمام، infodiv کے مواد کو تبدیل میں نے ایک کے طور پر واپس مل گیا جو کچھ بھی ہو کرنے کے لئے میرے HttpRequest سے جواب. میرے HttpRequest کیا ہے؟ ٹھیک ہے، یہ ٹھیک ہے یہاں لائن 18 اور 19 پر. لائن 18، میں بنیادی طور پر تیاری کر رہا ہوں ایک کا نام + ایچ ٹی ایم ایل کے لئے درخواست حاصل. اور پھر، نام یہاں ہے تھا کہ دلیل cs50Info کرنے کے لئے ایک پیرامیٹر کے طور پر میں منظور کیا. تو بنیادی طور پر، میں کسی میں گزر رہا ہوں اختیارات کی اس سیٹ تھا جس میں، نام ہم نے دیکھا ہے کہ ڈراپ ڈاؤن مینو کی شکل میں. میں اس نام ہو رہی ہے. اور مجھے آپ چاہتے ہیں کہہ رہا ہوں میرے لئے file.html حاصل کریں، اور پھر اس کی درخواست بھیجنے. اور تو ہے کہ onreadystatechange جا رہا ہے سننے اور انتظار اور انتظار کرنے اور readyState تک، انتظار کر رہے ہیں 4، اور حیثیت 200. تو یہ، کی خدمت کی جائے کرنے کے لئے تیار ہے اور درخواست کامیاب تھا. یہ ہے تو، یہ جا رہا ہے infodiv کے مواد کو تبدیل میں واپس مل گیا اس کے جواب کو ہونا. تو یہ کس طرح دیکھتے ہیں اصل میں کام کر سکتے ہیں. تو ہم اپنے براؤزر کے اوپر سے سر کریں گے ونڈو، اور ہم یہاں نظر آئے گا. تو میں ایک نظر ڈالیں کیا AJAX میں یہاں کیا ہو رہا. تو ہم کسی کا انتخاب کریں گے ڈراپ ڈاؤن مینو میں سے. تو اس صورت میں، چلو صرف ہننا کریں. نوٹس اور یہ کہ حنا معلومات تبدیل کر دیا گیا، لیکن میں any-- نہیں تھا میرے صفحہ مکمل طور پر دوبارہ لوڈ کریں نہیں کیا. چیزیں ٹھہرے رہے. سامان کی سب سے زیادہ ٹھہرے رہے. AJAX کی ٹیسٹ کو تبدیل نہیں کیا. کے بٹن پر خود، اس ڈراپ ڈاؤن مینو کو تبدیل نہیں کیا. لیکن وہاں کی معلومات کو تبدیل کیا. اور کس طرح پر منحصر فوری طور پر اپنے کمپیوٹر کی چالوں، آپ اصل میں مواد دیکھ سکتے ہیں کہ غائب اور پھر واقعی ظاہر ھوگا فوری طور پر. جا رہا ہے کہ مواد ہے infodiv سے خارج کر دیا، اور پھر ایک ساتھ تبدیل کر دیا نئے اتلیکالک درخواست. میں کہتا ہوں کہ کیا اسے سوئچ تو، Rob-- اور پھر، ایک نظر ڈالیں، اور شاید ہم اصل میں یہ دیکھ لیں گے غائب اور فوری طور پر ظاہر. آپ کو اس دیکھ رہے ہو؟ کس طرح یہ صرف دور کھولے اور پھر اس سے بھرا؟ کہ AJAX درخواست ہے جگہ لینے کی طرح. اور اس پر منحصر ہے شخص میں ہوں، منتخب کریں ایک مختلف اتلیکالک بنانے ایک مختلف فائل کی درخواست میں نے اپنے سرور پر ہے کہ. اور کے مندرجات میری infodiv اپ ڈیٹ کر رہے، مجھے انتخاب کیا ہے ان میں سے جس کی بنیاد پر. تو یہ واقعی تمام AJAX کے لئے ہے ہے. اس سے ہمیں یہ اتلیکالک بنانے کے لئے کی اجازت دیتا ہے درخواستوں، ایک صفحے پر اپ ڈیٹ. کرنے کے لئے بغیر پورے صفحے کو ریفریش، ہم نئے حاصل کرنے کے لئے جا رہے ہیں بنا کر اس سے مواد سرور پر ایک نیا تازہ درخواست. اور اس طرح، ہمارے صفحات بن سکتے ہیں بہت تھوڑا سا زیادہ متحرک. اور ہم مزید کے طور پر اور زیادہ اعلی درجے کی، آپ طرح چیزوں کو حاصل ہو سکتا ہے کہہ دو، آپ کے ای میل ان باکس، جہاں آپ کو کچھ کرنے کی ضرورت نہیں ہے. آپ کو ایک کلک کرنے کی ضرورت نہیں مینو کے نیچے ڈراپ یا کچھ پر کلک کریں، اور اچانک، آپ کی تازہ ترین ای میل سب سے اوپر کو ظاہر کرتا ہے. یہ بھی صرف ایک AJAX کی درخواست ہے. ایجیکس درخواست کر رہا ہے آپ سرور، ای میل سرور، تمام معلومات پر بھیجنا چاہتے ہیں آپ کی تازہ ترین ای میلز کے بارے میں، اور آپ پر دیکھ کیا تبدیل سکرین ای میلز میں سے اپنے نئے مقرر کیا جا کرنے. اور آپ کو ایک نیا میں ہے تو کہ div میں سے، اس کے بعد مواد ظاہر کرنے کے لئے تبدیل کریں گے اپ ڈیٹ کیا مواد. میں ڈوگ لایڈ ہوں. یہ CS50 ہے.