چگونه سرعت و کارآمدی سایت را افزایش دهیم

سبکی سایت، موجب فشار کمتری به سرور می‌شود و در نتیجه هزینه کمتری را به صاحبان سایت اعمال می‌کند و در هر لحظه سرور می‌تواند پاسخگوی کاربران بیشتری باشد. سبک بودن یک سایت همچنین موجب سرعت بارگزاری آن برای کلاینت می‌شود و رضایت او را به دنبال دارد...

افزایش سرعت و کارایی سایت

زمانی که یک سایت سنگین می‌شود (به دلیل افزایش منابع مصرفی برای مجموع صفحات سرو شده، زمان پاسخ‌دهی افزایش می‌یابد) ابتدایی‌ترین تدبیری که توسط صاحبان سایت‌ها اندیشیده می‌شود، این است که نسبت به ارتقاء سرور خود گام برمی‌دارند.

اما آیا ادامه دادن این روند تنها راه و بهترین راه است؟ خیر. با انجام بهینه‌سازی در برنامه و تنظیمات سرور، می‌توان مصرف منابع سرور را تا حد چشمگیری کاهش داد تا بتواند با سرعت بیشتر و به گستره بیشتری از مخاطبین پاسخگو باشد که در ادامه برخی از این روش‌ها لیست شده است.

کاهش تعداد درخواست‌ها برای نمایش یک صفحه (تلفیق css, js ها و همچنین تلفیق تصاویر با css sprite تا حد ممکن و استفاده مناسب از تصاویر inline)

کم کردن حجم تصاویر و همچنین minify کردن css, js ها

استفاده از فایل css, js به صورت اکسترنال و نه inline

فعال کردن کش سمت کاربر و سمت سرور برای محتواهای ثابت و صفحاتی با تغییرات کم.

در صورتی که بخشی از css, js های شما مربوط به صفحه/صفحات خاصی است و حجم قابل توجهی هم دارد، آن را به صورت یک فایل جداگانه درآورید و فقط به صفحه/صفحات مربوطه اتچ کنید.

فعال کردن gzip و Zopfli بر روی محتوای متنی

این کار موجب می‌شود که فایلهای متنی (html, js, css) به صورت فشرده و zip شده به سمت کاربر ارسال شوند و حجم آنها گاهی تا یک دهم حجم اولیه تقلیل یابد. این کار علاوه بر بالا بردن سرعت لود، موجب کاهش پهنای باند مصرفی سرور می‌گردد.

اگر سرور و هاست شما معمولی و ضعیف است، از هات‌لینک شدن جلوگیری کنید. به عبارت دیگر مانع از بهره‌کشی سایت‌های دیگر از منابع استاتیک سایت‌تان شوید.

طراحی بهینه برنامه PHP سایت

توضیح آنکه، هرچند php زبانی قدرتمند و سریع است، اما یک عملکرد معین را به روش‌های متعددی می‌توان کدنویسی کرد اما برخی از آن روش‌ها مقدار حافظه کمتری استفاده می‌کنند و همچنین در زمان کوتاه‌تری اجرا می‌شوند. 

همچنین برخی تکنیک‌ها (مثل استفاده از autoload) و همچنین استفاده کمتر از define و متغیرهای حجیم نیز موجب افزایش سرعت و کارآیی برنامه می‌شود که در این زمینه می‌توانید به کتبی که به صورت تخصصی در این زمینه نوشته شده، مراجعه بفرمایید. سایت php benchmark نیز در این زمینه مفید است.

طراحی بهینه ساختار پایگاه داده MySQL

ساختار اولیه دیتابیس لازم است anomaly free باشد. همچنین نوع ساختار هر فیلد به درستی و طبق نیاز درنظر گرفته شود. index یگانه و چندگانه لازم بر روی جداول آن ایجاد شود و ...

بهینه‌سازی کوئری‌های SQL 

یک کار معین (مثل نمایش لیست رتبه و معدل دانش آموزانی که در یک کلاس خاص در سال گذشته جزو 5 نفر برتر بوده‌اند) را به چند گونه می‌توان از دیتابیس استخراج کرد. طبعا در بین این راه‌ها، یک راه نسبت به بقیه بهتر است. کتب مستقلی هم در زمینه نحوه نوشتن کوئری بهینه، نگاشته شده است که لازم است مطالعه شود.

استفاده از دامنه‌‌ی بدون‌کوکی برای محتواهای استاتیک

این کار معمولا توسط زیردامنه‌ای (مثلا به نام static) از دامنه اصلی انجام می‌شود.

یا در صورتی که اصلا سایت شما از کوکی استفاده نمی‌کند، می‌توان عبارات Header unset Cookie و Header unset Set-Cookie را به htaccess افزود تا هیچ کوکی رد و بدل نشود.

استفاده از ابزارهایی که به شما در زمینه سرعت و بارگزاری سایت، اطلاعاتی ارائه می‌دهند همانند سرویس‌های زیر خصوصا اولی که ظاهرا مرتبط با شرکت گوگل است:

GTmetrix

Test a website's performance

Load test your website online

Pingdom Tools

Byte Check - Check Your Time To First Byte

متوقف (stop) کردن انیمیشن در صورت نبودن در viewport با پلاگین‌هایی مثل jQuery viewport checker.

متوقف کردن آپدیت‌های متوالی ای‌جکسی برخی عناصر سایت در صورت نبودن کاربر در صفحه سایت شما یا بیکار بودن او در صفحه (عدم حرکت موس و فشرده شدن کی‌بورد یا لمس صفحه برای لحظات طولانی) یا افزایش بازه زمانی بین درخواست‌های متوالی. 

که نوشتن برنامه js تشخیص غیرفعال بودن صفحه شما، کار سختی نیست و پلاگین یک کیلوبایتی اما قدرتمند ifvisible نیز این کار را به سادگی انجام می‌دهد.

استفاده از سرو کننده nginx 

با نصب و تنظیم صحیح nginx می‌توانید تا حد زیادی مصرف منابع سرور را کاهش دهید.

با نصب برخی شتا‌ب‌دهنده‌ها (accelerator) که در اینجا برخی از آنها لیست شده، می‌توانید اجرای برنامه‌ها را شتاب بیشتری ببخشید. نصب ماژول‌های PageSpeed و SPDY (که توسط گوگل معرفی شده) نیز از جمله روش‌های افزایش سرعت بارگذاری صفحات برای کاربران است.

با نصب برخی برنامه‌های مانیتور سرور (مثل Munin) می‌توان تا حد زیادی روی منابع مصرفی سرور مدیریت داشته باشید و اگر در بخشی مصرف بالا بود، به راحتی علت آن را بیابید. مثلا می‌توانید ببینید که در بین کوئری‌های SQL کدام کوئری در ماه گذشته بیشترین منابع را مصرف کرده که نسبت به بهینه‌سازی آن اقدام کنید.

استفاده از کتابخانه‌های کوچک js, css بجای کتابخانه‌های بزرگ 

مثلا بسیاری از ما بخاطر استفاده از ajax یا animation ممکن است جی‌کوئری را به صفحه ضمیمه کنیم. یا برای زیبا کردن 4 تا دکمه و ورودی، بوتسترپ را در صفحه اینکلود کنیم. در حالی که ما فقط از یکی دو درصد قابلیت آنها می‌خواهیم استفاده کنیم. در این مواقع بهتر است سری هم به کتابخانه‌های سبک‌تری که در این زمینه هست، بزنیم. مثلا در سایت microjs.com می‌توانید صدها نمونه از کتابخانه‌های اختصاصی (برای ای‌جکس و انیمیشن و ...) را ببینید که در حدود 1 کیلوبایت حجم دارند! 

همچنین بسیاری از اوقات نیز ما اصلا به هیچ کتابخانه خاصی نیاز نداریم و کاری که مدنظر داریم، با خود جاوا اسکریپت به سادگی قابل انجام است که سایت You might not need jQuery (یعنی: شما ممکن است جی‌کوئری نیاز نداشته باشید!) دقیقا به همین منظور ایجاد شده است.

اگر سایت وردپرسی دارید، استفاده از پلاگین‌های P3 به شما کمک می‌کند که به سادگی متوجه شوید کدام پلاگین‌ها برای سایت شما سنگین است تا آن پلاگین‌ها را تغییر/غیرفعال/حذف کنید.

خواندن 1345 دفعه آخرین ویرایش در جمعه, 26 دی 1393 15:38