يعرف العاملون في مجالات النشر خصوصاً الاعلانات انه يتم تصميم الاعلان المخصص للمجلات اساساً بحجم ورقة A4. ويستبق مصمم الاعلان احتمال نشر اعلانه في مجلة قرر ناشرها ان تختلف مساحة صفحاتها عن مقياس A4، فيدخل في اعلانه مساحات اضافية او يصمم عناصر الصفحة ليسهل تحريكها لذلك يمكن للاعلانات ان تنشر في معظم المجلات في اقل قدر ممكن من التعديلات، ويمكن ان تُنعت بأنها متوافقة عبر المجلات. وينسحب هذا على البرامج والاعلانات المخصصة للبث على التلفزيون فمن المعروف ان هناك وحدة زمنية لطول الاعلان، هي عادة 30 ثانية او قيمة مضاعفة ل30 ثانية كما يجب على مساحة الاعلان او البرنامج ان تخضع للنسبة 4:3 لتلائم شاشة التلفزيون لم يتم بعد فرض مقياس لنسبة 16:9 التي تناسب الاجهزة ذات الشاشات العريضة. ويمكننا القول هنا ايضاً ان البرامج والاعلانات التلفزيونية هي اجمالاً متوافقة عبر الاجهزة. وهناك مقاييس في كل مجالات النشر والاتصالات الا انها تناسب عالماً مثالياً لا توجد فيه منافسة إذ يمكن للشركات التعاون بين بعضها والنجاح في نشاطاتها في الوقت نفسه. الا انه في العالم الفعلي تختلف الامور كلياً فإذا اخذنا مجال برامج تصفح نسيج العنكبوت نلاحظ انه لا يتم التوافق على المقاييس بل هي تفرض فرضاً فيتم وضع مقياس ما بالدوس على المقاييس الاخرى وارسالها الى الجحيم وليس بالتفاوض والتسويات. كل على هواه ونستنتج من هذه المقدمة انه من الصعب جداً تصميم صفحات عنكبوت ديناميكية وتفاعلية فمن المعروف ان لغة تعليم هايبرتكست الديناميكية DHTML هي مقياس وضعه تجمع نسيج العنكبوت العالمي W3C ثم فسرته كل من مايكروسوفت ونتسكيب وغيرهما على هواها. وهذه هي المشكلة أساساً فالتجمع يقترح المقياس ويبقى على عاتق مطوري البرامج كيفية تفسيره كل حسب تقييمه الخاص للاتجاهات التي يسلكها نسيج العنكبوت. فإذا قام احد المطورين بتعديل المقياس قليلاً او لويه في اتجاه مصالحه، لن يقوم احد بردعه اذ انه لا يوجد من عنده السلطة للتحكم في مقاييس النسيج او فرض تنفيذها. وتتميز عملية وضع مقاييس لغة هايبرتكست الديناميكية وغير الديناميكية ببطء شديد يتيح لمايكروسوفت ونتسكيب الوقت الكافي للتدخل في هذه المقاييس وتزويدها بملحقات وتوابع خاصة بكل منهما. ومن المعروف ان قرار الحفاظ على التقنيات الخاصة ودعمها هو ممارسة عادية في مجال الاعمال. والاسلوب الذي تتبعه الشركات المطورة لبرامج التصفح لدعم تقنياتها هو جعل برامجها متوافقة حيث تضطر لذلك ثم تضيف اليها وظائف خاصة تكون عادة متطورة. واذا اظهر المستخدمون تفضيلهم لهذه الوظائف على تلك الموجودة في البرنامج المنافس تكون الشركة التي ادخلتها ربحت جولة في حرب برامج التصفح وهكذا دواليك. ومع الوقت يبتعد البرنامجان عن بعضهما ليدعم كل منهما وظائفه الخاصة. مشكلة التوافق عندما يزور مستخدم انترنت موقعاً على نسيج العنكبوت، لا يهمه كيف تم تطوير هذا الموقع. فإذا اعجبه، يتردد عليه واذا لم يعجبه لا ينتظر تحميله كاملاً ويتركه من دون رجعة الا ان من يعاني من مشكلة التوافق هو مطور مواقع العنكبوت. وطُلب مني اخيراً تطوير موقع لمجلة تنشر اعلانات مبوبة. ويريد الناشر ان يحتوي موقعه على كل ما يجذب الانظار. وبما انه يدفع للاستفادة من خدمات مطور صفحات عنكبوت، يتوقع الحصول على رموز متحركة واصوات وتصميمات متداخلة وغيرها. ولا يكتفي بذلك خاصة اذا كان اطلاعه قليل على ما هو متوافر حالياً من برامج تصفح بل يريد ان يكون هذا الموقع متوافقاً عبر برامج التصفح. ويعرف من طور هذا النوع من المواقع ان الطالب يُدخل المطور في كابوس متواصل. فإذا صممت موقعاً بسيطاً وثابتاً للحؤول دون "ازعاج" اي برنامج تصفح، فربما نعتني الطالب بالتخلف والبلادة. واذا طورت موقعاً يحتوي على آخر ما ظهر من الصرعات، لن يسعنا الا الالحاح على الزائر ليستخدم هذا البرنامج او ذاك ليسعه مشاهدة ما نعرض. اين الحل الوسط اذاً؟ ديناميكية XBDHTML. كلمة اوائلية تعني لغة تعليم هايبرتكست الديناميكية العابرة لبرامج التصفح Cross Browser Dynamic HTML. وهي تقنية يجب على مطوري المواقع اتقانها. وتشمل هذه التقنية دراسة معمقة لميزات اهم برنامجي تصفح اكسبلورر ونافيغيتر ومعرفة واسعة للفروقات بين البرنامجين في ترجمة عناصر المستند المختلفة في لغة جافاسكريبت واطلاع كاف على الاخطاء التي يأتي بها كل من البرنامجين. واذا تعذر توفير هذه الشروط، يمكن العودة الى نسيج العنكبوت ومطالعة كل الموارد المتوافرة حول الموضوع والتوفير في الوقت والجهد.، فإحدى اهم ميزات نسيج العنكبوت هي انه آلة توفر معلومات كاملة عن نفسها فلا حاجة بنا الى اللجوء الى مراجع اخرى لمعرفة كيفية تشغيلها. ويمكن العثور على معلومات حول اي وظيفة يوفرها النسيج ولا تشكل لغة هايبرتكست الديناميكية استثناءاً. فلا يكتفي النسيج بتعليمنا كيف يمكن تطوير مواقع ديناميكية للغاية دون فقدان التوافقية بين البرامج بل يتعدى ذلك ليعرض علينا كل الاخطاء التي تعتري البرنامجين وكل النصائح التي يخفيها علينا مطوروهما. وتتبع هذه التقنية قواعد اساسية يمكن اختصارها بالتالي: يشكل استخدام اوراق الانماط التسلسلية Cascading Style Sheets فكرة جيدة للبيانات الثابتة وجافاسكريبت للبيانات الديناميكية. وعند استخدام اوراق الانماط يجب جعلها مخفية عن برامج التصفح التي لا تدعمها وكذلك الامر بالنسبة لجافاسكريبت. ويمكن تنفيذ ذلك ببساطة متناهية بالتعرف على برنامج الزائر تنتشر الرموز الضرورية لعملية التعرف هذه في كل انحاء النسيج ويكفي الانحناء والتقاطها وتزويده بالرموز المناسبة له. ويجب استخدام التنسيق المشروط الذي يوفر اوامر تنسيق مختلفة لكل من نافيغيتر واكسبلورر وتوجيه الزائر الى الرموز المناسبة باستخدام اوامر جافاسكريبت. وضع العناصر على الصفحة باستخدام قيم مطلقة وليس نسبية. اطلاق اسماء صحيحة على العناصر واعلانها في رأس الصفحة. تفادي اوامر اللغة الديناميكية المتداخلة. وتشكل هذه القواعد الخطوط العريضة للغة الديناميكية العابرة لبرامج التصفح وتعرضها المواقع التي تتطرق لها بالتفصيل والامثلة. وبالطبع لا تتوجه هذه النصائح للهواة الذين "يطورون" صفحات عنكبوت باستخدام البرامج الجاهزة مثل بيج ميل او فرونت بيج او هوم بيج او غيرها لأنها هي التي تتحكم بالرموز وليس المستخدم وتنتج ما نسبته 50 $ على الاقل من الرموز الخاطئة التي لا تصدق عليها قواعد تجمع نسيج العنكبوت. ان هذه النصائح تتوجه للمطور الذي يتعامل مباشرة مع رموز التصميم وتحضه على تعلم لغة جافاسكريبت وقراءة الموارد المتوافرة على النسيج قبل البدء بتصميم الصفحة الاولى من موقعه. الموارد قد يكون اهم مصدر لهذه الموارد موقع نتسكيب على العنوان: www.developer.netscape.com. واؤكد للذين يفضلون برنامج اكسبلورر أن هذا الموقع يحتوي معلومات وفيرة عن التوافق بين البرنامجين. اما للاطلاع على تقنية لغة هايبرتكست الديناميكية العابرة للبرامج فيمكن زيارة الموقع: www.developer.netscape.com/docs/presentations/index.html. وللحصول على العديد من النصائح يمكن الذهاب الى: www.developer.netscape.com/dynhtml/ وwww.developer.netscape.com/viewsource/goodman_cssp/goodman_cssp.html. وايضاً للتوافق بين البرنامجين يمكن زيارة الموقع: www.dansteinman.com/dynduo/. اما الموقع: www.alapi.com فيزود مصممي صفحات العنكبوت بالقدرة على تطوير صفحات ديناميكية من دون الحاجة الى معرفة عميقة في البرمجة.