1 00:00:00,000 --> 00:00:00,500 2 00:00:00,500 --> 00:00:04,810 [MUSIC CHƠI] 3 00:00:04,810 --> 00:00:06,940 >> DOUG LLOYD: Vì vậy, hơn một loại ý niệm đó 4 00:00:06,940 --> 00:00:12,120 loại thuộc dưới sự bảo trợ của JavaScript là một cái gì đó gọi là AJAX. 5 00:00:12,120 --> 00:00:15,310 Cho đến thời điểm này, chúng tôi tương tác với JavaScript 6 00:00:15,310 --> 00:00:17,727 đã được hạn chế để đẩy một nút và một cái gì đó xảy ra. 7 00:00:17,727 --> 00:00:19,560 Và đặc biệt, các một cái gì đó xảy ra 8 00:00:19,560 --> 00:00:22,950 là trang web của chúng tôi xem và cảm nhận sự thay đổi. 9 00:00:22,950 --> 00:00:23,450 Bên phải? 10 00:00:23,450 --> 00:00:26,540 Giống như nói riêng, trong tài liệu mô hình đối tượng video, 11 00:00:26,540 --> 00:00:29,060 Tôi đã thay đổi màu nền. 12 00:00:29,060 --> 00:00:33,240 Nhưng khi tôi đã làm điều đó, tôi không có làm bất cứ yêu cầu thêm đặc biệt. 13 00:00:33,240 --> 00:00:36,800 Tôi không phải yêu cầu các máy chủ gửi cho tôi một trang mới. 14 00:00:36,800 --> 00:00:39,620 Tôi chỉ cần thay đổi những gì tôi đã có. 15 00:00:39,620 --> 00:00:42,245 Tôi không phải tải lại trang web của tôi, và điều chắc chắn thay đổi, 16 00:00:42,245 --> 00:00:43,760 vì vậy đó là tuyệt vời. 17 00:00:43,760 --> 00:00:48,400 Nhưng có chắc chắn một số tương tác hướng dẫn sử dụng có liên quan. 18 00:00:48,400 --> 00:00:53,140 AJAX là một kỹ thuật mát mẻ cho phép chúng tôi để cập nhật nội dung của trang, 19 00:00:53,140 --> 00:00:55,750 và không chỉ là cái nhìn và cảm thấy, mà không tải lại. 20 00:00:55,750 --> 00:00:58,610 >> Và bằng cách đặc biệt khi tôi nói cập nhật nội dung của trang web, 21 00:00:58,610 --> 00:01:01,990 Tôi không nói rằng chúng ta viết lại các trang bằng cách sử dụng JavaScript. 22 00:01:01,990 --> 00:01:06,560 Tôi nói rằng chúng tôi thực sự yêu cầu thêm thông tin từ các máy chủ 23 00:01:06,560 --> 00:01:08,640 mà không cần trang của chúng tôi không phải nạp lại. 24 00:01:08,640 --> 00:01:10,850 >> Bây giờ sắp xếp của một chút một kỹ thuật tiên tiến hơn 25 00:01:10,850 --> 00:01:11,950 rằng chúng ta sẽ nói chuyện về trong video này. 26 00:01:11,950 --> 00:01:13,720 Chúng ta sẽ có một số tương tác. 27 00:01:13,720 --> 00:01:17,750 Nhưng khi chúng tôi làm, tôi sẽ được làm cho các yêu cầu đến máy chủ web. 28 00:01:17,750 --> 00:01:21,140 Trong trường hợp này, chỉ cần những gì chạy máy chủ web Apache của tôi. 29 00:01:21,140 --> 00:01:25,010 Tôi sẽ được làm thêm yêu cầu trong khi tôi ghé thăm một trang web, 30 00:01:25,010 --> 00:01:26,890 nhưng trang của tôi sẽ không làm mới. 31 00:01:26,890 --> 00:01:30,000 >> Nó chỉ đi không đồng bộ cập nhật trang web của tôi. 32 00:01:30,000 --> 00:01:31,840 Và đó là, trên thực tế, mà AJAX là viết tắt của, 33 00:01:31,840 --> 00:01:35,400 là Asynchronous JavaScript và XML. 34 00:01:35,400 --> 00:01:37,910 XML là một loại đánh dấu ngôn ngữ, và bạn có thể sắp xếp của 35 00:01:37,910 --> 00:01:39,680 nghĩ về nó giống như HTML. 36 00:01:39,680 --> 00:01:42,990 Nó không phải là điều khá giống nhau, nhưng về cơ bản nó chỉ là một ngôn ngữ đánh dấu. 37 00:01:42,990 --> 00:01:47,770 Vì vậy, nó không đồng bộ JavaScript và một ngôn ngữ đánh dấu. 38 00:01:47,770 --> 00:01:50,590 >> Vì vậy, để sử dụng này AJAX technique-- AJAX 39 00:01:50,590 --> 00:01:52,230 không phải là một ngôn ngữ lập trình riêng biệt. 40 00:01:52,230 --> 00:01:55,300 Nó chỉ là sắp xếp của một bộ techniques-- chúng tôi 41 00:01:55,300 --> 00:01:57,870 cần phải tạo ra một đặc biệt Đối tượng JavaScript, 42 00:01:57,870 --> 00:02:00,689 được gọi là một XMLHttpRequest. 43 00:02:00,689 --> 00:02:01,980 Bây giờ, nó rất dễ dàng để làm điều này. 44 00:02:01,980 --> 00:02:04,550 Chúng tôi chỉ nói var, bất cứ điều gì chúng tôi muốn gọi đối tượng này, 45 00:02:04,550 --> 00:02:07,030 bằng XMLHttpRequest mới. 46 00:02:07,030 --> 00:02:11,050 Và bây giờ chúng ta đã thu được một loại AJAX của đối tượng, 47 00:02:11,050 --> 00:02:14,370 hoặc một XMLHttpRequest đối tượng, mà sẽ cho phép 48 00:02:14,370 --> 00:02:18,360 chúng tôi không đồng bộ cập nhật trang của chúng tôi. 49 00:02:18,360 --> 00:02:23,100 >> Sau khi chúng tôi đã nhận được mới này đối tượng, XMLHttpRequest này, 50 00:02:23,100 --> 00:02:27,760 chúng ta phải làm gì đó để nó hành vi onreadystatechange. 51 00:02:27,760 --> 00:02:30,360 Onreadystatechange hành vi thực sự chỉ là 52 00:02:30,360 --> 00:02:34,080 khi bạn thực hiện một yêu cầu đến một trang web, trang 53 00:02:34,080 --> 00:02:35,880 đi qua một số bước. 54 00:02:35,880 --> 00:02:37,370 Đầu tiên, một yêu cầu đã không được gửi đi. 55 00:02:37,370 --> 00:02:39,860 Sau đó, các yêu cầu đã được gửi, nhưng không hành động ngay. 56 00:02:39,860 --> 00:02:41,580 Sau đó yêu cầu đã được thực thi. 57 00:02:41,580 --> 00:02:43,680 Sau đó yêu cầu là được gửi lại cho bạn. 58 00:02:43,680 --> 00:02:46,930 >> Sau đó, yêu cầu là nạp đầy đủ trong trang của bạn. 59 00:02:46,930 --> 00:02:48,640 Đó là những trạng thái khác nhau. 60 00:02:48,640 --> 00:02:53,890 Và vì vậy chúng tôi cần phải thiết lập của chúng tôi đối tượng XMLHttpRequest mới 61 00:02:53,890 --> 00:02:58,740 thay đổi khi thay đổi trạng thái sẵn sàng. 62 00:02:58,740 --> 00:03:01,925 Và thông thường, chúng ta làm điều này bằng xác định một chức năng vô danh, mà 63 00:03:01,925 --> 00:03:04,490 chúng ta đã quen thuộc với các từ JavaScript bây giờ, đó 64 00:03:04,490 --> 00:03:09,840 được gọi là khi thay đổi trạng thái sẵn sàng. 65 00:03:09,840 --> 00:03:11,340 Nó thực sự không nhiều hơn thế. 66 00:03:11,340 --> 00:03:14,340 Chúng tôi chỉ cần đi để được xác định một chức năng ẩn danh, loại thích những gì 67 00:03:14,340 --> 00:03:16,440 chúng tôi đã làm trong JavaScript, nơi chúng tôi sẽ 68 00:03:16,440 --> 00:03:18,750 có một chức năng ẩn danh đáp ứng với một nhấp chuột vào, 69 00:03:18,750 --> 00:03:23,230 hoặc khi chúng tôi đã làm một bản đồ của các đối tượng khác nhau trong một mảng. 70 00:03:23,230 --> 00:03:25,220 >> Một cái gì đó đã xảy ra khi một cái gì đó được nhấp. 71 00:03:25,220 --> 00:03:28,810 Trong trường hợp này, nó chỉ là cái gì là xảy ra khi trạng thái của trang của chúng tôi 72 00:03:28,810 --> 00:03:30,160 thay đổi. 73 00:03:30,160 --> 00:03:32,730 Có hai đặc tính khác được loại of-- họ không 74 00:03:32,730 --> 00:03:35,524 các thuộc tính duy nhất có vốn có để XMLHttpRequest, 75 00:03:35,524 --> 00:03:36,940 nhưng chúng những người khá quan trọng. 76 00:03:36,940 --> 00:03:39,815 Có một cái gì đó gọi là readyState, mà như bạn có thể đoán, 77 00:03:39,815 --> 00:03:41,750 là liên quan đến onreadystatechange. 78 00:03:41,750 --> 00:03:44,250 Nó thực sự cho bạn những gì là readyState. 79 00:03:44,250 --> 00:03:46,289 0, 1, 2, 3, và 4 khả năng này, 80 00:03:46,289 --> 00:03:48,080 và họ sắp xếp của khoảng tương ứng với những gì 81 00:03:48,080 --> 00:03:50,030 Tôi chỉ nói về một giây trước đó. 82 00:03:50,030 --> 00:03:53,100 >> Và sau đó trạng thái, hy vọng nếu mọi thứ đều OK, 83 00:03:53,100 --> 00:03:56,710 là 200, mà là ngắn cho, tất nhiên, OK, 84 00:03:56,710 --> 00:03:58,330 mà chúng ta đã quen thuộc với từ Http. 85 00:03:58,330 --> 00:04:03,735 Vì vậy, chúng tôi hy vọng rằng chúng ta trạng thái sẵn sàng là bốn, và tình trạng của chúng tôi là 200. 86 00:04:03,735 --> 00:04:07,940 Và nếu trạng thái sẵn sàng của chúng tôi là bốn, và phản ứng 87 00:04:07,940 --> 00:04:11,490 sẵn sàng để được đưa vào trang, và tình trạng này là 200, 88 00:04:11,490 --> 00:04:13,580 chúng tôi đã có thể làm tất cả mọi thứ thành công, 89 00:04:13,580 --> 00:04:17,209 bây giờ chúng ta có thể không đồng bộ cập nhật trang của chúng tôi 90 00:04:17,209 --> 00:04:21,730 mà không cần phải tải lại toàn bộ nội dung của nó. 91 00:04:21,730 --> 00:04:27,710 >> Sau khi chúng tôi đã xác định những gì sẽ xảy ra đến hành vi onreadystatechange, 92 00:04:27,710 --> 00:04:31,020 và chúng tôi đã kiểm tra rằng readyState 4 và tình trạng là 200, 93 00:04:31,020 --> 00:04:33,900 sau đó tất cả chúng ta cần phải làm là mở ra một không đồng bộ 94 00:04:33,900 --> 00:04:38,530 yêu cầu, mà chỉ là làm cho một Http thường GET yêu cầu. 95 00:04:38,530 --> 00:04:41,950 Chỉ cần làm nó lập trình, thay vì thông qua trình duyệt web của chúng tôi. 96 00:04:41,950 --> 00:04:43,786 Và sau đó chúng tôi gửi yêu cầu đó. 97 00:04:43,786 --> 00:04:45,660 Vì vậy, những gì hiện này có lẽ như thế nào trong bối cảnh? 98 00:04:45,660 --> 00:04:49,790 Vì vậy, đây là một chức năng mà Chương trình khuyến mại với các yêu cầu AJAX. 99 00:04:49,790 --> 00:04:50,290 ĐƯỢC? 100 00:04:50,290 --> 00:04:52,430 Và tôi đã tự ý nói nó chấp nhận một đối số. 101 00:04:52,430 --> 00:04:55,550 Và đây là một loại một bộ xương nói chung ở đây. 102 00:04:55,550 --> 00:05:00,890 Lúc đầu, chúng tôi nhận mình một đối tượng XMLHttpRequest mới. 103 00:05:00,890 --> 00:05:03,830 Sau đó, tôi cần phải đặt hành vi onreadystatechange. 104 00:05:03,830 --> 00:05:06,970 Và vì vậy tôi sẽ nói khi thay đổi readyState, 105 00:05:06,970 --> 00:05:10,110 Tôi muốn bạn để gọi chức năng này. 106 00:05:10,110 --> 00:05:12,570 >> Đó là sẽ yêu cầu câu hỏi, nếu readyState 107 00:05:12,570 --> 00:05:17,240 là 4, nếu readyState đã thay đổi là 4, và tình trạng này là 200, 108 00:05:17,240 --> 00:05:20,799 vì vậy chúng tôi có một yêu cầu thành công, tôi muốn làm một cái gì đó để trang. 109 00:05:20,799 --> 00:05:22,590 Và chúng ta sẽ có một cái nhìn một ví dụ về những gì 110 00:05:22,590 --> 00:05:25,010 cái gì mà có thể là trong một giây. 111 00:05:25,010 --> 00:05:27,830 Vì vậy, sau đó, bây giờ tôi đã xác định chức năng ẩn danh của tôi, 112 00:05:27,830 --> 00:05:31,340 chức năng phản ứng của tôi bất cứ khi nào những thay đổi readyState. 113 00:05:31,340 --> 00:05:37,120 >> Vì vậy, sau đó tôi chỉ cần mở một yêu cầu, sử dụng phương thức Open. 114 00:05:37,120 --> 00:05:39,160 Và sau đó, tôi gửi yêu cầu đó. 115 00:05:39,160 --> 00:05:41,980 Và chúng ta hãy nhìn vào một ví dụ cụ thể hơn 116 00:05:41,980 --> 00:05:46,290 những gì AJAX có thể làm trên trang web của chúng tôi. 117 00:05:46,290 --> 00:05:49,740 Vì vậy, tôi có ở đây rất đơn giản Trang home.htm. 118 00:05:49,740 --> 00:05:53,620 Và tôi đã có một thông tin đi ở đây và một số loại đơn thả xuống. 119 00:05:53,620 --> 00:05:55,390 >> Và chúng tôi sẽ xem xét lại điều này trong một giây. 120 00:05:55,390 --> 00:05:59,150 Nhưng tôi nghĩ rằng bây giờ chúng ta hãy nên nhìn vào mã nguồn thực tế. 121 00:05:59,150 --> 00:06:01,080 Và như vậy, tôi sẽ mở ra home.html. 122 00:06:01,080 --> 00:06:03,490 123 00:06:03,490 --> 00:06:04,740 Và chúng ta sẽ thấy những gì đang xảy ra. 124 00:06:04,740 --> 00:06:08,240 Vì vậy, ở đầu rất ở đây, tôi có một số công cụ JavaScript rằng đang xảy ra. 125 00:06:08,240 --> 00:06:12,470 >> Và ở đây, tôi dường như có một div có ID là infodiv, 126 00:06:12,470 --> 00:06:15,290 và một số thông tin được đi đến đó. 127 00:06:15,290 --> 00:06:16,374 Và sau đó tôi có hình thức này. 128 00:06:16,374 --> 00:06:18,081 Và bên trong này hình thức, tôi có cái gì 129 00:06:18,081 --> 00:06:20,200 gọi là Select, mà chỉ là một trình đơn thả xuống 130 00:06:20,200 --> 00:06:22,150 với một loạt các tùy chọn khác nhau. 131 00:06:22,150 --> 00:06:26,150 Và rõ ràng khi mà thay đổi, khi các tùy chọn đã được lựa chọn có 132 00:06:26,150 --> 00:06:30,600 thay đổi, tôi sẽ gọi một số chức năng cs50Info, 133 00:06:30,600 --> 00:06:33,190 và sau đó tôi sẽ vượt qua trong this.value, 134 00:06:33,190 --> 00:06:35,740 nơi này đề cập đến mà tùy chọn đã được lựa chọn, 135 00:06:35,740 --> 00:06:39,820 và giá trị là một trong những ở đây, tùy chọn value = bằng trống rỗng ", Blumberg," 136 00:06:39,820 --> 00:06:42,610 "Bowden," "chan", và "Malan." 137 00:06:42,610 --> 00:06:45,090 >> Vì vậy, những gì có thể thực sự xảy ra ở đây khi tôi làm điều này? 138 00:06:45,090 --> 00:06:48,800 Vâng, chúng ta hãy nhìn vào blumberg.html. 139 00:06:48,800 --> 00:06:51,330 140 00:06:51,330 --> 00:06:53,924 Hình như nó chỉ là một đoạn của một số Html. 141 00:06:53,924 --> 00:06:56,090 Và trên thực tế, những gì tôi hy vọng sẽ xảy ra ở đây 142 00:06:56,090 --> 00:07:00,020 là tôi đang đi để có thể cắm Html này trực tiếp vào trang web của tôi 143 00:07:00,020 --> 00:07:02,970 mà không cần phải tải lại trang, như vậy mà khi 144 00:07:02,970 --> 00:07:07,510 Tôi chọn Hannah từ trình đơn thả xuống menu, thông tin về Hannah, 145 00:07:07,510 --> 00:07:11,100 Đặc biệt, thông tin này ở đây trong blumberg.html, 146 00:07:11,100 --> 00:07:12,574 là những gì thể hiện trên trang. 147 00:07:12,574 --> 00:07:13,740 Và tôi không cần phải làm mới. 148 00:07:13,740 --> 00:07:16,842 Và nếu tôi đã chọn một người khác, thông tin của họ sẽ hiện lên. 149 00:07:16,842 --> 00:07:17,550 Làm thế nào để tôi làm điều này? 150 00:07:17,550 --> 00:07:20,290 Một lần nữa, điều này đòi hỏi chúng tôi sử dụng một số AJAX. 151 00:07:20,290 --> 00:07:22,540 Và như vậy, chúng tôi sẽ mở ajax.js. 152 00:07:22,540 --> 00:07:25,550 Và đây là chức năng đó, cs50Info. 153 00:07:25,550 --> 00:07:27,410 Nếu tên là gì, tôi quay trở lại. 154 00:07:27,410 --> 00:07:31,450 Tôi sẽ không để làm gì nếu sự lựa chọn sản phẩm nào đã được chọn. 155 00:07:31,450 --> 00:07:35,420 Nếu không, tôi sẽ tạo ra một XMLHttpRequest mới. 156 00:07:35,420 --> 00:07:39,020 Và sau đó tôi sẽ nói, khi thay đổi readyState, gọi chức năng này. 157 00:07:39,020 --> 00:07:43,630 >> Và nếu là readyState 4 và tình trạng này là 200, 158 00:07:43,630 --> 00:07:45,740 đây là một chút của jQuery trên dòng 13. 159 00:07:45,740 --> 00:07:50,450 Nhưng tất cả tôi đang làm là nói, thay đổi nội dung của infodiv 160 00:07:50,450 --> 00:07:57,820 được bất cứ điều gì tôi đã trở lại như một phản ứng từ HttpRequest của tôi. 161 00:07:57,820 --> 00:07:59,590 >> HttpRequest của tôi là gì? 162 00:07:59,590 --> 00:08:02,020 Vâng, đó là đúng đây trên dòng 18 và 19. 163 00:08:02,020 --> 00:08:08,550 Dòng 18, tôi về cơ bản chuẩn bị một GET yêu cầu cho tên + .html. 164 00:08:08,550 --> 00:08:11,170 Và một lần nữa, tên ở đây là lập luận rằng đã 165 00:08:11,170 --> 00:08:14,280 thông qua tại như một tham số để cs50Info. 166 00:08:14,280 --> 00:08:18,460 >> Vì vậy, về cơ bản, tôi đi qua trong một ai đó tên, đó là tập hợp các tùy chọn 167 00:08:18,460 --> 00:08:22,980 mà chúng ta đã thấy trong các trình đơn thả xuống trong biểu mẫu. 168 00:08:22,980 --> 00:08:24,450 Tôi nhận được tên đó. 169 00:08:24,450 --> 00:08:29,530 Và tôi nói rằng tôi sẽ như bạn để xin vui lòng cho tôi có được file.html rằng, 170 00:08:29,530 --> 00:08:31,020 và sau đó gửi yêu cầu đó. 171 00:08:31,020 --> 00:08:34,820 >> Và như vậy có nghĩa là sẽ onreadystatechange để được lắng nghe và chờ đợi và chờ đợi 172 00:08:34,820 --> 00:08:39,460 và chờ đợi, cho đến khi readyState là 4, và tình trạng này là 200. 173 00:08:39,460 --> 00:08:44,970 Vì vậy, nó đã sẵn sàng để được phục vụ, và các yêu cầu đã thành công. 174 00:08:44,970 --> 00:08:49,500 Và sau đó nếu nó được, nó sẽ thay đổi nội dung của infodiv 175 00:08:49,500 --> 00:08:53,030 được văn bản trả lời rằng tôi đã trở lại. 176 00:08:53,030 --> 00:08:54,930 >> Vì vậy, chúng ta hãy xem cách này thực sự có thể làm việc. 177 00:08:54,930 --> 00:08:58,860 Vì vậy, chúng ta sẽ đi qua để trình duyệt của tôi cửa sổ, và chúng tôi sẽ xem xét ở đây. 178 00:08:58,860 --> 00:09:01,359 Vì vậy, chúng ta hãy nhìn vào những gì đang xảy ra ở đây trong AJAX. 179 00:09:01,359 --> 00:09:03,400 Vì vậy, chúng tôi sẽ chọn ai đó từ trình đơn thả xuống. 180 00:09:03,400 --> 00:09:06,079 Vì vậy, trong trường hợp này, chúng ta hãy chỉ cần chọn Hannah. 181 00:09:06,079 --> 00:09:08,120 Và thông báo rằng Hannah thông tin đã thay đổi, 182 00:09:08,120 --> 00:09:11,030 nhưng tôi đã không có any-- của tôi Trang đã không hoàn toàn tải lại. 183 00:09:11,030 --> 00:09:12,190 Các công cụ ở lại. 184 00:09:12,190 --> 00:09:13,320 Hầu hết các công cụ ở lại. 185 00:09:13,320 --> 00:09:14,320 AJAX thử nghiệm đã không thay đổi. 186 00:09:14,320 --> 00:09:16,700 Các nút riêng của mình, điều này trình đơn thả xuống không thay đổi. 187 00:09:16,700 --> 00:09:18,260 Nhưng thông tin có đã thay đổi. 188 00:09:18,260 --> 00:09:20,218 Và tùy thuộc vào cách nhanh chóng di chuyển máy tính của tôi, 189 00:09:20,218 --> 00:09:24,430 bạn thực sự có thể thấy rằng nội dung biến mất và sau đó lại xuất hiện thực sự 190 00:09:24,430 --> 00:09:24,930 cách nhanh chóng. 191 00:09:24,930 --> 00:09:27,320 Đó là nội dung được xóa từ infodiv, 192 00:09:27,320 --> 00:09:29,940 và sau đó thay thế bằng một yêu cầu không đồng bộ mới. 193 00:09:29,940 --> 00:09:34,410 >> Vì vậy, nếu tôi chuyển đổi nó để được nói, Rob-- và một lần nữa, có một cái nhìn, 194 00:09:34,410 --> 00:09:38,379 và có lẽ chúng ta sẽ thấy nó thực sự biến mất và xuất hiện trở lại một cách nhanh chóng. 195 00:09:38,379 --> 00:09:38,920 Bạn thấy điều đó? 196 00:09:38,920 --> 00:09:41,400 Làm thế nào nó chỉ xuất hiện đi, và sau đó nó nạp lại? 197 00:09:41,400 --> 00:09:43,640 Đó là yêu cầu AJAX loại diễn ra. 198 00:09:43,640 --> 00:09:46,060 Và do đó, tùy thuộc vào người mà tôi chọn lựa thì tôi 199 00:09:46,060 --> 00:09:50,690 làm cho một không đồng bộ khác nhau yêu cầu đến một tập tin khác nhau 200 00:09:50,690 --> 00:09:52,730 mà tôi có trên máy chủ của tôi. 201 00:09:52,730 --> 00:09:55,550 Và nội dung của tôi infodiv được cập nhật, 202 00:09:55,550 --> 00:09:58,457 trên cơ sở đó những điều đó tôi đã chọn. 203 00:09:58,457 --> 00:10:00,040 Vì vậy, đó là thực sự tất cả để có AJAX. 204 00:10:00,040 --> 00:10:04,090 Nó cho phép chúng ta thực hiện những bất đồng bộ yêu cầu, cập nhật vào một trang. 205 00:10:04,090 --> 00:10:06,450 Mà không cần phải làm mới toàn bộ trang, 206 00:10:06,450 --> 00:10:08,520 chúng tôi đang đi để có được mới nội dung từ nó bằng cách làm 207 00:10:08,520 --> 00:10:11,170 một yêu cầu tươi mới cho các máy chủ. 208 00:10:11,170 --> 00:10:13,420 Và như vậy, chúng tôi có thể trở thành trang khá năng động hơn. 209 00:10:13,420 --> 00:10:15,128 >> Và khi chúng tôi nhận được nhiều hơn và nhiều hơn nữa nâng cao, bạn 210 00:10:15,128 --> 00:10:17,700 có thể có được những thứ như nói, hộp thư đến email của bạn, 211 00:10:17,700 --> 00:10:19,850 nơi mà bạn không phải làm gì cả. 212 00:10:19,850 --> 00:10:22,560 Bạn không cần phải bấm vào một trình đơn thả xuống hoặc bấm vào bất cứ điều gì, 213 00:10:22,560 --> 00:10:25,920 và tất cả của một đột ngột, mới nhất của bạn email xuất hiện ở đầu trang. 214 00:10:25,920 --> 00:10:27,840 Đó cũng chỉ là một yêu cầu Ajax. 215 00:10:27,840 --> 00:10:30,460 Ajax được yêu cầu của bạn máy chủ, máy chủ email, 216 00:10:30,460 --> 00:10:33,360 để gửi qua tất cả các thông tin về email mới nhất của bạn, 217 00:10:33,360 --> 00:10:38,110 và thay đổi những gì bạn thấy trên màn hình để được tập mới nhất của các email của bạn. 218 00:10:38,110 --> 00:10:41,080 Và nếu bạn có một cái mới trong ở đó, sau đó nội dung của div đó 219 00:10:41,080 --> 00:10:44,580 sẽ thay đổi để phản ánh các nội dung được cập nhật. 220 00:10:44,580 --> 00:10:45,480 Tôi Doug Lloyd. 221 00:10:45,480 --> 00:10:47,500 Đây là CS50. 222 00:10:47,500 --> 00:10:49,229