تعزيز تدريجي، السلوك عندما لا يتم تحميل الصفحات بالكامل بعد

StackOverflow https://stackoverflow.com/questions/947198

سؤال

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

على سبيل المثال، أضيف معالجات حدث OnClick ديناميكيا إلى علامات مرساة للعب ملفات MP3 مرتبطة "مضمنة" باستخدام SoundManager وتفتيت مشغلات YouTube لارتباطات YouTube، من خلال $ (المستند). Ready (وظيفة ()).

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

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

أي أفكار أفضل؟ أشعر أنني أفتقد شيئا واضحا تماما هنا.

يعتبر،

اليكيال

هل كانت مفيدة؟

المحلول

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

إذا لم ينجح ذلك، فيمكنك محاولة وضع علامات البرنامج النصي JavaScript مباشرة تحت أي شيء يحتاجون إليه. إنها ليست جميلة، لكنها ستؤدي إلى حد كبير المشكلة.

نصائح أخرى

على افتراض أنك استخدمت الحكم الجيد والناس يسقطون للحصول على النسخة غير المعززة فقط لأن التأخير طويل جدا، ثم أود استخدامه CSS لتعطيل الضوابط. وبعد سيتم تحميل CSS على الفور تقريبا. ثم استخدام JavaScript وأود أن يقوم بتبديل CSS حتى يتم إعادة تمكين عناصر التحكم.

ومع ذلك، فإن رد فعلي الأول هو أنه إذا كان المستخدم يمكن النقر فوقه أثناء تحميل الصفحة، فإن صفحتك أو اتصالك بطيء جدا. ومع ذلك، إذا كان هذا نادرا ما يكون الأمر كذلك - أقل من 1٪ من الوقت - ثم يمكنك تقشيرها طالما يمكن للمستخدم تحقيق هدفه، والاستماع إلى موسيقاه. أقول هذا لأنه بمجرد أن يدرك المستخدمون أن تجربة أفضل تنتظر بعد نصف ثانية، سينتظر عادة JavaScript لتقديمها ثم انقر فوق.

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

يمكنك استخدام JavaScript مضمنة صغيرة جدا قبل علامة إغلاق الجسم لإخفاء العناصر عبر JS بسرعة حقا. إذا كان ذلك مضمنا وليس من الضروري تحميل الموارد الخارجية، فستكون بسرعة كبيرة، بشكل عام بشكل عام من المستخدم يمكن النقر فوق.

ومع ذلك، أولا فعل أتفق مع eleemb أنه إذا كان المستخدمون قادرون على معالجة الصفحة عقليا وجعلها للتحكم في أن ننقر عليه قبل تحميل JS الخاص بك، فربما تكون هناك مشكلة أعمق مع طريقة تحميل صفحتك. النظر في طرق تقليل وقت الحمل: ضغط ملفات الصور، Gzipping HTML / CSS / JS ملفات، قمصان JavaScript، والجمع بين الصور في العفاريت، إلخ.

أود أن أقترح ما يلي نصيحة باولو بيرجانتينو - وفد الأحداث هو الطريق للذهاب إلى تجنب المشكلة تماما.

كان لدي مشكلة مماثلة حيث لم يستطع وفد الحدث القيام بهذه المهمة - يمكنك اقرأ عن ذلك هنا.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top