loading...

طراحي سايت / سئو سايت

طراحي و بهينه سازي سايت

بازدید : 336
11 زمان : 1399:2

همونطور كه ميدانيد بيشتر حجم سايتها رو تصاوير تشكيل داده است. با استفاده از اين تكنيك ها ميتوانيد اونا رو بهينه سازي كنيد و سايز اونا رو تا حد ممكن پايين بياريد و سايت خودتون رو بهينه كنيد.

تكنيك هايي كه در اين مطلب بيان ميشه برگرفته از كتاب بهينه سازي تصاوير نوشته شده توسط Addy Osmani هست. در هر نوع سايتي كه از تصاوير استفاده ميكنيد ميتوانيد از اين قواعد بهره ببريد.

تصاوير مهم و بحراني رو انتخاب كرده و اونا رو Preload كنيد

به سايت خودتون نگاه بندازيد و تصاوير مهم و حياتي رو مشخص كنيد. در اغلب اوقات لوگو و تصوير اصلي بالايي صفحه، تصاويري هستند كه شما ميخواهيد در اسرع وقت لود بشن و نمايش داده بشن. اينجا هست كه ميتوانيم از ويژگي Preload استفاده كنيم. ويژگي Preload به مرورگر ميگه كه كدام تصاوير اولويت دارن و قبل از تجزيه و تحليل محتوا بايد اونا رو دريافت كنه و نمايش بده.

شما ميتوانيد از اون براي هر چيزي استفاده كنيد ولي بايد در نظر داشته باشيد كه به جز در موارد ضروري و تصاير حياتي از اين مورد استفاده نكنيد. فرض كنيد كه ميخواهيم تصوير اصلي يك سايت رو Preload كنيم. براي اينكار بصورت زير عمل ميكنيم:

كد بالا رو در قسمت Head سايت خودتون قرار بدين. شما همچنين ميتوانيد از Preload در هدرهاي HTTP استفاده كنيد. بصورت زير:

Link: ; rel=preload; as=image

در تصوير زير دو حالت مختلف از لود شدن تصوير رو مشاهده ميكنيد كه تفاوت استفاده يا عدم استفاده از Preload در اون مشخص شده است:

همونطور كه ميبينيد در مثال بالا تصوير در حالت Preload تقريبا 0.5 ثانيه زودتر لود و نمايش داده شده است. پس در مواقع ضروري از اين ويژگي استفاده كنيد و تصاوير اصلي خودتون رو زودتر در اختيار كاربر قرار بدين.

كدهاي SVG را بصورت اتوماتيك ساده سازي كنيد

بهينه سازي SVG با بهينه سازي انواع تصاوير ديگه تفاوت داره چون برخلاف تصاوير PNG و JPG ، تصاوير SVG بصورت متني هستند و شبيه به كدهاي XML هست. پس شما از هر روشي كه براي فشرده سازي متون استفاده ميكنيد، ميتوانيد براي بهينه سازي SVG نيز استفاده كنيد. علاوه براي اين موارد شما ميتوانيد از ابزار SVGO استفاده كنيد و سايز فايلهاي SVG خودتون رو پايين بياريد.

ابزار SVGO امكانات و ويژگي هاي زيادي رو در اختيارتون قرار ميده كه با استفاده از اونا ميتوانيد بصورت كامل بر روي فايلهاي SVG خودتون مديريت داشته باشيد و اون چيزاي اضافي رو حذف كنيد و با اينكار حجم SVG خودتون رو كاهش بديد.

شما با استفاده از نرم افزارهاي گرافيكي مثل Adobe Illustrator كه SVG رو به وجود مياريد، ميتوانيد بصورت اتوماتيك مسيرهاي SVG رو ساده سازي كنيد و با اينكار سايز تصاوير SVG خودتون رو كاهش بدين. تصوير زير رو ببينيد:

تصوير سمت چپ، تصوير اوليه هست و همونطور كه مشاهده ميكنيد 251 نقطه داره و حجم اون تقريبا 21 كيلوبايت هست. زماني كه تصوير رو ساده سازي ميكنيد، تفاوت چنداني در ظاهر اون به وجود نمياد ولي تعداد نقاط اون به 152 عدد ميرسه و حجم اون هم تقريبا 5 كيلوبايت كاهش پيدا ميكنه. شما با اين روش ساده و اتوماتيك مسيرهاي SVG رو ساده سازي كرديد.

تبديل تصاوير انيميشني GIF به ويديو

همه ما GIF هاي خوب رو دوست داريم و از اونا زياد استفاده ميكنيم. شما با استفاده از GIF ميتوانيد تقريبا هر چيزي رو نمايش بدين ولي مشكلي كه دارن اينه كه حجم زيادي دارن و نميشه اونا رو متوقف كرد و ...

ابزارهاي زيادي مثل gifsicle و ... وجود دارند كه با استفاده از اونا ميتوانيد سايز تصاوير GIF رو تا حدي پايين بياريد ولي بازم اين مقدار كاهش حجم خيلي چشم گير نيست و بازم با حجم اون مشكل داريم و بقيه مشكلات GIF هم سر جاي خودش باقي ميمونه.

تكنيكي كه در اينجا ميتوانيد از اون استفاده كنيد، تبديل فايلهاي GIF به ويديو هست. بعد از تبديل به ويديو ميتوانيد اونا رو با استفاده از تگ Video در صفحات خودتون وارد كنيد و به كاربران نمايش بدين.

شما با استفاده از روشهاي مختلف ميتوانيد اين تبديل رو انجام بدين. يكي از اين راه ها استفاده از ابزار FFMpeg هست. با استفاده از اين ابزار به راحتي ميتوانيد GIF رو به فرمتهاي MP4 يا OGV يا WEBM و ... تبديل كنيد. براي اينكار ميتوانيد از دستورات زير استفاده كنيد:

1- ffmpeg -i animated.gif -b:v 512K animated.webm

2- ffmpeg -i animated.gif -b:v 512K animated.ogv

3- ffmpeg -i animated.gif -b:v 512K animated.mp4

در دستورات بالا بعد از i يا input ميتوانيد فايل GIF ورودي رو مشخص كنيد و با استفاده از b هم ميتوانيد bitrate اون رو مشخص كنيد. در نهايت هم نام و فرمت فايل خروجي رو مشخص ميكنيم. در يك تست انجام شده يك فايل GIF ورودي با حجم 989 كيلوبايت به ويديو تبديل شده و سايز اون بصورت زير شده است:

  • سايز 155 كيلوبايت در فرمت MP4
  • سايز 109 كيلوبايت در فرمت OGV
  • سايز 85 كيلوبايت در فرمت WebM

با اينكه اين تغيير فرمت سايز خيلي زيادي رو كم ميكنه ولي كيفيت ويديو ساخته شده خيلي با GIF اوليه تفاوت نداره. حالا شما ميتوانيد اين ويديوهاي ساخته شده رو درون كدهاي HTML خودتون قرار بدين. بصورت زير:

با اينكار اولين فرمتي كه توسط مرورگر پشتيباني بشه انتخاب ميشه و در مرورگر نمايش داده ميشه.

لود كردن تصاوير با استفاده از IntersectionObserver

احتمالا زياد از تكنيك Lazy loading براي لود كردن تصاوير استفاده كرده باشيد. ولي بيشتر ابزارهايي كه براي اينكار مورد استفاده قرار ميگيره زياد از CPU استفاده ميكنن چون در هر لحظه موقعيت فعلي اسكرول صفحه رو بررسي ميكنن و با توجه به اون تصميم ميگيرن كه تصوير مورد نظر بايد لود بشه يا خير. دستگاه هايي كه CPU ضعيفي دارند در اين مواقع به مشكل بر ميخورن و سايت شما رو با اختلال مواجه ميكنه.

خوشبختانه با استفاده از Intersection Observer API ميتوانيد خيلي ساده تر و بهينه تر اينكار رو انجام بدين و متوجه بشيد كه تصوير چه زماني وارد Viewport ميشه و در همون زمان تصوير مورد نظر رو لود كنيد تا كاربر بتونه اون رو مشاهده بكنه. نحوه استفاده از اين API رو در ادامه توضيح ميديم. در ابتدا تصوير رو در كدهاي HTML قرار ميديم:

I'm lazy.

همونطور كه ميبينيد در src يك تصوير placeholder يا اوليه قرار داديم تا زماني كه تصوير اصلي لود نشده است اون رو نمايش ميديم. تصويري كه ميخوايم بصورت Lazy load با استفاده از API اون رو لود كنيم درون ويژگي data-src قرار ميديم. حالا ميتونيم با استفاده از كلاس در Javascript به اين تصوير دسترسي داشته باشيم و كارهاي مورد نظرمون رو انجام بديم. بصورت زير:

document.addEventListener("DOMContentLoaded", function(){

if("IntersectionObserver" in window && "IntersectionObserverEntry" in window && "intersectionRatio" in window.IntersectionObserverEntry.prototype){

elements = document.querySelectorAll("img.lazy");

var imageObserver = new IntersectionObserver(function(entries, observer){

entries.forEach(function(entry){

if(entry.isIntersecting){

entry.target.setAttribute("src", entry.target.getAttribute("data-src"));

entry.target.classList.remove("lazy");

imageObserver.unobserve(entry.target);

}

});

});

elements.forEach(function(image){

imageObserver.observe(image);

});

}

});

همونطور كه ميبينيد در ابتدا بررسي شده كه Intersection API در مرورگر كاربر پشتيباني ميشه يا خير. بعد از اون تصاويري كه در Viewport قرار ميگيرن رو لود ميكنيم.

اميدواريم با استفاده از تكنيك هايي كه اينجا بيان كرديم به بهينه سازي تصاوير در وب سايت شما كمك كرده باشيم.

تبليغات ميان متني/

درب شيشه اي يكي از ملزومات دكوراسيون لوكس و مدرن ساختمان هاي امروز به حساب مي آيند. قيمت درب شيشه اي را در سايت قائم الكتريك مشاهده كنيد. همچنين درب ورودي ساختمان ها نيز براي حفظ امنيت عبور و مرور نيازمند تجهيزات راهبند است. قيمت راهبند را از قائم الكترونيك به راحتي دريافت كنيد. تيم نكته عمومي و عاميانه اين است كه در شيشه اي يا همان درب شيشه اي به درب اتوماتيك شيشه اي اشاره دارند. درب شيشه اي در انواع مختلف را از قائم الكترونيك بخواهيد.

تبليغات ميان متني

-------------------------------------------------------------------------------------------------------------------------------------------

همچنين مي توانيد كركره برقي و قيمت كركره برقي و پرده برقي را در وبسايت قائم الكترونيك و از كارشناسان اين شركت استعلام كنيد. ما ۲۴ ساعت شبانه روز آماده خدمت به شما عزيزان هستيم. هموطنان ايراني همچنين مي توانند انواع جك برقي و قيمت جك برقي را در سايت قائم الكترونيك دنبال كنند.

تبليغات ميان متني

------------------------------------------------------------------------------------------------------------------------------------

همونطور كه ميدانيد بيشتر حجم سايتها رو تصاوير تشكيل داده است. با استفاده از اين تكنيك ها ميتوانيد اونا رو بهينه سازي كنيد و سايز اونا رو تا حد ممكن پايين بياريد و سايت خودتون رو بهينه كنيد.

تكنيك هايي كه در اين مطلب بيان ميشه برگرفته از كتاب بهينه سازي تصاوير نوشته شده توسط Addy Osmani هست. در هر نوع سايتي كه از تصاوير استفاده ميكنيد ميتوانيد از اين قواعد بهره ببريد.

تصاوير مهم و بحراني رو انتخاب كرده و اونا رو Preload كنيد

به سايت خودتون نگاه بندازيد و تصاوير مهم و حياتي رو مشخص كنيد. در اغلب اوقات لوگو و تصوير اصلي بالايي صفحه، تصاويري هستند كه شما ميخواهيد در اسرع وقت لود بشن و نمايش داده بشن. اينجا هست كه ميتوانيم از ويژگي Preload استفاده كنيم. ويژگي Preload به مرورگر ميگه كه كدام تصاوير اولويت دارن و قبل از تجزيه و تحليل محتوا بايد اونا رو دريافت كنه و نمايش بده.

شما ميتوانيد از اون براي هر چيزي استفاده كنيد ولي بايد در نظر داشته باشيد كه به جز در موارد ضروري و تصاير حياتي از اين مورد استفاده نكنيد. فرض كنيد كه ميخواهيم تصوير اصلي يك سايت رو Preload كنيم. براي اينكار بصورت زير عمل ميكنيم:

كد بالا رو در قسمت Head سايت خودتون قرار بدين. شما همچنين ميتوانيد از Preload در هدرهاي HTTP استفاده كنيد. بصورت زير:

Link: ; rel=preload; as=image

در تصوير زير دو حالت مختلف از لود شدن تصوير رو مشاهده ميكنيد كه تفاوت استفاده يا عدم استفاده از Preload در اون مشخص شده است:

همونطور كه ميبينيد در مثال بالا تصوير در حالت Preload تقريبا 0.5 ثانيه زودتر لود و نمايش داده شده است. پس در مواقع ضروري از اين ويژگي استفاده كنيد و تصاوير اصلي خودتون رو زودتر در اختيار كاربر قرار بدين.

كدهاي SVG را بصورت اتوماتيك ساده سازي كنيد

بهينه سازي SVG با بهينه سازي انواع تصاوير ديگه تفاوت داره چون برخلاف تصاوير PNG و JPG ، تصاوير SVG بصورت متني هستند و شبيه به كدهاي XML هست. پس شما از هر روشي كه براي فشرده سازي متون استفاده ميكنيد، ميتوانيد براي بهينه سازي SVG نيز استفاده كنيد. علاوه براي اين موارد شما ميتوانيد از ابزار SVGO استفاده كنيد و سايز فايلهاي SVG خودتون رو پايين بياريد.

ابزار SVGO امكانات و ويژگي هاي زيادي رو در اختيارتون قرار ميده كه با استفاده از اونا ميتوانيد بصورت كامل بر روي فايلهاي SVG خودتون مديريت داشته باشيد و اون چيزاي اضافي رو حذف كنيد و با اينكار حجم SVG خودتون رو كاهش بديد.

شما با استفاده از نرم افزارهاي گرافيكي مثل Adobe Illustrator كه SVG رو به وجود مياريد، ميتوانيد بصورت اتوماتيك مسيرهاي SVG رو ساده سازي كنيد و با اينكار سايز تصاوير SVG خودتون رو كاهش بدين. تصوير زير رو ببينيد:

تصوير سمت چپ، تصوير اوليه هست و همونطور كه مشاهده ميكنيد 251 نقطه داره و حجم اون تقريبا 21 كيلوبايت هست. زماني كه تصوير رو ساده سازي ميكنيد، تفاوت چنداني در ظاهر اون به وجود نمياد ولي تعداد نقاط اون به 152 عدد ميرسه و حجم اون هم تقريبا 5 كيلوبايت كاهش پيدا ميكنه. شما با اين روش ساده و اتوماتيك مسيرهاي SVG رو ساده سازي كرديد.

تبديل تصاوير انيميشني GIF به ويديو

همه ما GIF هاي خوب رو دوست داريم و از اونا زياد استفاده ميكنيم. شما با استفاده از GIF ميتوانيد تقريبا هر چيزي رو نمايش بدين ولي مشكلي كه دارن اينه كه حجم زيادي دارن و نميشه اونا رو متوقف كرد و ...

ابزارهاي زيادي مثل gifsicle و ... وجود دارند كه با استفاده از اونا ميتوانيد سايز تصاوير GIF رو تا حدي پايين بياريد ولي بازم اين مقدار كاهش حجم خيلي چشم گير نيست و بازم با حجم اون مشكل داريم و بقيه مشكلات GIF هم سر جاي خودش باقي ميمونه.

تكنيكي كه در اينجا ميتوانيد از اون استفاده كنيد، تبديل فايلهاي GIF به ويديو هست. بعد از تبديل به ويديو ميتوانيد اونا رو با استفاده از تگ Video در صفحات خودتون وارد كنيد و به كاربران نمايش بدين.

شما با استفاده از روشهاي مختلف ميتوانيد اين تبديل رو انجام بدين. يكي از اين راه ها استفاده از ابزار FFMpeg هست. با استفاده از اين ابزار به راحتي ميتوانيد GIF رو به فرمتهاي MP4 يا OGV يا WEBM و ... تبديل كنيد. براي اينكار ميتوانيد از دستورات زير استفاده كنيد:

1- ffmpeg -i animated.gif -b:v 512K animated.webm

2- ffmpeg -i animated.gif -b:v 512K animated.ogv

3- ffmpeg -i animated.gif -b:v 512K animated.mp4

در دستورات بالا بعد از i يا input ميتوانيد فايل GIF ورودي رو مشخص كنيد و با استفاده از b هم ميتوانيد bitrate اون رو مشخص كنيد. در نهايت هم نام و فرمت فايل خروجي رو مشخص ميكنيم. در يك تست انجام شده يك فايل GIF ورودي با حجم 989 كيلوبايت به ويديو تبديل شده و سايز اون بصورت زير شده است:

  • سايز 155 كيلوبايت در فرمت MP4
  • سايز 109 كيلوبايت در فرمت OGV
  • سايز 85 كيلوبايت در فرمت WebM

با اينكه اين تغيير فرمت سايز خيلي زيادي رو كم ميكنه ولي كيفيت ويديو ساخته شده خيلي با GIF اوليه تفاوت نداره. حالا شما ميتوانيد اين ويديوهاي ساخته شده رو درون كدهاي HTML خودتون قرار بدين. بصورت زير:

با اينكار اولين فرمتي كه توسط مرورگر پشتيباني بشه انتخاب ميشه و در مرورگر نمايش داده ميشه.

لود كردن تصاوير با استفاده از IntersectionObserver

احتمالا زياد از تكنيك Lazy loading براي لود كردن تصاوير استفاده كرده باشيد. ولي بيشتر ابزارهايي كه براي اينكار مورد استفاده قرار ميگيره زياد از CPU استفاده ميكنن چون در هر لحظه موقعيت فعلي اسكرول صفحه رو بررسي ميكنن و با توجه به اون تصميم ميگيرن كه تصوير مورد نظر بايد لود بشه يا خير. دستگاه هايي كه CPU ضعيفي دارند در اين مواقع به مشكل بر ميخورن و سايت شما رو با اختلال مواجه ميكنه.

خوشبختانه با استفاده از Intersection Observer API ميتوانيد خيلي ساده تر و بهينه تر اينكار رو انجام بدين و متوجه بشيد كه تصوير چه زماني وارد Viewport ميشه و در همون زمان تصوير مورد نظر رو لود كنيد تا كاربر بتونه اون رو مشاهده بكنه. نحوه استفاده از اين API رو در ادامه توضيح ميديم. در ابتدا تصوير رو در كدهاي HTML قرار ميديم:

I'm lazy.

همونطور كه ميبينيد در src يك تصوير placeholder يا اوليه قرار داديم تا زماني كه تصوير اصلي لود نشده است اون رو نمايش ميديم. تصويري كه ميخوايم بصورت Lazy load با استفاده از API اون رو لود كنيم درون ويژگي data-src قرار ميديم. حالا ميتونيم با استفاده از كلاس در Javascript به اين تصوير دسترسي داشته باشيم و كارهاي مورد نظرمون رو انجام بديم. بصورت زير:

document.addEventListener("DOMContentLoaded", function(){

if("IntersectionObserver" in window && "IntersectionObserverEntry" in window && "intersectionRatio" in window.IntersectionObserverEntry.prototype){

elements = document.querySelectorAll("img.lazy");

var imageObserver = new IntersectionObserver(function(entries, observer){

entries.forEach(function(entry){

if(entry.isIntersecting){

entry.target.setAttribute("src", entry.target.getAttribute("data-src"));

entry.target.classList.remove("lazy");

imageObserver.unobserve(entry.target);

}

});

});

elements.forEach(function(image){

imageObserver.observe(image);

});

}

});

همونطور كه ميبينيد در ابتدا بررسي شده كه Intersection API در مرورگر كاربر پشتيباني ميشه يا خير. بعد از اون تصاويري كه در Viewport قرار ميگيرن رو لود ميكنيم.

اميدواريم با استفاده از تكنيك هايي كه اينجا بيان كرديم به بهينه سازي تصاوير در وب سايت شما كمك كرده باشيم.

تبليغات ميان متني/

درب شيشه اي يكي از ملزومات دكوراسيون لوكس و مدرن ساختمان هاي امروز به حساب مي آيند. قيمت درب شيشه اي را در سايت قائم الكتريك مشاهده كنيد. همچنين درب ورودي ساختمان ها نيز براي حفظ امنيت عبور و مرور نيازمند تجهيزات راهبند است. قيمت راهبند را از قائم الكترونيك به راحتي دريافت كنيد. تيم نكته عمومي و عاميانه اين است كه در شيشه اي يا همان درب شيشه اي به درب اتوماتيك شيشه اي اشاره دارند. درب شيشه اي در انواع مختلف را از قائم الكترونيك بخواهيد.

تبليغات ميان متني

-------------------------------------------------------------------------------------------------------------------------------------------

همچنين مي توانيد كركره برقي و قيمت كركره برقي و پرده برقي را در وبسايت قائم الكترونيك و از كارشناسان اين شركت استعلام كنيد. ما ۲۴ ساعت شبانه روز آماده خدمت به شما عزيزان هستيم. هموطنان ايراني همچنين مي توانند انواع جك برقي و قيمت جك برقي را در سايت قائم الكترونيك دنبال كنند.

تبليغات ميان متني

------------------------------------------------------------------------------------------------------------------------------------

نظرات این مطلب

تعداد صفحات : 4

درباره ما
موضوعات
لینک دوستان
آمار سایت
  • کل مطالب : 47
  • کل نظرات : 0
  • افراد آنلاین : 1
  • تعداد اعضا : 1
  • بازدید امروز : 1
  • بازدید کننده امروز : 1
  • باردید دیروز : 10
  • بازدید کننده دیروز : 0
  • گوگل امروز : 0
  • گوگل دیروز : 0
  • بازدید هفته : 13
  • بازدید ماه : 360
  • بازدید سال : 641
  • بازدید کلی : 30691
  • <
    پیوندهای روزانه
    آرشیو
    اطلاعات کاربری
    نام کاربری :
    رمز عبور :
  • فراموشی رمز عبور؟
  • خبر نامه


    معرفی وبلاگ به یک دوست


    ایمیل شما :

    ایمیل دوست شما :



    کدهای اختصاصی