سؤال

أنا مبتدئ الذي هو خلق صورة خفيفة الوزن عرض الموقع مكتوب على كعكة إطار php مع RoR.أنا تخطط لاستخدام الآثار من scriptalicious المكتبة ، وكذلك مسج على عرض الصور & الانتقال من آثار.

كما سوف يكون الموقع جدا الصورة الغنية ، البرمجة ما هي الخطوات التي يمكنني اتخاذها للتأكد من أن جميع الصور وغيرها تحميل الصفحات بسرعة ؟

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

المحلول

أعتقد أنك خلط الامور قليلا.ror خلط مع php/كعكة ؟

لذا, عن الأداء.معظمها يعتمد على كيفية العديد من المستخدمين هل تعتقد سيكون لديك, من هؤلاء المستخدمين هم وماذا يفعلون.10 في ساعة أو 100 في الثانية ؟ هل تبدو في صورة لفترة طويلة أو هم بسرعة التنقل من صفحة إلى صفحة ؟

وإليك بعض النصائح التي ليست التقنية أيضا.لا تكوين الملقم الأمثل ، أي أعطها وهلم جرا.نبدأ في التفكير في الأداء مع الحس - انها ليست الكأس المقدسة!

  • هو موقع الويب الخاص بك/تطبيق بطيئة جدا ؟ في معظم الأحيان, هذا ليس هو الحال.فإنه لا يضر مسرعة لكن ما يهمني الأداء كثيرا.تذكر دائما:ليس عن كونها سريعة عن كونها سريع بما فيه الكفاية.لا أحد إشعارات إضافية ميلي ثانية.على تسريع 50% ملحوظة إذا كانت الصفحة الخاصة بك يحتاج الثاني إلى تحميل ، ولكن معظمها غير ذي صلة إذا كان يأخذ فقط 100ms.

  • لمعرفة ما إذا كان موقع الويب الخاص بك بطيء ، المعيار ذلك.هناك الكثير من الطرق للقيام بذلك ، هو واحد الآلي مثل ab (المعيار أباتشي).فإنه يحاكي الكثير من المستخدمين الاتصال إلى موقع الويب الخاص بك ويعطيك لطيفة ملخص كم من الوقت استغرق الرد.والآخر هو:استخدامه.وليس في الشبكة المحلية!إذا كنت تشعر انها بطيئة, ثم لا شيء.

  • صورة عرض بشكل كبير يعتمد على الصور.الصور كبيرة.لذا تأكد من أن الخادم الخاص بك لديه ما يكفي من عرض النطاق الترددي لتسليمها سريع.

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

  • التفكير في جودة الصورة.هو تسليم سريع أكثر أهمية من صورة عالية الجودة ؟ لعب مع حولها حجم الصورة - ضغط أفضل يعني انخفاض حجم الملف أقل جودة وسرعة التسليم.

  • التفكير سهولة الاستخدام.إذا كان هناك أي مصغرات الصفحة, يجب على الناس أن بالتتابع التنقل من خلال المكتبة الخاصة بك, النظر في الكثير من الصور التي لا تريد أن ترى.إذا كانوا بالفعل رؤية الصورة ، فإنها يمكن أن تقفز مباشرة إلى تلك المسألة (خفض استخدام عرض النطاق الترددي و الطلبات في الثانية).التفكير في فليكر:حجم الصور المعروضة ...انهم مثل الطوابع - 500 بكسل واسعة, و الناس لا تزال سعيدة.إذا كانوا بحاجة إلى نسخة أكبر ، فإنها انقر على "جميع الأحجام" رابط على أي حال.

  • حيل حيل حيل:في وقت سابق من المستخدمين متجول مع وسائط, في بعض الأحيان دقة منخفضة/ارتفاع ضغط الصور تم نقلها, وبالتالي فإن المستخدم لديه شيء بعد فترة قصيرة من الزمن.فقط بعد أول صورة تم تحميل, نسخة أكبر startet.انها ليست شائعة بعد الآن لأن اليوم معظم مستخدمي النطاق العريض ، حتى إرسال صورة إضافية هو مجرد عبء العمل الإضافي.

  • التفكير الجمهور.سيقومون بزيارة موقع الويب الخاص بك مع 14.4 ك المودم أو النطاق العريض ؟ هي كانت بطيئة مواقع التحميل (المصورين ربما)?التحقق من الإحصاءات الخاصة بك إلى معرفة لهم.

  • الخاص بك الخلفية لغة البرمجة هو على الأرجح ليست مشكلتك.php ليست حقا سريع, روبي ليست حقا سريع مقارنة مثلا c أو java أو ocaml.أطر أبطأ من ناحية الصياغة ، رمز الأمثل.تصحيح التعليمات البرمجية الخاصة بك لنرى أين بطيئة أجزاء.تخميني ؟ تغيير حجم الصور و الوصول إلى قاعدة البيانات.هذا لن يغير عند التبديل إلى لغة أخرى أو تحسين التعليمات البرمجية الخاصة بك.

بخصوص سرعة المواقع

هناك الكثير من العوامل المشتركة.بعض منهم:

  1. serverside المعالجة:هو التطبيق الخاص بك بسرعة ، هي الأجهزة الخاصة بك بسرعة ؟

  2. التسليم:كم هي سريعة الطلبات والملفات نقلها من العميل إلى الخادم أو العكس ؟ (اعتمادا على عرض النطاق الترددي)

  3. العميل التقديم:كيف سريع هو متصفح, كيف الكثير من العمل ينبغي القيام به ؟

  4. المستخدم haibts:هل العميل حتى تحتاج السرعة ؟ في بعض الأحيان بطيئة صفحات لا توجد مشكلة, على سبيل المثالإذا كانت قضاء وقت طويل هناك دون النقر فوق حول.فكر لعبة فلاش مواقع:إذا كنت تنفق ساعة لعب لعبة فلاش, عليك ربما لن تلاحظ حتى إذا كان تحميل الصفحة في 3 أو 5 ثوان.

على percieved السرعة - خليط من كل أربعة هو المقياس.

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

فيما يتعلق الأمثل

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

هذا ليس صحيحا حقا لتطبيقات الويب في كل وقت ، لأنها بسهولة نطاق أفقيا ، بمعنى:رمي الأجهزة في ذلك.
كل الأشياء تكلف المال إذا كان المال هو مهم بالنسبة لك (أو رئيسك في العمل), لا ننسى ذلك.كم أسبوعين من تحسين تطبيق التكلفة ؟ أقول تحسين تكاليف (أو رئيسك في العمل) × يورو (أنا الأوروبي) في الراتب.الآن التفكير في شراء خادم آخر:أن تكاليف ذ € (بما في ذلك الإعداد).إذا Y < X, مجرد شراء الخادم وسوف يكون على ما يرام.

عشوائية التعبيرات الطنانة

وأخيرا وليس آخرا أنا رمي عشوائي (غير مرتبة) التعبيرات الطنانة ، ربما هناك شيء ما قد يساعد.جوجل فقط, من شأنها أن تساعد ...

شبكات توصيل المحتوى, (intel) سواقات, العفاريت (الجمع بين الصور لتوفير طلبات) ، صفحة ضغط (gzip, وفرغ), أعطها ، APC (بايت كود ذاكرة التخزين المؤقت إلى PHP), تصغير و دمج متعددة CSS و JS الملفات واعية في التعامل مع رموز حالة HTTP (لم يتغير) ، فصل ثابتة المحتوى الديناميكي (ملقمات مختلفة & domains) خطوة بخطوة التحميل عن طريق AJAX (المحتوى المهم أولا) ...

الآن أنا خارج من الأفكار.

تحرير/تحديث

الأشياء/تقنيات نسيت:

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

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

  • تحميلها مسبقا:إذا المستخدمين نظرة على صورة واحدة لفترة ممتدة من الوقت, يمكنك البدء بالفعل في تحميل الصورة التالية ، لذا فهو متصفح-مؤقتا إذا كان المستخدم لا يزال مستمرا.

تنويه

لم تنفذ الأداء الحرجة تطبيقات (مع 2 الاستثناءات) ، لذلك معظم ما كتبته أعلاه هو المضاربة و خبرات الآخرين.اليوم كنت اقرأ قصص عن النجاح تبدأ وكيف تعاملت (الحكمة) مع من 100 إلى ملايين المستخدمين يوميا ، وكيف أنها تستخدم حيل لحل كل تلك المشاكل في كل وقت.
ولكن هل هذا سوف يحدث لك ؟ ربما لا.الجميع يتحدث عن ذلك, تقريبا لا أحد يحتاج حقا (ولكن أنا أعترف إنه لا يزال من الجيد أن نعرف).

لي تجربة العالم الحقيقي (نعم, أنا أحب كتابة طويلة إجابات):

بمجرد أن فعلت أجزاء من موقع على شبكة الانترنت مع عدة آلاف من الزوار يوميا ، مدعوم من قبل cms (typo3) و التي تعمل على واحد مخصص samp-الخادم (التفكير في استخدامها ، العقد القديم سولاريس الخوادم ، لا ghz!).يمكنك البحث عن شقق ، وشكل قلت لك كيف العديد من النتائج عليك (مثلا ، 20-40 م2:400 يضرب, 30-60m2:600 يضرب) قبل إعادة iframe على-انقر فوق.كان جدا بطيء (ولكن المستخدمين لا تزال تستخدم ذلك).باستمرار التحميل 100%.كانت مهمتي أن حل هذه المشكلة.
ما الذي فعلته ؟ أولا معرفة لماذا كان بطيئا جدا.تخميني الأول كان على حق ، انقر فوق طلب أيضا تستخدم typo3 (w/o التخزين المؤقت, بالطبع).عن طريق استبدال هذا عمل واحد مع برنامج نصي مخصص فقط الاستعلام عن قاعدة البيانات مباشرة ، وتجاوز typo3 ، تم حل المشكلة.تحميل ذهبت إلى لا شيء تقريبا.استغرق مني حوالي 2 ساعة.

غيرها من المشروع حوالي 1500 زائر في اليوم ، عرض بيانات serverd من خلال قاعدة بيانات أوراكل مع الملايين من الصفوف و معقدة ينضم استغرق إلى الأبد (=عدة ثوان) لتشغيل.لم يكن لدي الكثير من الخبرة في تحسين أوراكل ، ولكن عرفت:قاعدة البيانات المحدثة مرة واحدة فقط أو مرتين في الأسبوع.الحل:أنا فقط مؤقتا المحتويات بواسطة كتابة html إلى نظام الملفات.بعد التحديث (في منتصف الليل) لا يتم مسح ذاكرة التخزين المؤقت و بدأ إعادة بناء عليه.لذا بدلا من تكلفة استفسارات أنا فقط رخيصة الملفات يقرأ.المشكلة حلها.

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

نصائح أخرى

السؤال هو مبهم جدا.أكثر من الوقت الذي يقضيه على صفحة عادة الحصول على محتوى ثابت.وهنا بعض القواعد من الإبهام من أجل تسريع أوقات تحميل مستقلة عن اللغة أو الإطار:

  1. تثبيت YSlow المكونات في فايرفوكس
  2. استخدام CSS العفاريت
  3. خفيفة الوزن http server للحصول على محتوى ثابت ، nginx أو lighttpd
  4. تخدم محتوى ثابت على مختلف المجال أو المجال الفرعي ، وهذا يسمح في وقت واحد طلبات http
  5. صغر جافا سكريبت و css
  6. ذاكرة التخزين المؤقت صفحات بقدر ما تستطيع
  7. إبقاء عدد طلبات http منخفضة
  8. تشغيل pngcrush أو jpegtran على الصور الخاصة بك

بطبيعة الحال هذا هو مجرد غيض من فيض.هذه هي جيدة الخطوات الأولى.

والحد من عدد من المكتبات، هل أنت متأكد أنك تريد استخدام مسج + scriptalicious. التمسك أشياء بسيطة، لا نبحث عن الرسوم المتحركة المعقدة.

وسريع التحميل => التخزين المؤقت، وصفحات مع الصور هي مرشحة جيدة للذاكرة التخزين المؤقت.

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

إذا كنت قادرا على إنتاج صفحتها ممتاز وهو ثابت تماما، ويقول التغييرات مرتين في اليوم، يمكنك استخدام تقنية للحد من شبح تحميل الكمون العديد من الابهام، انظر:

http://websitetips.com/articles/css/sprites/

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