أدت سنوات المنافسة بين المتصفحات المختلفة إلى إنشاء العديد من الأدوات لمساعدة المطورين على إنجاز المهام التي كان من الصعب القيام بها في السابق. الآن، باستخدام برنامج نصي صغير، يمكنك إنشاء تطبيق يربط البيانات بعنصر تحكم المستخدم بحيث يتصل بالخادم من خلال عنصر تحكم مضمن من نوع الوكيل.
في Internet Explorer (IE)، تتضمن هذه الأشياء جزر بيانات XML وكائنات بيانات XMLHTTP التي تُستخدم لربط البيانات بعناصر النموذج، وتُستخدم لإنشاء اتصالات بالخادم داخل الصفحة الحالية دون الانتقال إلى صفحات أخرى والمكالمات غير المتزامنة. سأستخدم هاتين الميزتين سهلتي الاستخدام لإنشاء تطبيق دردشة بسيط، والذي يتكون من بعض صفحات ASP التي تعمل كواجهة مستخدم، وJavaScript لتنفيذ وظائف العميل، وT-SQL لإكمال منطق الأعمال في SQL Server 2000.
يتواصل العميل والخادم باستخدام XML. بعد أن يتلقى خادم الويب مجموعة رسائل، يتم إلحاق مجموعة الرسائل بجدول الرسائل ذو الطابع الزمني في SQL Server. واستنادًا إلى فترة زمنية محددة مسبقًا، سيطلب العميل معلومات محدثة من الخادم، بما في ذلك قائمة الرسائل وقائمة المستخدمين المتصلين الملحقين بقاعدة البيانات منذ آخر مرة طلب فيها معلومات من الخادم.
سيقوم العميل بإرسال كائن XMLHTTP إلى الخادم. يكون الإجراء إما طلبًا لتحديث الرسالة وقائمة المستخدمين، أو إرسال رسالة جديدة. يتم تخزين هذه الإجراءات في جدول يسمى الإجراءات. سوف يستجيب الخادم للطلب المقابل أو يقبل رسالة جديدة ويلحقها بجدول الرسائل.
عندما يستجيب الخادم لطلب رسالة، فإنه يعرض قائمة بجميع الرسائل الجديدة منذ آخر طلب. من أجل تتبع نشاط العميل، أستخدم جدول النشاط الذي يحتوي على تاريخ ووقت نشاط العميل، ويتم تخزين هوية العميل في مقابض الجدول، والتي لها اسم بديهي.
وفيما يلي البرنامج النصي لإنشاء الجدول:
سيتم إكمال جميع عمليات البيانات من خلال الإجراءات المخزنة. سيتم إجراء جميع عمليات ربط البيانات من خلال COM عام يعمل كحلقة وصل بين خادم الويب وSQL Server 2000. يعرض كائن COM طريقة RunSPReturnStream التي أريد استخدامها. المعلمة الأولى لهذه الطريقة هي اسم الإجراء المخزن، والمعلمة الثانية عبارة عن صفيف من صفائف المعلمات. مصفوفة المعلمات عبارة عن مصفوفة بسيطة بالتنسيق التالي: (paraName، paramType، paramLength، paramValue). يعد paramType أحد تعدادات نوع معلمة ADO. صفحة ASP مسؤولة عن قبول الإجراءات وإنشاء الاستجابات، وسأسميها HandleAction.asp.
ستحتوي صفحة الدردشة على منطقة لعرض رسائل الدردشة؛ وهذه المنطقة عبارة عن جدول موجود داخل DIV. يرتبط هذا الجدول بجزيرة بيانات xmlMessages XML. تعرض منطقة أخرى المستخدم الحالي؛ وهذه المنطقة هي أيضًا جدول موجود في DIV، وهو مرتبط بجزيرة بيانات xmlUsers XML. هناك أيضًا TEXTAREA للمستخدمين لإدخال الرسائل.