Keep-Alive چیست
Keep-Alive از تنظیمات سرور آپاچی تبعیت می کند و بطور خلاصه وظیفه آن حفظ و پایداری خط اتصال است
Keep-Alive از تنظیمات سرور آپاچی تبعیت می کند و بطور خلاصه وظیفه آن حفظ و پایداری خط اتصال است
اگر شما قصد دارید فایل جی کوئری خود را از طریق CDN گوگل راه اندازی کنید
برای نسخه jQuery 1.4.4
http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js
و برای نسخه نهایی از ورژن 1.4 یا latest 1.4.x release
http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js
را مورد استفاده قرار دهید
اما مزایا و معایب استفاده از cdn برای دریافت جی کوئری
ابتدا مزایای cdn گوگل
1- CDN گوگل دارای یک زمان تاخیر بسیار پایین است، بنابراین می تواند کدهای جیکوئری را سریعتر از وب سرور شما بارگذاری کند.
2-شانس اینکه کاربر شما قبلا نسخه کش شده جی کوئری را از cdn های گوگل داشته باشد زیاد است که در این صورت دیگر نیازی به دانلود آن برای کاربر نیست
3- از آنجایی که فایل جی کوئری بر روی دامنه دیگری قرار می گیرد توسط مرورگرهای جدید بصورت موازی دانلود میشود و ای باعث تسریع سرعت بارگذاری می شود
4- cdn گوگل از پروتکل HTTPS هم پشتیبانی می کند
5- همیشه آخرین نسخه آن را می توانید از cdn گوگل دریافت نمایید
مثلا در زمان درج این پست آخرین نسخه جی کوئری 1.7.1 است که آن را از آدرس زیر می توانید دریافت نمایید
http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js
جالبتر انکه می توانید شماره نسخه را بدهید و به گوگل اجازه دهید خودش آخرین ویرایش آن نسخه را برای شما بارگذاری کند مثلا اگر لینک بالا را بصورت زیر تغییر دهید
http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js
باز هم گوگل آخرین نسخه را برای شما بارگذاری می کند
البته می توانید از api های گوگل هم استفاده نمایید مثلا
<SCR1PT type="TEXT/JAVASCR1PT"
src="http://www.google.com/jsapi"></SCR1PT>
<SCR1PT type="TEXT/JAVASCR1PT">
// You may specify partial version numbers, such as "1" or "1.3",
// with the same result. Doing so will automatically load the
// latest version matching that partial revision pattern
// (e.g. 1.3 would load 1.3.2 today and 1 would load 1.7.0).
google.load("jquery", "1.7.0");
google.setOnLoadCallback(function() {
// Place init code here instead of $(document).ready()
});
</SCR1PT>
معایب cdn گوگل:
1- امنیت: اگر به شکلی سرور گوگل هک شود هکر امکان اجرای هر اسکریپتی بر روی سرور شما را پیدا می کند البته این به ندرت اتفاق خواهد افتاد
2-در صورت قطعی سرور گوگل که احتمال آن 0.1 درصد است سایت شما از استفاده جی کوئری محروم میشود
3-اگر پیکر بندی سایت شما بصورت اینترانت باشد مثل سایت تبیان احتمال زیاد دچار کندی در اجرا خواهد شد
اگر کاربران مزایا و معایب دیگری بر استفاده از cdn گوگل دارند بفرمایند تا در صورت تایید افزوده شود
در مورد ایندکس شدن در گوگل بارها در همین وبلاگ مطالبی نوشته شده اینبار هم قصد دارم به طور کلی و قابل فهم همه چیز از ایندکس شدن توسط گوگل را بنویسم
قبل از هرچیز باید بک نکته مهم اشاره کنم
هدر های Etag و Last-modified تنها در اعتبار سنجی صفحه کاربرد دارند یعنی اینکه اصلا هنوز این صفحات معتبر هستند یا نه
و هدرهای Expires و Cache-control در رفرش کردن صفحه توسط مرورگر مورد استفاده قرار می گیرند
etag از مواردی است که هم مرورگرها و هم پروکسی ها (مثل isp ها) ازآن برای اینکه فایل پیشتر دریافت شده را دوباره دانلود نکنند استفاده می کنند
یکی از مواردی که توسط سرور ها در هدر ارسالی برای هر فایل از سرور قرار داده میشود etag نام دارد
etag بصورت hash و معمولا md5_file در php ساخته میشود
یکی از ابزاری که من برای بررسی سرعت لود یک صفحه استفاده می کنم YSlow است که استفاده از etag را توصیه کرده است
حال برگردیم به اصل سوال بالاخره etag در آپاچی فعال باشد یا نباشد
etag زمان درخواست یک صفحه از سرور بصورت هدر به صفحه الصاق می شود
اما هیچ کاربردی برای کلاینت (=مرورگر) ندارد مخصوصا که بصورت رمز شده است
هر وقت مرورگر درخواست تکرار ارسال فایل به سرور را بدهد etag را برای اطلاع به سرور آپاچی اعلام می کند
آپاچی مقدار etag را بر اساس تاریخ ?نام و شماره inode فایل می سازد و با دریافت آن از مرورگر سریعا می تواند بفهمد که فایل تغییر داشته یا نه
و بر اساس آن تصمیم گیری کند که برای مرور گر کد 200 را ارسال کند یا 304
بنابراین آپاچی یا دریافت مقدار رمز شده آن از مرورگر در پاسخ دهی به درخواست مرورگر و تعین کد ارسالی 200 یا 304 سریعتر عمل می کند
با این توضیحات مشخص می شود که وجود و استفاده از etag کمک به بالا رفتن سرعت لود صفحه می کند
اما اینکه چه زمانهایی بهتر است etrag را خاموش کرد باید گفت
در مواردی که از cdn استفاده می کنید یعنی میزبانی فایلهای شما بر روی بیش از یک سرور انجام میشود مثل کاری که گوگل کرده و سایر سایتهای چند سروری بهتر است
etag خاموش شود چرا که روش ایجاد هش یا hash در دو کامپیوتر ممکن است مثل هم نباشد و با این حساب ممکن است etag در محاسبات عملا کاربردی نداشته باشد
روزتون به خیر. خسته نباشید . مرسی از مطالب وبلاگتون .
همانطور که قبلا گفته شد ما دو جور مدیریت کش بیشتر نمی توانیم داشته باشیم
یک- مدیریت کش نرم افزای (مبتنی بر مرورگر)
دو- مدیریت کش سخت افزاری ( میتنی بر سرور)
مدیریت کش سخت افزار خیلی جا نیفتاده و جز در موارد خاص مثل بازی های آنلاین یا سیستم های چتینگ استفاده ای از آن نمی شود و گفتیم که انواع مطرح آن xcached و apc و memcach هست
مدیریت کش نرم افزار هم به طرق مختلف می شود انجام داد
1- با استفاده از Htaccess (البته به شرط فعال بودن مودهای مربوطه در سرور آپاچی)
2- با استفاده از زبان برنامه نویسی سمت سرور (مثل php ) و ارسال هدر ها مربوطه به کلاینت
3- تنظیمات خود مرورگر
اگر دقت کرده باشید جایی برای جاوا اسکریپت و جی کوئری وجود ندارد
پس چرا در راهنما های جی کوئری به کررات از کش کردن صحبت و تاکید شده
معمولا در برنامه نویسی تحت جاواسکریپت (فرقی نمی کند با فریم ورک هایی مثل موتولز یا پروتایپ یاجی کوئری این کار بشود یا بصورت کد مستقیم جاواسکریپتی) وقتهایی که قصد ثبت یا بررسی رویدادی سمت سرور را در یک سیکل نا معلوم داریم از setInterval (بصورت حلقه مستدام) یا setTimeout (تا مشاهده رویداد) استفاده می کنیم فکرش را بکنید در همان اول سیکل مرورگر پاسخ سرور را کش کند عملا پاسخ های جدیدتر و بعدی سرور دریافت نخواهد شد برای همین ضرورت تام دارد مانع از کش شدن در حالت آجاکس شویم
زبان جی کوئری با ترفند هایی با هدف تغییر آدرس فایل درخواست فایل می کند در این موارد چون مکان فایل درخواست شده تغییر کرده است مرورگر دیگر از کش تبعیت نمی کند یکی از این راه ها افزودن پارامتر اضافی با متد GET در انتهای آدرس است که معمولا تایم استامپ می باشد
و وقتی صحبت از کش در جی کوئری می شود (در عملیات آجاکسی با جی کوئری) منظور این است که آدرس تغییر نداشته باشد
چند وقت پیش و به طور آنی شاهد تغییرات زیادی در ترافیک سایتهای فارسی شدیم یعنی من شخصا شاهد بودم که یک شبه و در 18 آبان بازدید وبلاگم که روزی متوسط بود 90 به 500 رسید و تقریبا در روزهای بعد هم در همین حدود یا کمی کمتر و بیشتر ماند. در همان تاریخ با مطلبی به این موضوع هم اشاره کردم
و در همان جا گفتم که از تحلیل آن عاجزم
تا اینکه امروز در خبرنامه سئوموز که برایم ایمیل شده بود متوجه خبری از پیاده سازی الگوریتم پاندا گوگل (که از بهمن 89 رسما اعلام و اجرای ان برای سایتهای انگلیسی زبان شروع شد) در زبان فارسی شدم
من از قبل خواندن این خبر در این خبرنامه با این الگوریتم و تاثیرات آن در سایتهای انگلیسی زبان آشنا شده بودم و اینکه چطور با اجرای آن در سایتهای پربازدید انگلیسی زبان یک دفعه افت بازدید در سایتهای کم کیفیت اما پربازدید ایجاد شده
وب سایت Wisegeek.com افت ترافیک 77% درصد
وب سایت Ezinearticles.com افت ترافیک 90% درصد
وب سایت Suite101.com افت ترافیک 94%
وب سایت Hubpages.com افت ترافیک 87%
وب سایت Buzzle.com افت ترافیک 93%
اما چون تاثیرات اجرای آن را در زبان فارسی ندیده بودم به نوعی فراموشش کرده بودم
به هرحال جای خوشبختی است که گوگل بالاخره توانست الگوریتم قوی تری از الگوریتم قبلی اش که مبتنی بر پیج رنک بود را اجرا کند
چرا که خود پیج رنک به عناصری وابسته بود که به راحتی قابل تقلید بود
و سایتهای بی محتوای زیادی با تقلب از گوگل ورودی می گرفتند
در الگوریتم جدید به جای لینک از سایتهای دیگر و یا شمارش تعداد ورودی های گوگل (در این حالت کاربر گوگل تنها با تکیه بر تایتل و یک پاراگراف کوچک از سایت حدس می زد که مطلب می تواند مفید باشد) از فاکتورهای پیچدیده ولی موثر تر دیگری استفاده کرد
مثل:
زمان ماندگاری در صفحه که بر اساس آن گوگل ضریب گزافه گویی را برای یک سایت تعریف کرد
یعنی اینکه وقتی کاربری از گوگل وارد یک صفحه از سایت شد چقدر رغبت می کند در صفحه بماند
یا اینکه کاربر چقدر از لینکهای ثبت شده در سایت استفاده می کند
بنابراین در الگوریتم گوگل دیگر تقلب جایی ندارد و شما نمی توانید یک شبه با عنایت از مزارع لینک به پیج رنک برسید و یا با افزایش ایندکس های خود از روش اسپمر گوگل ( که صفحات پوچ و بی ارزش شما را در نتایج جستجوی گوگل وارد می کند ) به سایت لینک برسید چرا که گوگل گزافه گویی را با عدم مکث کاربر در صفحه تشخیص می دهد
توصیه اکید من این است که با در پیش گرفت موارد زیر بطور شرافتمندانه از گوگل ورودی بگیرید
1- تولید محتوا و اجتناب از کپی مطالب دیگران
2- لینک به منبع (یادتان باشد همینکه کاربر با لینک از سایت شما به سایت دیگری می رود طبق الگوریتم پاندا امتیاز است و با این الگوریتم دیگر قواعد دست و پا گیر پیج رنک را فراموش کنید
3- اگر از طریق لینک آگهی قصد درآمد زایی یا فروش محصول خود را دارید آن را با آموزش همراه کنید(در پاندا گوگل تاکید ویژه ای بر محتوای آموزش گونه شده) آنهم آموزشی که کاربر را چند دقیقه ای در صفحه نگهدارد
4- شریک کردن گوگل در صفحه: یکی از ارکانی که به گوگل در بررسی صفحه کمک می کند را داشته باشید (مثل نصب آنالیزر گوگل یا گوگل پلاس یا ادسنز گوگل یا....)
اگر خاطرتون باشه گفتیم که پیش بارگذاری عکس با کمک جاوا اسکریپت که مهمترین و قدیمیترین روش برای پیش بارگذاری عکس است که روشی هم خوب است و هم بد و دیگه خیلی فرصت نشد در اینباره بحث کنیم که ذیلا این کار انجام می شود
مهمترین فایده یش بارگذاری عکس با کمک جاوا اسکریپت کنترل راحت تر آن است ولی یک ایراد در فایرفاکس برای پیش بارگذاری عکس با کمک جاوا اسکریپت دیده می شود
و آن اینکه فایرفاکس عکس ها را در اینحالت نه بصورت پارالل بلکه بصورت سریال دانلود می کند در کروم هم سرعت بارگذاری در این روش فوق العاده کم است و بهترین سرعت در بین مرورگرهای اینترنت اکسپلور در IE9 دیده شد
بنابراین اگر حوصله تفکیک مرورگر ها را دارید بهتر است برای فایرفاکس و کروم از فریم پنهان یا قرار دادن عکس در داخل تگ دیو مخفی شده استفاده کنید (برای این دو مرورگر به جای جاوااسکریپت از این روش استفاده شود) و برای اینترنت اکسپلور هم از همان روش جاوا اسکریپتی
عکس های زیر شماتیک تست انجام شده در سه مرورگر گفته شده است
یکی از کارهای خوب در سئو می تواند سرعت بخشیدن به لود و بارگذاری صفحه است
شما می تونید مثلا عکسهایی را که انتظار داریم کاربر در مراجعه به صفحه بعدی رویت می کند را از قبل بارگذاری نمایید
این کار باعث میشه که سرعت باز شدن صفحه بعد به مراتب بالابره بدون اینکه کاربر خودش هم دلیل آنرا نفهمد
در اینجا به روش های مرسوم پبش بارگذاری عکس می پردازیم
سه روش برای اینکار وجود دارد که مهمترین و قدیمیترین آن پیش بارگذاری عکس با کمک جاوا اسکریپت است که هم روشی خوب است و هم بد و انشالله در پست بعدی به آن می پردازیم
یکی از دو روش دیگر طریق قرار دادن در داخل تگ دیو مخفی شده است مثل
که خیلی توصیه نمی شود (مهمترین دلیلش این است که می تواند توسط بعض از انجین ها از جمله گوگل (که خیلی مطمئن نیستم) تقلب محسوب شود
و روش دیگر که آن نیز قدیمی و فراموش شده است (حداقل توسط سئو کاران حرفه ای) فراخوانی فریمی است که عکس های ما در آن قرار داده شده است
البته به صورتی که فرم قابل نمایش نباشد مثلا با عرض 0
در کل روش جاواسکریپتی بهترین و قابل کنترل ترین روش است
دموی آن را می توانید از لینک زیر ببینید
پیش بارگذاری عکس با کمک جاوا اسکریپت