أجهزة الكمبيوتربرمجة

أياكس - أمثلة على ذلك. مخطوطات اياكس

وتتيح شبكة الإنترنت للزائر رؤية كل الموارد التي يتم استضافتها في الشبكة، ومتصفح - الوصول عبر بروتوكولات الشبكة، وآليات دعوة من الكتابات الفردية، نقل / استقبال المعلومات. مجموعة من الصفحات التي تشكل الموقع، له جذر مشترك - وصلة فريدة من نوعها (اسم المجال، عنوان عقدة فريد).

بغض النظر عن يستجيب المورد إلى زيارة ثابت أو حيوي يولد استجابة. حتى لو كان شكل ومضمون الصفحات يعتمد على أي شروط، وحدة لا تتجزأ خادم الاتصالات والعميل (المستعرض) هو الوثيقة النهائية ترميز HTML والصور وأوراق الأنماط، وغيرها من الملفات المحتوى والبيئة اللازمة. إذا كان هناك شيء خاطئ، يعرض المتصفح كل ما هو "نجح" للحصول على تحليل وتنفيذ.

ظهرت العديد من التقنيات الواعدة لفترة طويلة، ولكن قد نسي ظلما أو لم تستخدم بشكل صحيح. AJAX الأول (أمثلة استخدام الكائن مدعوم) ظهرت منذ سنوات عديدة، ولكن النجاح والشهرة وجاء في وقت لاحق من ذلك بكثير.

الكل أو ما تحتاج إليه فقط

في الإصدار الكلاسيكي للموقع - اسم وعنوان IP وصلة (كل المترادفات تعيين نفس النقطة في الفضاء الإنترنت). ما يكمن وراء هذه الصفحة الرئيسية - فكر: من تلقاء أنفسهم إلى "مصمم" الحديثة، والتي حتى لم نسأل لماذا كان الأمر كذلك؟ لماذا هذا الموقع هو صفحة الرئيسية التي يمكنك من خلالها الوصول إلى أي شيء آخر؟ هذا الخيار - واضح ليس مثاليا، بل هو المضمون المحدد والوظائف الفعلية.

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

ولكن هنا في موقع عادة محملة دائما في ذخيرة كاملة، لم يتغير شيء على تحميل، مع الأخذ بعين الاعتبار الوقت أن شخصا ما قد حان ... ولكن حتى في الحالة التي يكون فيها هو عيادة الحياة الحقيقية، وهي المرة الأولى التي تزور عميل جديد لإعطاء ما يكفي من صفحة المعلومات وجهات الاتصال و... يمكن توفير التسجيل النافذة التي تم إجراء زيارة للموقع خلال خارج ساعات، على النحو الذي يحدده الطبيب غير متوفرة، يتم التعيين المؤقت في مكتب آخر ...

نقطة في الفضاء الإنترنت

رد كلاسيكية من الموارد في الفضاء الإنترنت - ردا على طلب لإصدار صفحة موقع (عادة المنزل)، ثم من جهة أخرى، بناء على طلب من الزائر. يحتوي الموقع Server أيضا الصور والأساليب، والرموز، ومخطوطات جافا سكريبت، PHP، وهلم جرا ليست كل ملفات PHP تفعل صفحات، وبعضها يمكن أن تستجيب لطلبات AJAX: لتلقي ومعالجة وإرسال المعلومات.

كتابة السيناريو مبكرة. ولكن الحصول على نقطة السيطرة في الفضاء الإنترنت، فمن المستحيل تحديد الذين ولأي سبب تناولها، الذي يتم تفعيلها هو اسم وعنوان IP والارتباط. أي حركة على الشبكة تجري في البرنامج، وذلك أساسا من خلال متصفح، ولكن أيضا من خلال الروبوتات من أصل مختلف والمقصد، من خلال الإجراءات من المواقع الأخرى.

النصي، السيطرة، ويمكن معرفة بدقة فقط: زيارة من خلال ما جاء متصفح الزائر، مع إشارة منه IP عناوين، ووجود الكوكيز. هذه الأخيرة فقط يمكن أن توفر معلومات عن تشكيل الصفحة الرئيسية، ولكن فقط إذا كان الزائر قد بالفعل هنا. في جميع الحالات الأخرى فمن الممكن أن يولد إلا الاستجابة العامة من الخادم. AJAX-الأمثلة التي يسهل العثور عليها على شبكة الإنترنت، وينبغي أن تستخدم بعناية. أخطاء في (استخدام) الكائن مدعوم تتبع ليست سهلة.

الاستجابة الشاملة والحوار الخاص

الاستجابة الشاملة من خادم - صفحة مشتركة، ويشار إلى مبدأ ما يسمى مؤشر، وأنه يبدأ مع الموقع الذي هو على خلاف مع وصلات لصفحات أخرى متاحة. ومع ذلك، إذا كان الزائر يعرف أسماء الصفحات الأخرى، فهي في فهمه لن يكون أقل أهمية من واحد يعين المطور. هنا هو النموذج الكلاسيكي، في كل مرة: التصميم العام والوظائف التي تركز على جميع الزوار.

حوار خاص - استمرارا للدورة السابقة للزائر. الموقع يعرف بالفعل ما فعله، وأنه كان مهتما في ما كان ينظر الصفحة ووضعها في ذاكرته، وكتب شيئا في متصفح ملفات تعريف الارتباط.

وهي تستخدم اثنين الطلب الأساسي إلى خادم لتحميل الموقع والعمل معه: POST و GET. نتيجة الاستعلام صفحة كاملة. في الصفحة التي تظهر، يمكن للزائر أن تفعيل هذه أو غيرها من الأحداث التي تم تكوينها على العمل من العناصر صفحة معينة.

عناصر صفحة الأحداث

عنصر صفحة يمكن أن يكون المفتاح للعثور على المعلومات، وهذا يعني - لأخذ محتويات حقل النص وجدوا انه كتب زائر. يمكن أن يحدث هذا الحدث على عنصر القائمة، الصورة، مربع النص. في أي حال، وجافا سكريبت وظيفة سيتم تشغيل، التي يمكن أن تؤدي AJAX-طلب على النحو التالي:

InitXML ( '../ Mphp / scSrvPhpWord.php؟ CTask = GoPage' + '& cOwnerCode =' + cOwnerCode
+ 'وCSessionCode =' + cSessionCode + '& cActiveItem =' + cActiveItem)؛

وهكذا يعرف InitXML () وظيفة على النحو التالي (وصفها متغير فار scXHR خارج وظيفة):

وظيفة InitXML (scURL) {

scXHR = فارغة؛

إذا (window.XMLHttpRequest)
{جرب
{ScXHR = مدعوم جديد ()؛
} صيد (ه) {}
} آخر
إذا (window.ActiveXObject)
{المحاولة
{ScXHR = جديد ActiveXObject ( 'Msxml2.XMLHTTP')؛
} صيد (ه)
{جرب
{ScXHR = ActiveXObject الجديد ( 'Microsoft.XMLHTTP')؛
} صيد (ه) {}
}
}
إذا (scXHR)
{
scXHR.open ( 'يحصل، scURL)؛
scXHR.onreadystatechange = WaitReplySC.
scXHR.send (خالية)؛

}

هذه الوظيفة يأخذ URL ويبادر بطلب لذلك. والجواب متزامنة تأتي في أقرب وقت ستفي السيناريو المحدد في URL (في هذه الحالة - scSrvPhpWord.php، وتقع في مجلد ../Mphp/ نسبة إلى جذر الموقع)، وسوف تبدأ WaitReplySC وظيفة ()، والذي يذهب إلى إدخال خادم XML-ردا على ذلك، بما في ذلك العنوان والمحتوى.

استجابة الخادم

في الواقع كان الملقم PHP النصي - وهو البرنامج الذي يبدأ مع تركيب الشروط الأساسية، تحميل التسهيلات اللازمة، قبل العلاج، والذي يعتمد على أغراض المطور:

مساحة PhpOffice \ PhpWord.

ini_set ( 'display_errors'، 1)؛
error_reporting (E_ALL ^ E_NOTICE)؛

ignore_user_abort (صحيح)؛
set_time_limit (12)؛

استخدام PhpOffice \ PhpWord \ MphpObj \ scDocuments.

require_once 'PhpOffice / PhpWord / Autoloader.php'؛
\ PhpOffice \ PhpWord \ الملقم الآلي :: التسجيل ()؛

يمثل بداية لعلامة تشير إلى أي أخطاء، يحظر إيقاف البرنامج النصي عند قيام المستخدم بتسجيل الخروج ويحدد سقفا زمنيا على أداء حالة حلقة - 12 ثانية. القادمة مكتبة الارتباط PhpOffice \ PhpWord للمستندات * دوكإكس.

كما هو مبين أعلاه AJAX-التحدي ( '... cTask = GoPage' + '& cOwnerCode =' + cOwnerCode + '& cSessionCode =' + cSessionCode + '& cActiveItem =' + cActiveItem) - للمتغيرات GET الأربعة، التي قد لا تكون يجب أن تحقق من توافر الفعلي:

$ CTask = (isset ($ _ GET [ 'cTask']))؟ $ _GET [ 'cTask']: ''؛
$ COwnerCode = (isset ($ _ الحصول على [ 'cOwnerCode']))؟ $ _GET [ 'cOwnerCode']: ''؛
$ CSessionCode = (isset ($ _ الحصول على [ 'cSessionCode']))؟ $ _GET [ 'cSessionCode']: ''؛
$ CActiveItem = (isset ($ _ الحصول على [ 'cActiveItem']))؟ $ _GET [ 'cActiveItem']: ''؛

بعد أداء يقرر سيناريو العمل التحضيري:

التبديل ($ cTask) {

حالة 'GoPage': // (وهذا هو التحدي أثناء التحميل الأولي أو تحديث الصفحة)

$ COwnerCode = 'cOwner'؛
$ CSessionCode = 'cSession'؛
$ CContents = 'cContents'؛
$ CStatus = 'cStatus'؛
$ CHTML = يكونف ( 'UTF-8'، 'CP1251'، 'الترميز عنصر ")؛
$ CActiveItem = يكونف ( 'UTF-8'، 'CP1251'، 'المتغيرات')؛

$ CReply = "scSrvRM | GoPage | مجموعة | {$ cOwnerCode}` {$ cSessionCode} | {$ cContents} `{$ cStatus} | {$ CHTML} | {$ cActiveItem}".

كسر.

}

والجزء الأخير من البرنامج النصي:

رأس ( "نوع المحتوى: نص / XML، يقبل محارف = UTF-8")؛
رأس ( "ذاكرة التخزين المؤقت-التحكم: لا ذاكرة التخزين المؤقت")؛
صدى '<نسخة أكس = "1.0" ترميز = "UTF-8"؟>'؛
$ CReply = يكونف ( 'CP1251'، 'UTF-8'، $ cReply)؛ // التحويل من 'CP1251' في 'UTF-8'
صدى $ cReply.

الحصول على استجابة العملاء

على الصفحة التي يتم تحميلها في المتصفح، وتبين أنه بمجرد خادم ستعد ردا على ذلك، سوف تتم معالجتها وظيفة WaitReplySC:

تعمل WaitReplySC () {

محاولة {

إذا (scXHR.readyState == 4) {
إذا (scXHR.status == 200) {// معالجة استجابة

فار TestReply = scXHR.responseText.

إذا (( 'خطأ في التحليل "TestReply.indexOf ()> 0) ||
(TestReply.indexOf ( 'ملاحظة')> 0)) تنبيه (scXHR.responseText)؛

فار CDATA = scXHR.responseText.
فار ADATA = cData.split ( '|')؛

فار cCmd = ADATA [1]؛
فار بمخططات البرامج القطرية = ADATA [2].
فار aOwnerSession = ADATA [3] .split ( ' `')؛
cOwnerCode = aOwnerSession [0]؛
فار cSessionCode = aOwnerSession [1]؛
فار aContentStatus = ADATA [4] .split ( ' `')؛
فار cContent = aContentStatus [0]؛
فار cStatus = aContentStatus [1]؛
فار من cHTML = ADATA [5]. // الخادم HTML الاستجابة
cVarValues فار = ADATA [6]. // المتغيرات لأشكال

التبديل (cCmd) {

حالة 'GoPage':

فار dTestLine = document.getElementById ( 'scTestLine')؛
dTestLine.innerHTML = 'رد = [' + cOwnerCode + '،'
+ CSessionCode + '،'
+ CContent + '،'
+ CStatus + '،'
+ CHTML + '،'
+ CVarValues + ']'؛

كسر.
}

} {شيء آخر
. Document.getElementById ( 'scAreaStatus') HTML داخلي = "خطأ!".
}
}
} صيد (ه) {}

}

وهكذا، وذلك باستخدام AJAX-الأمثلة، يتم تحميل الصفحة في المتصفح الحصول على (في عنصر scTestLine):

الرد = [cOwner، cSession، cContents، cStatus، عناصر ترميز قيم المتغيرات]

على التمثيل من التعليمات البرمجية، مسج وورد

الصفحة في المتصفح والنص النص المكتوب في UTF-8، من أجل وظيفة استخدام يكونف () لتحويل الحروف الروسية. بقية الهيكل العظمي الذي يمثله رمز بسيط جدا، ويمكن أن تتكرر بسهولة لأي غرض معين.

قابلة للتغيير فقط في استجابة خادم تجهيز وظيفة WaitReplySC () ورمز البرنامج النصي الفعلي الذي يولد استجابة. توضع يدعو ظيفة InitXML (للوجه الخصوص scURL والبيانات ذات الصلة إلى ذلك) في معالجات الأحداث على عناصر الصفحة وتحديد معنى هذه العناصر.

الأمثلة المعروضة من AJAX المنحى إلى "دليل" على استخدام التكنولوجيا.

في مختلف نظام إدارة المحتوى وصفها (SMS) قدرات بطرق مختلفة، وكقاعدة عامة، في أسلوب خصوصية معينة. على سبيل المثال، تتحقق الاحتمالات دعوة مسج AJAX jQuery.ajax () وظائف في أي مستوى أعلى: jQuery.get () وjQuery.post (). تنتقل المعلمة رابط والإعدادات (مجموعة من أزواج قيمة + مفتاح). jQuery.ajax () إرجاع مدعوم وجوه.

مسج لتتبع نتائج الوظائف الأساليب المقترحة: XHR.done () - النجاح في إنجاز الطلب. XHR.fail () - معالجة الأخطاء.

jqXHR.done () طريقة yavlyatsya معالج بديل الانتهاء بنجاح من AJAX-الطلب. يستبدل طريقة قديمة jqXHR.success ().

وبالمثل، فإن استخدام وورد AJAX التكنولوجيا. هنا، كل شيء قد زرع نفسها في نظام إدارة المحتوى، تحتاج فقط إلى استخدام الهيكل المقترح. قدمت وثائق وصفا مفصلا.

AJAX تطبيق يعتمد أساسا على الأدوات المختار، على الرغم من أن النسخة اليدوي يمكن استخدامها بالتوازي أو بالإضافة إلى نظام إدارة المحتوى المحدد، أو نسخة أخرى من مسج. وهذا الأخير هو مفيد للعمل من تلقاء نفسها، لأن كل SMS الحديث ما يقرب من استخدامه، ولكن كل بطريقته الخاصة.

والمثال الكلاسيكي للتطبيق

الاستخدام البسيط والأسي AJAX - سلة متجر على الانترنت. تمتلئ صفحات متجر دائما مع السلع، وإن كان في الواقع قد لا يكون. إعادة عادة ما يستغرق وقتا طويلا، ولكن عندما يقوم زائر يختار المنتج، وانه يمكن دائما التخلي تماما عليه أو تغيير اختيار واحد، أن الموقع غير مرغوب فيه دائما لعرضه بسرعة.

وعادة ما أدركت أنها في شكل سلال وعلامات حول العناصر المحددة. من دون استخدام AJAX التغيير الديناميكي لهذه العناصر هو إشكالية.

AJAX بين النصوص التي تنفذ آليات لإضافة / إزالة العناصر إلى عربة التسوق، أصبح بحكم الأمر الواقع في كثير من SMS.

لنقل البيانات العادي من خلال شكل AJAX قد شكلت بطريقة تقليدية (لإدخال اسم وكلمة المرور):

<نموذج اسم = 'fWelcome "العمل = ال index.php طريقة =' آخر '>

الاسم:
كلمة السر:
<نوع الإدخال = 'النص' اسم = قيمة 'CNAME' = '' معرف = '' عنوان = 'scWelcomeField اسم' أسلوب = "اليسار: 56px؛ أعلى: 8px؛ ">
<نوع الإدخال = 'النص' اسم = 'cPass "القيمة =' 'معرف =' 'عنوان =' scWelcomeField كلمة" أسلوب = "اليسار: 56px؛ قمة: 31px؛ ">


تسجيل

هنا معالج:

تعمل scfWelcomeGo () {

فار CNAME = document.fWelcome.cName.value.
فار cPass = document.fWelcome.cPass.value.

InitXML ( '../ Mphp / scSrvPhpWord.php؟ CTask = CheckWelcome "
+ 'وملف CName =' + CNAME
+ 'وCPass =' + cPass)؛

}

فإنه ينقل إلى خادم للتحقق من صحة اسم الزائر وكلمة المرور. السيناريو يتحقق المعلومات الواردة في الجدول المستخدم، ويرسل إلى الخلف ردا على أساسها يعرض النصي ذات الصلة رسالة على صفحة (ينفذ العمل) للمستخدمين المسجلين، أو التقارير التي لا يوجد مثل هذا المستخدم، وتحتاج إلى أن تكون مسجلة.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 ar.birmiss.com. Theme powered by WordPress.