تنفيذ عربة التسوق باستخدام اياكس

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

  

الحل الأولي

ويوضح ما يلي التسوق سبيل المثال شفرة المصدر.

 المصدر : / / العميل المواد ajaxrest / العمارة / shoppingcart.html  عربة التسوق تهيئة ()"> 

في شفرة المصدر سبيل المثال ، رمز جريئة تمثل قطعة من الوظائف التي تتصل استخدام محدد من UniqueURL. أتش تي أم أل صفحة في السياق العام يمثل الصفحة الأم التي يستعملها الجميع للحصول على سلة التسوق وشراء بعض البنود. عندما يتم تحميل الصفحة ، الحدث body.onload يتم تشغيلها ، مما تسبب في وظيفة تهيئة ليتم استدعاؤها. في تنفيذ تهيئة ، unique.getIt يسمى ، والذي ينتج في موقع الفريد الذي يمثل عربة التسوق.

بإضافة عنوان فريد رمز إلى الحدث body.onload ، وكنت وأكد أن كل من يزور الصفحة أتش تي أم أل سوف يكون في عربة التسوق تحت تصرفها. عنوان الموقع الذي تم إنشاؤه يستخدم كلما مستخدمين النقر على زر والشراء ، مما أدى الى وظيفة تسمى BuyItems. التنفيذ العام للBuyIt ليس مهما ، لأن ما تفعلونه هو نشر تفاصيل الأخير المتبقي لشراء أيا كان المستخدمين قد أضيف إلى عربة التسوق. في مكالمة asynchronous.post الأسلوب ، وعنوان الموقع هو unique.uniqueURL المستخدمة. عند شراء طهر في تنفيذ onComplete ، وuniqueURL عضو بيانات مسح والجديدة ، والتسوق الفريدة عربة رابط يتم استردادها. وتنص المدونة على فهم كيفية استخدام موقع فريد ، ولكن يجب ان نفهم الاعتبارات التالية :

• عندما يكون عنوان فريدة من نوعها ، مثل / pyservices/shopping/cart/122343 ، يتم إرجاع ، العميل بإلحاق معرف / الخروج. باستخدام عنوان nonappended سيتطلب رابط لقبول الوظائف وطلبات للحصول على هياكل البيانات المتعددة ، والتي من شأنها أن تكون غير متوافقة مع بقية. على جانب العميل ، بإلحاق معرف ليست صفقة كبيرة ، ولكن على الخادم ، فإنه لا تصبح مشكلة كبيرة ، كما سيرد بعد قليل.

• المثال أتش تي أم أل صفحة لا تتضمن رمز للبحث وتصفح ، وإضافة عناصر إلى الصفحة أتش تي أم أل. هل يمكن استخدام حلين : حقن محتوى أو بتوقيت جرينتش. المحتوى باستخدام الحقن ، من شأنه أن البنود التسويقي يكون قطعة من أتش تي أم أل البرمجية التي سيتم إضافتها إلى الصفحة الحالية أتش تي أم أل باستخدام الخاصية innerHTML. النهج الآخر هو استخدام iframe العائمة ، والتي تتيح لك عرض منفصل من بنود التسويقي من التلاعب.

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

تتبع عناوين المواقع الفريدة

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

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

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

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

• وعندما يتم تحميل الصفحة ، وتهيئة يتحقق الدالة باستخدام readCookie الدالة لمعرفة ما إذا كان ارتباط مع shoppingcart الاسم موجود. إذا كان تعريف الارتباط موجودا ، ثم أنه ليس من الضروري لخلق ارتباط جديد ، ولكن قيمة الكعكة لابد من تعيين عضو البيانات unique.uniqueURL. إذا كانت كعكة لا وجود له ، فإن ذلك يعني أنه لا يوجد المرتبطة عربة تسوق ، وبالتالي فإن وظيفة unique.getIt احتياجات ليتم استدعاؤها.

• إذا كان ارتباط لابد من استرجاع unique.getIt باستخدام الأسلوب ، ثم عندما يتم إنشاء موقع فريد ، وunique.haveIt الطريقة تسمى. في تنفيذ unique.haveIt ، وshoppingcart كعكة يتم تعيين قيمة العضو بيانات unique.uniqueURL مع انقضاء يومين.

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

وظيفة createCookie (الاسم ، والقيمة ، ويوما) (اذا (أيام) (تاريخ فار = التاريخ الجديد () ؛ date.setTime (date.getTime () + (أيام * 24 * 60 * 60 * 1000) ؛ فار تنتهي = " ؛ تنتهي = "+ date.toGMTString () ؛) فار آخر تنتهي =" "؛ document.cookie = اسم +"="+ قيمة تنتهي + + "؛ مسار = /" ؛) الدالة readCookie (الاسم) (nameEQ فار = اسم + "=" ؛ فار كاليفورنيا = document.cookie.split ('؛')؛ل (فار ط = 0 ؛ ط <ca.length ؛ ط + +) (فار ج = كاليفورنيا [ط] ، بينما (c.charAt (0) == '') ج = c.substring (1 ، c.length) ؛ إذا كان (c.indexOf (nameEQ) == 0) العودة c.substring (nameEQ.length ، c.length) ؛) العودة فارغة ؛) الدالة eraseCookie (الاسم) ( createCookie (اسم ،""،- 1)؛)

رمز جريئة يوضح كيف يمكن للكائن document.cookie يتم التلاعب بها. التلاعب بل هي غريبة تماما وغير تقليدية. في تنفيذ createCookie ، هو خلق منطقة عازلة ، ثم يتم تعيينها لdocument.cookie. عادة ما تكون الاحالة الى عضوا بيانات إعادة تعيين قيمة العضو البيانات. ولا حتى مع بيانات العضو document.cookie. تعيين عضو البيانات إما بإنشاء ارتباط جديد أو يعيد تعيين قيمة من الكعكة الموجودة.

في تنفيذ createCookie ، الأيام المعلمة تعيين الوقت لالكعكة التي يجري إنشاؤها ، مشيرا الى ان الكعكة ستنتهي. إذا كانت كعكة createCookie وظيفة لا ترتبط مع الوقت حتى الآن ، ثم الكعكة ستنتهي في اللحظة التي يتم إغلاق المستعرض. عند قراءة document.cookie عضو البيانات ، وملفات تعريف الارتباط ينطبق على المجال حاليا تحميل وثيقة يتم استردادها. التالية يمكن أن تكون قيمة من document.cookie سبيل المثال :

ج ج = value1 ؛ shoppingcart = / pyservices / التسوق / عربة / toRedirected

قيمة document.cookie هي إشكالية ، لأنها عبارة عن سلسلة تحتوي على الكوكيز متعددة. العثور على ارتباط واحد ، في سلسلة لابد من تحليل. تنفيذ readCookie تلقائيا يدير تحليل واسترداد قيمة لتحديد هوية خاصة الكعكة. eraseCookie وظيفة يستخدم الدالة createCookie لحذف الكوكيز. مرة أخرى ، وهذا هو غير تقليدي ، ولكنه يستخدم وظائف حيث تعيين موعد لانتهاء ارتباط تلقائيا حذف الكوكيز.

مقال مقدم من سونيا Lande


تنويه :موقعنا على الانترنت ليست مسؤولة عن محتوى هذه المادة. Webarticles هو حر للمعلومات.
المهم : هذه المادة "تنفيذ التسوق باستخدام اجاكس" وقد ترجم من قبل البرمجيات التلقائي. نشعر بالاسف من اجل أي الأخطاء الإملائية التي قد حدث. شكرا لتفهمكم.


Online: 298 users browsing the articles directory