سؤال

لذلك أنا فقط تحميل yslow for firebug. وأخذت نظرة على النتائج لموقع أنا أبني.

أرى توصيات، على سبيل المثال، لاستخدام ETAGS، المجال الخالي من ملفات تعريف الارتباط مكونات ثابتة، وإضافة رؤوس انتهاء الصلاحية.

أنا أفكر، حسنا، يمكن أن أخرج وإصلاحها ولكن هناك أكثر احتمالا مجموعة من التحسينات الأخرى التي يمكنني القيام بها أولا، مثل نتائج التخزين المؤقت من مكالمات قاعدة البيانات أو شيء مماثل.

لا أعتقد أن هذا الموقع سيحصل على "الكثير من الاستخدامات" لتسبب توصيات YSLOW.

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

إذا كتبت على سبيل المثال، فقد كتبت تنفيذ ضعيفا يجعل 5 (صغيرا نسبيا) يدعو إلى قاعدة البيانات لكل طلب، ويقول Yslow أن صورتي ال 14 ليست على نطاق خال من ملفات تعريف الارتباط، ثم أي من هذين الأمثل ينبغي يتم تناولها أولا؟

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

المحلول

Yslow هو جيد للتحقق من "تجربة المستخدم" التي يرىها المستخدمون. توصياتها هي المساعدة في جعل الصفحة يظهر لتحميل أسرع. على سبيل المثال 14 صورة إلى 1 صورة والبرطية شيء مرئي بحت. القاعدة هي أن المتصفحات لا يمكن إلا تنزيل بعض الصور بالتوازي في أي وقت واحد.

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

نصائح أخرى

في لا yslow لدينا. htaccess guru. لكنني قمت مؤخرا ببناء موقع Joomla واستخدم Yslow للعثور على مناطق من التحسين. منطقتي Yslow التي سألت عنها أعلاه - "إضافة رؤوس انتهاء الصلاحية" و "تكوين علامات الكيان (ETAGS)" - عالجت عبر ملف .htaccess على جذر مجالي.

أضف رؤوس انتهاء الصلاحية

يقول Yahoo: "تصبح صفحات الويب معقدة بشكل متزايد مع المزيد من البرامج النصية وأوراق الأنماط والصور ومهش عليها. قد تتطلب زيارة لأول مرة إلى صفحة العديد من طلبات HTTP لتحميل جميع المكونات. عن طريق استخدام رؤوس انتهاء الصلاحية تصبح هذه المكونات Cachable، الذي يتجنب طلبات HTTP غير الضرورية حول طرق عرض الصفحة اللاحقة. غالبا ما ترتبط رؤوس انتهاء الصلاحية بالصور، ولكن يمكن استخدامها ويجب استخدامها في جميع مكونات الصفحة بما في ذلك البرامج النصية وأوراق الأنماط وفلاش ".

لمعالجة هذا، وجدت وأضفت كتلة التعليمات البرمجية التالية إلى ملف .htaccess الخاص بي (ملاحظة: قم بتغيير OpenangyBracket إلى "<" و CampionangleangraCracket إلى ">"):


    ########## Begin - Expires Headers
    #
    OPENANGLEBRACKET IfModule mod_expires.c CLOSEDANGLEBRACKET 
    ExpiresActive On
    ExpiresDefault "access plus 1 month"
    ExpiresByType application/pdf "access plus 1 month"
    ExpiresByType application/x-javascript "access plus 1 week"
    ExpiresByType application/x-shockwave-flash "access plus 1 month"
    ExpiresByType image/gif "access plus 1 month"
    ExpiresByType image/ico "access plus 1 month" 
    ExpiresByType image/jpeg "access plus 1 month"
    ExpiresByType image/png "access plus 1 month"
    ExpiresByType image/x-icon "access plus 1 month"
    ExpiresByType text/css "access plus 1 week"
    ExpiresByType text/html "access plus 1 day"
    ExpiresByType text/plain "access plus 1 week"
    ExpiresByType video/x-flv "access plus 1 month"
    OPENANGLEBRACKET /IfModule CLOSEDANGLEBRACKET
    #
    ########## End - Joomla! core SEF Section

تكوين علامات الكيان (ETAGS)

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

قررت إزالة كافة etags، والتي أعطاني درجة، عن طريق إضافة هذا إلى ملف .htaccess الخاص بي:


    ########## Begin - Remove Etags
    #
    FileETag none
    #
    ########## End - Remove Etags

أعطاني هاتان التغييرتين في ملف .htaccess درجات لهذين فئتين yslow.

إصلاح أيهما واحد الخاص بك التنميط يقول يسبب التباطؤ لمعايير الصفحة.

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

أي، إذا قمت بتقسيم صورك عبر مجالات متعددة وجعلها CHEALESS، ثم تضيف المزيد من الصور، يجب تقسيمها على تلك المجالات (نأمل تلقائيا) ولن يحتاج إلى جهد مرة أخرى.

أيضا، تنتهي رؤوس انتهاء الصلاحية يؤدي إلى انخفاض مستويات الطلبات على الخادم الخاص بك (نظرا لأن الردود يمكن تخزينها مؤقتا)، والتي سوف تسريع زيارات الجميع.

ضع في اعتبارك أن YSLOW لا يمكن أن ترى رمز الخلفية الخاص بك، لذلك لا يمكن أن يسيء فقط توصياته على تفاعل المتصفح مع موقعك. يجب عليك بالتأكيد إصلاح مكالمات قاعدة البيانات الخاصة بك أولا. توصيات YSLOW فيما يتعلق بطلبات متعددة، Gzip، إلخ صلب جدا، لكنها تخبرني إلى الأبد استخدام شبكة تسليم المحتوى - والتي لا معنى لها على موقع صغير. فقط لا تقضي الكثير من الوقت / الأموال في كل توصية عمياء، والعامل في ما تعرفه وليس Yslow.

أنت صحيح تماما، وتحسين داخل رمز التطبيق مثل

  • تحسين استعلامات قاعدة البيانات البطيء
  • التخزين المؤقت لاستفسارات المنفذة بشكل متكرر
  • التخزين المؤقت لمستوى المكون من المكونات المستخدمة بشكل متكرر
  • تفيد السرعة العامة لرمز التطبيق باهظ الثمن

سوف تعطيك مكاسب أداء أعلى بكثير من توصيات YSLOW في معظم الحالات.

عادة ما يتم توجيه تحسينات YSLOW لتحسين أداء الأجزاء الثابتة من موقعك، مما يؤدي عموما بالفعل بشكل أفضل من الأجزاء الديناميكية، قبل أي تغيير.

لو سمحت، من فضلك لا تستخدم ملفات تعريف الارتباط وينتهي في المحتوى الثابت الخاص بك.

لا يساعدك فقط، فإنه يساعد أنا.

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

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

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

من شأنه أن يكون التحسين الأكثر أهمية يمكن للمرء أن يفعل IMHO.

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