[facebook] ما هو shebang / hashbang (#!) في الفيسبوك وعناوين جديدة لتويتر؟


Answers

علامة octothorpe / number-sign / hashmark لها أهمية خاصة في عنوان URL ، وعادةً ما تقوم بتعريف اسم قسم من الوثيقة. المصطلح الدقيق هو أن النص الذي يتبع التجزئة هو جزء الارتساء في عنوان URL. إذا كنت تستخدم Wikipedia ، سترى أن معظم الصفحات تحتوي على جدول محتويات ويمكنك الانتقال إلى أقسام داخل المستند مع نقطة ارتساء ، مثل:

https://en.wikipedia.org/wiki/Alan_Turing#Early_computers_and_the_Turing_test

https://en.wikipedia.org/wiki/Alan_Turing يعرّف الصفحة و Early_computers_and_the_Turing_test هي المرساة. السبب وراء استخدام Facebook والتطبيقات الأخرى التي تعتمد على Javascript (مثل My Wood & Stones ) الخاصة بالمراسي هو أنهم يريدون جعل الصفحات قابلة للحفظ (كما هو مقترح من خلال تعليق على هذه الإجابة) أو دعم زر الرجوع دون إعادة تحميل الصفحة بالكامل من الخادم .

لدعم وضع إشارة مرجعية وزر للخلف ، يجب عليك تغيير عنوان URL. ومع ذلك ، إذا قمت بتغيير جزء الصفحة (مع شيء مثل window.location = 'http://raganwald.com'; ) إلى عنوان URL مختلف أو بدون تحديد نقطة ارتساء ، فسيقوم المتصفح بتحميل الصفحة بأكملها من عنوان URL. جرب ذلك في Firebug أو Safari's Javascript console. قم بتحميل http://minimal-github.gilesb.com/raganwald . الآن في لوحة تحكم جافا سكريبت ، اكتب:

window.location = 'http://minimal-github.gilesb.com/raganwald';

سترى تحديث الصفحة من الخادم. الآن اكتب:

window.location = 'http://minimal-github.gilesb.com/raganwald#try_this';

آها! لا تحديث الصفحة! اكتب:

window.location = 'http://minimal-github.gilesb.com/raganwald#and_this';

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

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

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

وبالنظر إلى كل ذلك ، فإن علامة "الاختراق" أو علامة التعجب هي تلميح آخر لزاحف الويب من Google أنه يمكن تحميل الصفحة نفسها تمامًا من الخادم على عنوان URL مختلف قليلاً. انظر اياكس الزحف . أسلوب آخر هو جعل كل رابط يشير إلى عنوان URL يمكن الوصول إليه بواسطة الخادم ، ثم استخدم جافا سكريبت غير مزعجة لتغييره إلى SPI مع نقطة ارتساء.

إليك رابط المفتاح مرة أخرى: بيان واجهة الصفحة المفردة

Question

لقد لاحظت للتو أن عناوين URL طويلة وملتوية في Facebook التي اعتدنا عليها تبدو الآن كما يلي:

http://www.facebook.com/example.profile#!/pages/Another-Page/123456789012345

بقدر ما أستطيع أن أتذكر ، في وقت سابق من هذا العام كان مجرد سلسلة شبيهة URL-fragment (تبدأ ب # ) ، دون علامة التعجب. ولكن الآن هو shebang أو hashbang ( #! ) ، التي سبق لي فقط رأيته في مخطوطات قذيفة وسيناريو بيرل.

كما تتميز عناوين URL الجديدة الخاصة بـ Twitter الآن بـ #! حرف. على سبيل المثال ، يبدو عنوان URL لملف Twitter على هذا النحو:

http://twitter.com/#!/BoltClock

لا #! تلعب الآن دورًا خاصًا في عناوين URL ، مثل إطار Ajax محدد أو شيء ما ، نظرًا لأن واجهات Facebook و Twitter الجديدة أصبحت الآن مجهولة إلى حد كبير؟ هل يفيد استخدام هذا في عناوين URL الخاصة بي في تطبيق الويب الخاص بي بأي طريقة؟




افترضت دائما ! أشار للتو إلى أن جزء التجزئة الذي يتبعه يتوافق مع عنوان URL ، مع ! أخذ مكان جذر الموقع أو المجال. يمكن أن يكون أي شيء ، من الناحية النظرية ، ولكن يبدو أن واجهة برمجة تطبيقات الزحف من Google AJAX تحبه بهذه الطريقة.

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




سأكون حذرا جدا إذا كنت تفكر في اعتماد هذا الميثاق hashbang.

بمجرد hashbang ، لا يمكنك العودة. ربما هذه هي القضية اللاذعة. وقد طرحت خدمة "بن" النقطة التي مفادها أنه عندما يتم اعتماد pushState على نطاق أوسع ، يمكننا ترك hashbangs خلفنا والعودة إلى عناوين URL التقليدية. حسنا ، الحقيقة هي ، لا يمكنك ذلك. ذكرت في وقت سابق أن عناوين URL هي إلى الأبد ، يتم فهرستها وأرشفتها ويتم الاحتفاظ بها عمومًا. للإضافة إلى ذلك ، لا تتغير عناوين URL الرائعة. لا نريد فصل أنفسنا عن جميع الروابط القيمة لمحتواينا. إذا كنت قد نفذت عناوين URL hashbang في أي نقطة ثم تريد تغييرها دون قطع الروابط ، فالطريقة الوحيدة التي يمكنك القيام بها هي عن طريق تشغيل بعض JavaScript على مستند الجذر الخاص بنطاقك. إلى الأبد. انها في أي حال من الأحوال مؤقتة ، كنت عالقة معها.

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






Links