شبيبة تعليمي

شبيبة المنزل مقدمة شبيبة شبيبة إلى أين إخراج JS بيانات شبيبة بناء جملة JS تعليقات JS متغيرات JS JS Let شبيبة كونست مشغلي JS شبيبة الحساب احالة JS أنواع بيانات JS وظائف JS كائنات JS أحداث شبيبة سلاسل شبيبة طرق سلسلة JS بحث سلسلة JS JS String Templates أرقام شبيبة طرق عدد JS صفيفات JS طرق صفيف JS ترتيب صفيف JS تكرار صفيف JS JS Array Const تواريخ شبيبة تنسيقات التاريخ JS طرق الحصول على تاريخ JS طرق تعيين تاريخ JS شبيبة الرياضيات شبيبة عشوائية شبيبة منطقية مقارنات شبيبة شروط JS مفتاح JS JS Loop For JS Loop For In. شبيبة حلقة JS لـ Of شبيبة حلقة بينما شبيبة استراحة شبيبة تكرارات مجموعات JS خرائط شبيبة شبيبة تايبوف JS نوع التحويل شبيبة Bitwise JS RegExp أخطاء JS شبيبة النطاق رفع JS وضع JS الصارم شبيبة هذه الكلمة دالة سهم JS فئات JS شبيبة شبيبة تصحيح أخطاء JS دليل أسلوب JS أفضل ممارسات JS أخطاء JS أداء JS شبيبة الكلمات المحجوزة

إصدارات JS

إصدارات JS JS 2009 (ES5) شبيبة 2015 (ES6) شبيبة 2016 شبيبة 2017 شبيبة 2018 شبيبة آي إي / إيدج تاريخ شبيبة

كائنات JS

تعريفات الكائن خصائص الموضوع طرق الكائن عرض الكائن موصلي الكائنات منشئو الكائنات نماذج الكائن كائن تكرارات مجموعات الكائن خرائط الكائن مرجع الكائن

وظائف JS

تعريفات الوظائف معلمات الوظيفة استدعاء الوظيفة استدعاء الوظيفة تطبيق الوظيفة عمليات إغلاق الوظائف

فئات JS

مقدمة عن الفصل الوراثة الطبقية فئة ثابتة

شبيبة آسينك

عمليات الاسترجاعات JS شبيبة غير متزامن وعود شبيبة شبيبة Async / انتظار

JS HTML DOM

مقدمة DOM طرق DOM مستند DOM عناصر DOM DOM HTML نماذج DOM DOM CSS الرسوم المتحركة DOM أحداث DOM مستمع أحداث DOM التنقل في DOM عقد DOM مجموعات DOM قوائم عقدة DOM

متصفح JS BOM

نافذة JS شاشة JS موقع JS تاريخ شبيبة شبيبة ملاح تنبيه منبثق لـ JS توقيت شبيبة ملفات تعريف الارتباط JS

JS Web APIs

مقدمة واجهة برمجة تطبيقات الويب واجهة برمجة تطبيقات نماذج الويب واجهة برمجة تطبيقات سجل الويب واجهة برمجة تطبيقات تخزين الويب Web Worker API واجهة برمجة تطبيقات جلب الويب واجهة برمجة تطبيقات تحديد الموقع الجغرافي على الويب

شبيبة أجاكس

مقدمة أجاكس أجاكس XMLHttp طلب AJAX استجابة AJAX ملف AJAX XML أجاكس بي إتش بي أجاكس آسيا والمحيط الهادئ قاعدة بيانات أجاكس تطبيقات أجاكس أمثلة AJAX

شبيبة شبيبة

مقدمة JSON بناء جملة JSON JSON مقابل XML أنواع بيانات JSON تحليل JSON تنسيق JSON كائنات JSON صفائف JSON خادم JSON JSON PHP JSON HTML جسون جسونب

JS مقابل jQuery

محددات jQuery jQuery HTML jQuery CSS jQuery DOM

شبيبة الرسومات

شبيبة الرسومات قماش شبيبة شبيبة بلوتلي JS Chart.js مخطط جوجل JS شبيبة D3.js

أمثلة JS

أمثلة JS JS HTML DOM إدخال JS HTML كائنات JS HTML أحداث HTML متصفح JS محرر JS تمارين شبيبة شبيبة مسابقة شهادة JS

مراجع JS

كائنات جافا سكريبت كائنات HTML DOM


أجاكس - طلب XMLHttp


يتم استخدام كائن XMLHttpRequest لطلب البيانات من الخادم.


إرسال طلب إلى الخادم

لإرسال طلب إلى خادم ، نستخدم الأسلوبين open () و send () XMLHttpRequestللكائن:

xhttp.open("GET", "ajax_info.txt", true);
xhttp.send();
Method Description
open(method, url, async) Specifies the type of request

method: the type of request: GET or POST
url: the server (file) location
async: true (asynchronous) or false (synchronous)
send() Sends the request to the server (used for GET)
send(string) Sends the request to the server (used for POST)

عنوان url - ملف على الخادم

معلمة url الخاصة open()بالطريقة ، هي عنوان لملف موجود على الخادم:

xhttp.open("GET", "ajax_test.asp", true);

يمكن أن يكون الملف أي نوع من الملفات ، مثل .txt و .xml ، أو ملفات البرمجة النصية للخادم مثل .asp و .php (والتي يمكنها تنفيذ إجراءات على الخادم قبل إرسال الاستجابة مرة أخرى).


غير متزامن - صحيح أم خطأ؟

يجب إرسال طلبات الخادم بشكل غير متزامن.

يجب تعيين المعلمة غير المتزامنة للطريقة open () على صحيح:

xhttp.open("GET", "ajax_test.asp", true);

من خلال الإرسال غير المتزامن ، لا يتعين على JavaScript انتظار استجابة الخادم ، ولكن يمكنها بدلاً من ذلك:

  • تنفيذ البرامج النصية الأخرى أثناء انتظار استجابة الخادم
  • تعامل مع الرد بعد أن يكون الرد جاهزًا

القيمة الافتراضية للمعامل غير المتزامن هي غير متزامن = صحيح.

يمكنك إزالة المعلمة الثالثة بأمان من التعليمات البرمجية الخاصة بك.

XMLHttpRequest المتزامن (غير متزامن = خطأ) غير مستحسن لأن JavaScript سيتوقف عن التنفيذ حتى تصبح استجابة الخادم جاهزة. إذا كان الخادم مشغولاً أو بطيئًا ، فسيتوقف التطبيق أو يتوقف.


احصل أو انشر؟

GETأبسط وأسرع من POST، ويمكن استخدامه في معظم الحالات.

ومع ذلك ، استخدم دائمًا طلبات POST عندما:

  • الملف المخزن مؤقتًا ليس خيارًا (تحديث ملف أو قاعدة بيانات على الخادم).
  • إرسال كمية كبيرة من البيانات إلى الخادم (POST ليس له قيود على الحجم).
  • إرسال إدخال المستخدم (الذي يمكن أن يحتوي على أحرف غير معروفة) ، يعد POST أكثر قوة وأمانًا من GET.

طلبات GET

طلب بسيط GET:

مثال

xhttp.open("GET", "demo_get.asp");
xhttp.send();

في المثال أعلاه ، قد تحصل على نتيجة مخبأة. لتجنب ذلك ، أضف معرفًا فريدًا إلى عنوان URL:

مثال

xhttp.open("GET", "demo_get.asp?t=" + Math.random());
xhttp.send();

إذا كنت تريد إرسال معلومات باستخدام GETالطريقة ، فأضف المعلومات إلى عنوان URL:

مثال

xhttp.open("GET", "demo_get2.asp?fname=Henry&lname=Ford");
xhttp.send();

يتم شرح كيفية استخدام الخادم للإدخال وكيف يستجيب الخادم لطلب ما ، في فصل لاحق.



طلبات POST

طلب بسيط POST:

مثال

xhttp.open("POST", "demo_post.asp");
xhttp.send();

لنشر بيانات مثل نموذج HTML ، أضف رأس HTTP مع setRequestHeader(). حدد البيانات التي تريد إرسالها send()بالطريقة:

مثال

xhttp.open("POST", "ajax_test.asp");
xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhttp.send("fname=Henry&lname=Ford");
Method Description
setRequestHeader(header, value) Adds HTTP headers to the request

header: specifies the header name
value: specifies the header value

طلب متزامن

لتنفيذ طلب متزامن ، قم بتغيير المعامل الثالث في open()الطريقة إلى false:

xhttp.open("GET", "ajax_info.txt", false);

أحيانًا يتم استخدام عدم التزامن = خطأ للاختبار السريع. ستجد أيضًا طلبات متزامنة في كود JavaScript أقدم.

نظرًا لأن الكود سينتظر اكتمال الخادم ، فلا داعي onreadystatechange لوظيفة:

مثال

xhttp.open("GET", "ajax_info.txt", false);
xhttp.send();
document.getElementById("demo").innerHTML = xhttp.responseText;

XMLHttpRequest المتزامن (غير متزامن = خطأ) غير مستحسن لأن JavaScript سيتوقف عن التنفيذ حتى تصبح استجابة الخادم جاهزة. إذا كان الخادم مشغولاً أو بطيئًا ، فسيتوقف التطبيق أو يتوقف.

يتم تشجيع أدوات المطورين الحديثة على التحذير من استخدام الطلبات المتزامنة وقد تؤدي إلى استثناء InvalidAccessError عند حدوثه.