بهینه سازی و افزایش سرعت سایت در شش مرحله

نویسنده حامد در شهریور ۱۱م, ۱۳۸۹

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

به کار انداختن فشرده سازیGZIP

با یقین میگویم که این مورد مهمترین موردی است که در این مطلب میخوانید. gzip که مخفف Gnu Zip میباشد ابزاری برای فشرده سازی انواع مختلف فایل است که گاها میتواند تا حدود ۸۰ درصد از حجم صفحات وب شما بکاهد. اگر برای فایلهای js و css خود این قابلیت را فعال کنید کاهش حجم زیادی را در صفحات خود خواهید و در اینترنت کاهش حجم یعنی سرعت و سرعت یعنی همه چیز.

برای فعال کردن gzip در سرورهای apache میتوانید تکه کد زیر را  به فایل .htaccess که در روت هاست شما وجود دارد اضافه کنید.

AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript

تکه کد بالا فشرده سازی را برای فایلهای text, html, javascript, css, xml فعال خواهد کرد. و یا اینکه میتوانید با استفاده از کد زیر فشرده سازی را  بر حسب پسوند فایلها فعال کنید.


<IfModule mod_deflate.c>
<FilesMatch "\.(js|css|TTF)$">
SetOutputFilter DEFLATE
</FilesMatch>
</IfModule>

برای اینکه بدانید gzip در صفحات شما فعال است یا خیر میتوانید از این سایت استفاده کنید.

افزودن http Expire Headers

تقریبا تمام طراحان وب با عبارت caching آشنایی دارند. سیستم cache بدین گون عمل میکند که پس از اولین بارگزاری یک صفحه وب تعدادی از عناصر صفحه بر روی سیستم کاربر ذخیره میشوند تا دفعات بعد به جای خواندن فایل از سرور, آنها از روی سیستم خوانده شود. اینکار هم پهنای باند را حفظ خواهد کرد و هم سرعت را بهبود چشمگیری خواهد بخشید. اما اگر به مرورگر نفهمانیم که هر عنصر چقدر باید در کش بماند مشکلات زیادی از قبیل نمایش عناصر قدیمی به جای عناصر جدید و یا کلا عدمcaching  پیش خواهد آمد.

برای فعال سازی کش از طریق سرور باید خطوط زیر را به فایل .htaccess خود اضافه کنید.

<IfModule mod_headers.c>
# 1 YEAR
<FilesMatch "\.(ico|pdf|flv)$">
Header set Cache-Control "max-age=29030400, public"
</FilesMatch>
# 1 WEEK
<FilesMatch "\.(jpg|jpeg|png|gif|swf)$">
Header set Cache-Control "max-age=604800, public"
</FilesMatch>
# 2 DAYS
<FilesMatch "\.(xml|txt|css|js)$">
Header set Cache-Control "max-age=172800, proxy-revalidate"
</FilesMatch>
# 1 MIN
<FilesMatch "\.(html|htm|php)$">
Header set Cache-Control "max-age=60, private, proxy-revalidate"
</FilesMatch>
</IfModule>

استفاده از سرورهای تحویل محتوا (Content Delivery Networks)

cdn ها کارشان این است که فایلهایی را که استفاده زیادی در وبسایتهای امروزه دارند را در خود جای دهند و در موقع نیاز انها را به کاربر تحویل دهند. برای مثال کتابخانه جاوا اسکریپت JQuery را تصور کنید. کتابخانه‌ی بسیار معروفی که سیستم ورد پرس و بسیاری از سیستمهای دیگر به طور پیشفرض از آن استفاده میکنند. شما میتوانید به جای اینکه این فایل ها را از درون هاست خود در سایتتان استفاده کنید از آدرس زیر استفاده کنید.

http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js

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

ترکیب کردن جاوا اسکریپت و CSS در یک فایل

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

بهینه سازی تصاویر

به جرات میتوان گفت امروزه تصاویر بیشترین حجم صفحات وب را بخود اختصاص داده اند و روزانه هزاران گیگابایت پهنای باند را مصرف میکنند. تصاویری که گاها بدلیل استاندارد نبودنشان برای وب حجمی بسیار بیشتر از آنچه نیاز دارند اشغال میکنند. در بسیاری موارد میتوان حجم تصاویر را تا ۸۰ درصد بدون افت کیفیت کاهش داد. ابزارهای زیادی نیز برای اینکار موجود هستند. درسیستمهای لینوکسی دو ابزار بسیار مفید jpegoptim و optipng میتوانند تعداد زیادی تصویر را در زمان کمی بدون افت کیفیت بهینه کنند. برای ویندوز نیز ابزارهای مخصوصی وجود داردند.+ + +

کوچک کردن JavaScript و CSS

فایلهای css و js اگر به همان صورتی که نوشته میشوند استفاده شوند دارای فاصلها و خطوط بسیاری هستند که اینها نیز به خودی خود فضا اشغال میکنند. میتوانید با استفاده از ابزارهایی مشابه این ابزار فایلهای css خود را فشرده کنید. فایلهای جاوا اسکریپت هم قابلیت فشرده سازی دارند. با استفاده از این ابزار میتوانید کدهای جاوا اسکریپت خود را به اصطلاح pack کنید. با اینکار دو نشان را با یک تیر زده اید. هم  کدهای خود را از شر دزدی حفظ کرده اید و هم آن را فشرده کرده اید.

و در آخر این نکته را متذکر میشوم که گرچه افزایش سرعت برای سایتها بسیار مفید خواهد بود اما نباید محتوا را فدای سرعت کرد. به یاد داشته باشید محتوای خوب ارزش منتظر ماندن را خواهد داشت.

دلیل کم پیدایی و نرسیدن به وبلاگ + یک سوال

نویسنده حامد در مرداد ۱۴م, ۱۳۸۹

اول سلام

دوم هم اینکه اومدم بگم چند وقتی هست که داریم یک دفتر کامپیوتری رو راه اندازی میکنیم که خیلی از وقتمو میگیره و نمیذاره به وبلاگ نویسی برسم.
سوم هم اینکه علاوه بر مورد بالا دارم روی یک سیستم فروشگاه اینترنتی کار میکنم که تجربه خوبیه واسه خودش. نوشتن کارت خرید و از این حرفا…
قرار قابلیت اتصال به درگاه پرداخت اینترنتی بانکها هم اضافه بشه.
در این مورد از شما یک کمکی که میخوام اینه که اگر کسی اطلاعاتی در مورد چگونگی اتصال به درگاه بانکها میدونه اینجا پیغام بذاره که من از طریق ایمیل چند تا سوال ازش بپرسم. خودم کمی اطلاعات دارم ولی میخواستم اطلاعاتمو تکمیل کنم.

ممنونم
کوچک شما حامد

PHP یا ASP؟ مسئله این است!

نویسنده حامد در اردیبهشت ۱۵م, ۱۳۸۹

بار ها این سوال ذهن منو به خودش مشغول کرده زبانهای PHP و ASP چه تفاوتهایی با هم دارن و کدوم نسبت به دیگری برتری داره. بعد از کمی جستجو و خوندن چند مقاله تصمیم گرفتم تا نتایج تحقیقم رو با شما هم به اشتراک بذارم.

ابتدا از ASP شروع میکنم.

زبان ASP که مخفف کلمات Active Server Page است یکی دیگر از محصولات کمپانی مایکروسافته که به دلیل ASP.NET بودن میتونه از کمپوننت های .NET هم استفاده کنه. این زبان بیشتر در کمپانی های بزرگ مورد استفاده قرار میگیره. ASP سینتاکس مستقلی نداشه و معمولا از دستور زبان در حال انقراض VBSsript استفاده میکنه گرچه از زبان های دیگری نیز میشه استفاده کرد. در زیر تعدادی از ویژگی های مربوط به این زبان رو آوردم.

  • اول اینکه این زبان فقط مخصوص سیستم عامل ویندوز هست و از وب سرور IIS استفاده میکنه. گرچه برنامه های جانبی برای سازگاری ASP با بعضی از سیستم های دیگه هم پیدا میشه.
  • متأسفانه ASP فقط میتونه از پایگاه داده MSSql استفاده کنه و قابلیت استفاده مستقیم از دیتابیس های دیگر رو نداره.
  • باید بدانید که هردوی IIS و MSSql محصول مایکروسافت هستند و از این رو باید اونها رو خریداری کرد.
  • بسیاری معتقدند که فقط در ASP معنای حقیقی شئ گرایی گنجانده شده.
  • در ASP میتوان علاوه بر VBSript از زبانهایی مثل C++, C#, Visual Basic.NET, Jscript.NET, Python, Perl, Java (J#), COBOL, Eiffel و Delphi نیز استفاده کرد.
  • ASP بخشی از .NET هست و همین برای بسیاری از برنامه نویس ها کافیه.

و اما اینکه چرا کمپانی های بزرگ بیشتر از ASP استفاده میکنند تا زبان های دیگه.

  1. مهمترین دلیل اینکه محصولات مایکروسافت رو میشه در سرتاسر دنیا و روی هر سیستمی پیدا کرد. استفاده از ASP باعث سازگاری با بسیاری از سیستم های کمپانی های دیگر خواهد شد.
  2. شرکت های بزرگ معمولا از سالها پیش از محصولات مایکروسافت استفاده میکرده‌اند و کارمندان آنها نیز برای کار با این محصولات آموزش دیده اند. ASP هم دقیقا به همین دلیل طرفدار بیشتری میان کمپانی های بزرگ دارد. استفاده از ASP باعث صرفه جویی فراوانی خواهد شد چرا که لازم نیست دوباره افرادی را برای کار با سیستم جدید استخدام کرد و یا کارمندان را دوباره آموزش داد.
  3. اگر یک کمپانی قصد خرید کمپانی دیگری را داشته باشد باید اطلاعات آن را با اطلاعات موجود در سرورهای خود ادغام کند و چون معمولا بقیه کمپانی ها نیز از ASP استفاده میکنند, شرکت مذکور نیز با داشتن ASP روی سرورهای خود عملیات ادغام را بسیار کم خرج تر و راحت تر میکند.

حالا نوبت به PHP میرسد.

PHP که مخفف Hypertext Preprocessor است ابتدا توسط Rasmus Lerdorf پایه گذاری شد و بعد ها اشخاص دیگری نیز به این پروژه پیوستند. PHP اکنون یکی از پرطرفدار ترین زبان های سمت سرور است که هر روز به محبوبیتش افزوده میشود. دلایل این افزایش محبوبیت میان کاربران را میتوان به صورت زیر عنوان کرد.

  1. اول اینکه بر خلاف ASP که فقط روی IIS اجرا میشود که IIS نیز رایگان نیست, PHP در بسیاری از نرم افزارهای سرورها  و تقریبا در هر سیستم عاملی اجرا میشود. PHP به دلیل گسترش موارد استفاده به هیچ وجه به استفاده از یک سیستم خاص محدود نیست.
  2. PHP از سینتاکس آشنای زبان C/C++ استفاده میکند و به همین دلیل بسیاری از افرادی که با زبان محبوب C آشنایی دارند به راحتی میتوانند کار با PHP را نیز شروع کنند. این سینتاکس به کوتاهی معروف بوده و عملیات کامپایل و تبدیل به زبان ماشین را سرعت بالایی میبخشد.
  3. PHP از تعداد زیادی پایگاه داده پشتیبانی میکند. MySQl, PostgreSQL, Oracle و … . شما به هیچ وجه محکوم به استفاده از یک دیتابیس خاص نیستید.
  4. PHP تقریبا برای هر کاری تابع آماده دارد.
  5. هر چیزی که برای راه اندازی و استفاده PHP لازم باشد به صورت رایگان و قانونی قابل تهیه است. از نرم افزار سروری مثل Apache گرفته تا پایگاه داده‌ای مثل MySql… .

در نهایت انتخاب شما در استفاده از ASP و PHP به مورد کار و تجربه شما بر میگرده. هر دو زبان برتری ها و نقوص خودشون رو دارن و

انتشار یک ویروس بسیار خطرناک از طریق وبلاگ ۷ سال

نویسنده حامد در فروردین ۱۳م, ۱۳۸۹

اگر شما در ۲۴ ساعته گذشته به صورت مستقیم از این وبلاگ بازدید کردید هرچه سریعتر تا انتهای این مطلب را خوانده و به دستورات آن عمل کنید. امروز صبح خیلی اتفاقی در حال بررسی گزارشات هاستی که وبلاگ ۷ سال روی آن قرار گرفته بودم که متوجه تعدادی دسترسی غیر مجاز از طریق پروتوکول FTP شدم و بعد از بررسی های بیشتر متوجه شدم متأسفانه این وبلاگ هک شده است.

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

پس اگر شما از ویندوز و مرورگر IE استفاده میکنید فقط تا ساعت ۲۴ امشب فرصت دارید تا اقدام به نصب دوباره ویندوز کنید. چرا که بعد از این ساعت ویروس وارد عمل شده و محتویات کل هارد شما را فرمت خواهد کرد.

اگر با نصب ویندوز مشکل دارید و نمیخواهید ویندوز خود را تعویض کنید راه دیگری که در اختیار دارید این است که از طریق فرم تماس با من یک پیغام حاوی شماره سریال ویندوز خود که در زمان نصب وارد کردید را ارسال کنید تا دستورات لازم برای غیرفعال کردن ویرویس مذکور برای شما ارسال شود.

حتما توجه داشته باشید که کارآیی راه حل دوم به هیچ وجه تضمینی نیست و برای اطمینان از حذف کامل ویروس باید ویندوز خود را تعویض کنید.

کاربرانی که از مرورگری به غیر از IE استفاده میکردند یا وبلاگ را اطریق فید دنبال میکردند میتوانند مطمئن باشند که سیستم آنها در امان بوده و آلوده نشده است.

ساعت زمین! بهانه‌ای برای اندیشیدن به سیاره‌ی خاکی

نویسنده حامد در فروردین ۷م, ۱۳۸۹

امروز ۲۷ مارچ ۲۰۱۰ مصادف با ۷ فروردین ۱۳۸۹ بود که تا دقایقی دیگر به پایان خواهد رسید. تقریبا ۳ ساعت از ساعت ۸ و نیم به وقت تهران میگذرد. ساعتی که در بسیاری از کشورهای دنیا به نام زمین نام گذاری شده بود. ساعتی که قرار بود مردم دنیا به شکل یکپارچه اعلام کنند خواستار توقف در تغییر وضع آب و هوای زمینند. اما چگونه؟! خیلی ساده, چراغ خانه های خود را برای یک ساعت خاموش کنند.

گرچه الان کمی برای یکصدایی دیر شده اما ماهی را هر وقت از آب بگیری تازه است. همین الان تا دیر نشده چراغ خانه خود را خاموش کنید و سپس به خواندن ادامه دهید.

اما این قضیه ساعت زمین چیست و از کجا شروع شد؟

Earth Hour

در سال ۲۰۰۷ میلادی, مردم شهر سیدنی استرالیا تصمیم گرفتند با یک حرکت یکپارچه مخالفت خود را با تغییر آب و هوای زمین اعلام کنند. اینگونه شد که نزدیک به ۲.۲ میلیون خانه و شرکت تجاری رأس ساعت معینی همه چراغهای خود را خاموش کردند. درست یک سال بعد مردم تعدادی دیگر از کشورها به این حرکت پیوستند و این شد که این خاموشی زیبا به تقریبا ۳۵ کشور دنیا رسید.(بگذریم از اینکه ایران ما کلا در یک سیاره دیگر قرار دارد و ما که اصلا اهل اسراف و این کارا نیستیم و لازم نیست به دسیسه های استکبار جهانی بله بگوییم, باز هم از ماجرا عقب ماندیم!)

حالا اگر شما هم دوست داشتید و خواستید برای این سیاره خاکی کاری بکنید میتوانید در وبلاگتان در این مورد بنویسید. یا از خاموشی خونه‌تون عکس بگیرید و توی فلیکر که آدرسش پایین هست عکس رو شیر کنید. یا کارهای خلاقانه دیگه.

این سایت هم کلا مخصوص ساعت زمین است. برید و ببینید مردم چطور در دنیا چراغهای خود را خاموش میکنند. اگر هم بلد نیستید چطوری چراغ خاموش کنید برید اینجا و تمرین کنید. بعد از اینکه چراغ ها رو هم خاموش کردید برید و اسمتون رو ثبت کنیم که ما هم آره!

لینکهای زیر هم همه مربوط به ساعت زمین در سایتهای اجتماعی هستند.

ساعت زمین در فلیکر

ساعت زمین در یوتوب

ساعت زمین در فیس بوک

ساعت زمین در توییتر

نوروز مبارک

نویسنده حامد در اسفند ۲۷م, ۱۳۸۸

این سال هم با همه تلخی و خوشی هایش گذشت. سالی که برای بسیاری از مردمان ایران پر بود از رنج و شکنجه. اما هرچه بود گذشت.

احتمالا این آخرین پست من در سال ۱۳۸۸ خورشیدی است.

کمی از خودم میگویم. من یک آدم ۱۹ ساله هستم که در رشته نرم افزار درس میخوانم. هدفم از راه اندازی این وبلاگ فقط از روی علاقه بود. علاقه به نوشتن و همچنین اشتراک دانسته هایم با دیگران. هیچگاه خود را یک وبلاگ نویس حرفه‌ای نپنداشتم. وبلاگ نویسی را از سر علاقه شروع کردم و از سر علاقه آن را ادامه میدهم.

حرف زیادی برای گفتن نیست. جز اینکه سال جدید و نوروز در راه است. بیشتر از اینکه امیدوار باشم بیمناکم. بیمناک کشورم که یکی از سخت ترین دوران تاریخ کهن خود را میگذراند. اما ایران همیشه بوده و همیشه خواهد بود. ایرانیان نیز همینطور…

نوروز مبارک.


کپی رایت ۷ سال. قدرت گرفته از وردپرس طراحی از پوسته های وردپرس ترجمه از متابلاگ

۷ سال is Digg proof thanks to caching by WP Super Cache