برمجة

تغييرعناوين الصفحات بإستخدام ال JavaScript

By حسام الكرد

August 13, 2012

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

ومن أهم الأمثلة ألبوم الصور الذي يعمل بطلبات الأجاكس , عند تقليب الصور يجب أن توجد دلاله معينة للعنوان بحيث أن يقوم أحد بنسخ العنوان ومشاركته للأخرين فيقومو بطلب العنوان فتظهر لهم الصورة التي تملك العنوان

فالسؤال الرئيسي كيف يمكن تعديل العنوان بشكل مباشر في الصفحة دون الحاجه لتحميل المحتوى من جديد ؟بإستخدام الجافا سكريبت يمكن عمل ذلك بطريقتين

أولا طريقة الهاش (Hash)

ويمكن فيها إضافة متغير في العنوان بعد ال Hash وإستعماله كدلاله فعند عمل طلب أجاكس معين أو تغيير يتم تغير الهاشفعند تعيين المتغير في العنوان يتم تعريفه

 window.location.hash='photoID-1';

وعند قراءته من العنوان يكون

 var hash=window.location.hash;

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

وهيه ما تقوم بدعمها المتصفحات الجديده التي تدعم ال HTML5 مثل FF  و Chrome بينما ما يزال Explorer لا يدعمها  لذا ينصح بإستعمال الإضافة للموافقه مع جميع المتصفحات  , ويتم فيها تعديل العنوان بشكل مباشر بإستعمال

history.pushState(stateObj, Title, URL);//history.pushState({"id":101}, "new title", "/new-url/");

فيتم فيها تحويل الرابط بشكل كامل وإستعماله فيما بعد كطريقة توجيه معتاده , مع ملاحظة أنه في حال الضغط على back من خلال المتصفح لن يعمل كالمعتاد لأنه تم تغيير العنوان الحالي إلى عنوان جديد ولكن المتصفح يعتبر أن المتغير هو الحالي

هذه الطرق تساعد جدا في عمل توجيهات مختلفه وحفظ عناوينها من خلال الأجاكس.دمتم بخير إلى تدوينة أخرى