Iframes جعل مناسبة النقل لغير تزامني يدعو لانها تستطيع حمل مضمون دون التسبب في كامل لاعادة تحميل الصفحه ، وiframe عناصر جديدة يمكن ان تنشأ باستخدام جافا سكريبت. أجمل صفة عن iframe هو ان شكلا من اشكال يمكن استخدامها على النحو المستهدف واحد ، ان اعادة تحميل iframe بدلا من كامل الصفحه ؛ ويتيح هذا النهج كميات كبيرة من البيانات التي سيتم ارسالها الى الخادم باستخدام وظيفة.
|
|
أحد صعوبة في استخدام iframe بوصفها النقل هو ان الصفحه we're التحميل يحتاج الى لغة تأشير النص الفائق ، وانها تحتاج الى وجود جافا سكريبت onload الحدث المعالج ليخبر الام الوثيقة عندما فعلت للتحميل. هذه الحاجة الى قوات لجميع الطلبات التي تبذل مع iframes المطلوب ادخالها على الصفحات المصممه للتعامل مع طلبات iframe. (يمكن أن المدونه ليست مجرد وجود المسكه button_url في الطريقة التي تسمح مدعوم.)
علما ان استخدام iframes لديها عدد من تقييدات أخرى :
ميزة واحدة ان iframe وقد مر مدعوم هو انه يمكن ان تستخدم لجعل يرسل الملف. متصفح بسبب القيود الامنية ، الا مستخدم الاجراءات ، مثل النقر على اي شكل ، يمكن ان تتفاعل مع الملفات المستخدم على الآلة. وهذا يجعل استهداف شكلا من أشكال الى iframe الخيار الوحيد لملف يرسل التي لا تنطوي على اي شكل طبيعي بعد انتهاء الدورة واعادة تحميل الصفحه. ومع ذلك ، فليس هناك سبب لا يمكنك ان تعود الى استخدام iframe للملف يرسل ومدعوم لبقية الطلبات الخاصة بك اجاكس. الا اذا انت جعل الناءيه كتابة - تطلب الى اسلوب اجاكس ، تعمل في جميع انحاء iframe القيود سيضيف قدرا كبيرا من العمل لاجاكس اي مشروع انمائي.
للحصول على أقصى قدر من التوافق مع المتصفحات القديمة ، أنت فقط يمكن ان تضاف الى حسابك iframe لغة تأشير النص الفائق واعطائها حجم 0x0. (لا يمكنك أن تخفي قلقها للتو ، او بعض المتصفحات لن حمل عليه.) بيد ان هذا النهج ليس مرنا ، بحيث انك سوف ترغب فى انشاء اطار دينامي. ليس كل كبار السن document.createelement دعم المتصفحات ، المتصفحات ولكن دون ان الدعم سوف عموما تفتقر الى الديناميه الاخرى القدرات اللازمة لاستخدام البيانات you're التحميل ، ولذا فمن الافضل لتقديم الدعم لهم مع ساكنة لغة تأشير النص الفائق نسخة من الصفحه. في المثال التالي ، يكون منشأ باستعمال iframe innerhtml لانه أبسط من خلق وهو باستخدام اساليب دوم. علما ، بيد انه يمكن ايضا ان تنشأ مع document.createelement ، تماما مثل الذي div الى انه يجري اضاف :
1 فار rdiv = document.createelement ( 'div') ؛
2 rdiv.id = 'remotingdiv' ؛
3 فار اسلوب = 'الحدود : 0 ؛ عرض : 0 ؛ الطول : 0 ؛ '؛
4 rdiv.innerhtml = " "؛
6
7 document.body.appendchild (rdiv) ؛
إذا أردت ان تصنع سوى الحصول على الطلب ، يمكنك تغيير القيمه للiframe 'ssrc الممتلكات ، ولكن لتفعل ما بعد ، وانت بحاجة الى استخدام اي شكل من اشكال المستهدفة. احصل ليس حلا جيدا لاجاكس تطلب ذلك لسببين : انها يمكن ان ترسل سوى كمية محدودة من البيانات (مبلغ ان التغييرات اعتمادا على المتصفح) ، ويمكن الحصول على نسخة مخباه و / أو محمل بالوكاله لخدمة الشبكه ، بحيث انك ابدا نريد أن نستخدمه لأداء عمل مثل تحديث قاعدة البيانات الخاصة بك.
باستخدام شكل مع iframe سيكون أمرا سهلا. مجرد شكل للمجموعة المستهدفة صفه ، وعندما ترسل شكل ، ونتيجة الاحمال في iframe. المثال التالي يخلق لنا شكل ويحدد اهدافه الى iframe انشأنا في وقت سابق في "خلق iframe الخفيه" قسم من هذه المادة :
1 rdiv.form = document.createelement ( 'شكل') ؛
2 rdiv.form.setattribute ( 'الهوية' ، رقم تعريف + 'remotingform') ؛
3 rdiv.form.setattribute ( 'العمل' ، العنوان) ؛
4 rdiv.form.setattribute ( 'الهدف' ، معرف) ؛
5 rdiv.form.target = الهوية ؛
6 rdiv.form.setattribute ( 'طريقة' ، 'الوظيفة') ؛
7 rdiv.form.innerhtml = ' 8 معرف = "' + معرف + 'البيانات"> '؛
والطريقة الوحيدة لمعرفة ان محتوى iframe للتحميل هو ان يكون محتوى الصفحه تدير بعض جافا سكريبت أن يشعر الوالد في الصفحه التي iframe راسخه. وأبسط طريقة لتحقيق ذلك هى وضع الحدث onload المعالج على وثيقة انت التحميل. وهذا القيد يعني انك لا تستطيع استعمال iframe اجراء تعسفي لتحميل المحتوى مثل يمكنك مع مدعوم. ومع ذلك ، فهو لا يزال مفيدا للحالات التي في صفحة واحدة خادم يجري بالفعل يستخدم كعنصر اجاكس البوابه. هنا مثال onload :
<هيئة onload = "parent.document.callback (النتيجة)">
كامل مثلا من اجاكس iframe ان تطلب تتضمن شقين : قطعة. اول قطعة هو العميل - الجانب مدونة لتهيئة iframe والشكل. القطعه الثانية هو خادم جنب المدونه ، التي تستعد بعض البيانات وترسله الى الوراء الى الوثيقة الاصليه في دورته onload الحدث المعالج.
الجزء الاول من ذلك مثلا (قائمة 1) هو جافا سكريبت المدونه في ملف بسيط لغة تأشير النص الفائق. هذه الصفحه تستخدم لاختبار ؛ فان مجرد وظيفة اتصال معاكس تنبيهات مضمون النتائج. الجزء الثاني من مثال (تسجيل 2) هو بسيط بي. اتش. بى النصي ، والتي تأخذ البيانات من وظيفة وترسله الى الوراء الى الوثيقة الاصليه. تقديم مساهمه مفيدة النظام ، كما انك قد تريد ادراج بعض المتغيرات الاضافيه في شكل ، والذي من شأنه ان يخبر بي. اتش. بى المدونه ماذا تفعل مع بتحميلها البيانات ، او إذا كنت قد يعرض للمنطق مباشرة في كتابتها واستخدام مختلف الصفحه المستهدفة لل كل مهمة اردت انجاز.
قائمة 1. اجاكس تقديم طلب استخدام iframe
| 1 2 3 |