آگهی
article

کاربرد متاتگ refresh در صفحات وب (HTML)

html-meta-tag-refresh

همانطور که می دانیم سورس کدهای صفحات وب از استاندارد زبان HTML یا (HyperText Markup Language) پیروی می کنند، یعنی فارغ از اینکه به چه زبان سمت سروری برنامه نویسی کنیم حاصل کار در وب به صورت کدهای HTML نمایان خواهد شد، از طرفی گاهی مواقع به دلایل مختلف دسترسی به سرور محدود شده یا امکان پذیر نیست و برای اعمال دستورات و سلایق خود ناچاریم دست به دامن کدهای HTML شویم که نمود بارز این موضوع در سرویس های مدیریت وبلاگ خودنمائی می کند، به طور مثال اگر بخواهیم به صورت خودکار کاربران را از وبلاگ قدیمی به وبلاگ جدید هدایت کنیم به طور معمول باید از متاتگی به نام refresh (رفرش یا تازه سازی) استفاده کنیم که در این آموزش به تفصیل در خصوص آن صحبت خواهیم کرد.

متاتگ refresh چیست؟


متاتگ refresh (رفرش یا تازه سازی) زیرمجموعه ای از شاخه متاتگ های خانواده http-equiv است که برای تنظیم سربرگ های HTTP یا HTTP Headers در زبان HTML به کار می روند، عبارت equiv مخفف Equivalent به معنی معادل یا مشابه است که منظور مشابه سازی دستورات HTTP سرور با کدهای HTML است.
به طور ساده HTTP Header به معنی پاسخ استاندارد و تعریف شده ای است که در جواب درخواست کاربر (Client) از سرور (Server) تنظیم و به عنوان سربرگ ارسال می شود تا مرورگر بتواند به فرض وضعیت بارگذاری صفحه، خطاهای سرور، نحوه پردازش، یونیکد، ذخیره سازی و... را مدیریت کند، این پاسخ ها معمولا توسط سیستم عامل یا برنامه نویسی سرور به مرورگر ارسال می شوند اما با روشی مشابه در HTML نیز می توانیم این کار را معادل سازی کنیم.
نکته: با استفاده از قابلیت Developer در مرورگرها (معمولا با فشردن کلید F12 در دسترس است) می توانیم سربرگ های رد و بدل شده در یک درخواست تحت وب را مشاهده کنیم.
متاتگ های خانواده http-equiv کاربردهای زیادی دارند که در زیر به صورت نمونه به آنها اشاره می کنیم:
- کنترل ذخیره موقت صفحه (cache-control)
<meta http-equiv="cache-control" content="no-cache">
- تعیین زبان محتوای صفحه (content-language)
<meta http-equiv="content-language" content="fa-IR">
- تعیین نوع و یونیکد محتوای صفحه (content-type)
HTML 4:
<meta http-equiv="content-type" content="text/html; charset=UTF-8">

HTML 5:
<meta charset="utf-8">
- تعیین تاریخ ایجاد صفحه (date)
<meta http-equiv="date" content="Wed, 21 Feb 2012 20:55:12 GMT">
- تعیین تاریخ انقضای صفحه (expires)
<meta http-equiv="expires" content="never">
- تعیین تاریخ آخرین ویرایش صفحه (last-modified)
<meta http-equiv="last-modified" content="Mon, 01 Jan 2013 18:32:44 GMT">
- تعیین موقعیت برای انتقال (location)
<meta http-equiv="location" content="URL=https://webgoo.ir">
- تعیین مدت زمان برای رفرش خودکار صفحه یا انتقال به آدرس خاص (refresh)
<meta http-equiv="refresh" content="200">

<meta http-equiv="refresh" content="30; URL=https://webgoo.ir">
- تنظیم کوکی ها (set-cookie)
<meta http-equiv="set-cookie" content="cookie_name=value;expires=Fri, 1 Dec 2013 11:30:00 GMT; path=/">
- نحوه نمایش صفحه در فریم (window-target)
<meta http-equiv="window-target" content="_top">

در چه مواردی از متاتگ refresh استفاده کنیم؟


واقعیت این است که استفاده از متاتگ رفرش (refresh) برای صفحاتی که اهمیت زیادی دارند توصیه نمی شود و ممکن است این کار باعث بروز مشکلاتی با موتورهای جستجو شود که در نهایت به سئوی سایت یا وبلاگمان صدمه می زند، اما این گفته بدین معنی نیست که به کل نتوانیم از این متاتگ استفاده کنیم، اگر به فرض وبلاگی قدیمی داشته باشیم و بخواهیم به هر دلیل مطالب و فعالیتمان را به وبلاگی جدید منتقل کنیم، می توانیم از این متاتگ استفاده کرده و کاربران را به طور خودکار به آدرس جدید هدایت کنیم که به این کار در اصطلاح ریدایرکت (Redirect) می گویند، یا فرض کنیم در صفحات موسوم به 404 (کد HTTP خطای صفحه مورد نظر پیدا نشد!) می توانیم کاربر را پس از چند ثانیه به صورت خودکار به صفحه اصلی سایت یا وبلاگمان منتقل کنیم، نمونه دیگر می تواند استفاده از متاتگ refresh در هنگام ورود و خروج کاربران به سیستم و پنل مدیریت باشد و یا در موقعیت های مشابه که نیاز به انتقال خودکار از آدرس های URL مختلف است، پس یادمان باشد که استفاده از این متاتگ در همه جا توصیه نمی شود و فقط در موارد خاصی که مخصوصا صحبت از موتورهای جستجو در میان نیست می توانیم از آن استفاده کنیم.
نکته: برای صفحاتی که نیاز به رفرش اطلاعات در فواصل زمانی خاص دارند و از طرفی کسب رتبه مناسب در موتورهای جستجو نیز برایشان دارای اهمیت است استفاده از شیوه های جایگزین نظیر کدهای جاوا اسکریپت توصیه می شود، مثال:
setTimeout(function(){
   window.location.reload(true);
}, 5000);
که عدد 5000 به معنی 5 ثانیه (5000 میلی ثانیه) است و صفحه هر 5 ثانیه به صورت خودکار رفرش خواهد شد.

چگونه از متاتگ refresh استفاده کنیم؟


استفاده از این متاتگ ساده و سریع است، کافی است درون تگ های head ترجیحا در ابتدای صفحه نمونه کد زیر را قرار داده مدت زمان به ثانیه و آدرس URL صفحه مقصد را در قسمت content تنظیم نمائیم:
<meta http-equiv="refresh" content="30; URL=https://webgoo.ir">
توضیح:
- مقادیر عددی موجود در قسمت content میزان زمان به ثانیه است که کاربر پس از گذشت این مدت به صفحه مقصد منتقل خواهد شد.
- قسمت مربوط به URL با آدرس کامل صفحه مقصد تکمیل می شود.
از متاتگ refresh برای بارگذاری مجدد و به اصطلاح رفرش همان صفحه نیز می توانیم استفاده کنیم و اجباری برای انتقال کاربر به صفحه ای دیگر وجود ندارد، در این صورت نیاز به درج پارامتر مربوط به قسمت URL نیست و صرف درج مدت زمان به ثانیه کافی خواهد بود:
<meta http-equiv="refresh" content="200">

آشنایی با سایر روش های انتقال (

Redirect

)
در انتهای این مطلب بد نیست به سایر روش هایی که برخلاف متاتگ refresh مورد قبول موتورهای جستجو هستند اشاره ای داشته باشیم.
- استفاده از فایل htaccess و کد HTTP ریدایرکت 301
از نظر سئو (SEO) بهترین گزینه برای ایجاد انتقال از آدرس URL قدیمی به آدرس URL جدید استفاده از کد HTTP خطای 301 یا "HTTP/1.1 301 Moved Permanently" است، در این روش آدرس URL قدیمی با هدف انتقال همیگشی به آدرس URL جدید منتقل شده و علاوه بر این ارزش (Pagerank) آدرس قبلی حفظ و به آدرس جدید منتقل خواهد شد، برای ایجاد ریدایرکت 301 در فایل htaccess معمولا در سرورهای Apache می توانیم تنظیمات را انجام دهیم، مثال:
RewriteEngine on
RewriteRule (.*) https://webgoo.ir/ [R=301,L]
- استفاده از HTTP Header در PHP
علاوه بر روش htaccess در کدهای PHP نیز می توانیم این کار را با ارسال دستورات HTTP Header انجام دهیم، خوشبختانه با برنامه نویسی PHP به راحتی قادریم مقادیر ارسالی به عنوان Header صفحات را مدیریت کنیم، مثال:
<?php
Header("HTTP/1.1 301 Moved Permanently");
Header("Location: https://webgoo.ir");
?>
برای دیدن سایر متاتگ های HTML و آشنایی با کاربرد آنها می توانیم به آموزش زیر مراجعه کنیم:
متاتگ ها (Meta tags) و کاربرد آنها در صفحات وب (HTML)
sectionدسته بندی: آموزش کاربردی » HTML
related مطالب بیشتر:
» چگونه در وبلاگ و سایت، لینک دانلود قرار دهیم؟
» نحوه پخش فیلم و ویدئوهای FLV در سایت و وبلاگ
» نحوه قرار دادن جستجوی گوگل در سایت یا وبلاگ
» چگونه رنگ و تصویر پس زمینه سایت یا وبلاگ را تغییر دهیم؟
» چرا و چگونه از DOCTYPE در HTML استفاده کنیم؟
commentنظرات (۲۶ یادداشت برای این مطلب ارسال شده است)
more یادداشت های جدید بر اساس تاریخ ارسال در انتهای یادداشت های موجود نمایش داده می شوند.
نویسنده: علی
زمان: ۱۹:۲۰:۱۹ - تاریخ: ۱۳۹۴/۰۴/۱۹
سلام
ممنون از پاسخ شما/ کد داده شده جواب می دهد. اما می خواهم زمان رفرش کردن صفحه هر سه دقیقه باشد. کد داده شده هر لحظه رفرش می کند. منتظر پاسخ شما هستم. باز ممنون از شما
پاسخ: 
می توانید به جای 5000 مقدار بیشتر (به فرض 180000) قرار دهید!
نویسنده: امین
زمان: ۱۹:۵۰:۵۲ - تاریخ: ۱۳۹۴/۰۶/۱۴
سلام استاد
چطور میشه ساعت هاست رو با جاوا گرفت و نشون داد؟
ببینید من یک ساعت ساده تو سایت قرار دادم با کد جاوا که این ساعت هر ثانیه طبق معمول تغییر میکنه.
اما نکته اینه که ساعت کلاینت رو نشون میده نه هاستی که سایت روشه.
اگه بخوام با php استفاده کنم هم مجبورم هی صفحه رو رفرش کنم که اصلا جالب نیست.
چه چاره ای برای اینکار وجود داره؟
پاسخ: 
باید برای این کار JavaScript را با PHP ترکیب کنید، مثال:
<script type="text/javascript">
<!--
//تنظیم زمان بر اساس تاریخ سرور
var date = new Date(<?php echo date('y, n, j, G, i, s'); ?>);
//استخراج ساعت، دقیقه و ثانیه
var hour = date.getHours();
var minute = date.getMinutes();
var second = date.getSeconds();
//تابع برای محاسبه و نمایش زمان
function ShowTime(){
second++;
if(second.toString().length == 1){
second = '0' + second;
}
if(second>59){
second = '0' + 0;
minute++;
}
if(minute.toString().length == 1){
minute = '0' + minute;
}
if(minute>59){
minute = '0' + 0;
hour++;
}
if(hour.toString().length == 1){
hour = '0' + hour;
}
if(hour>23){
hour = '0' + 0;
}
//خروجی
var output = hour + ":" + minute + ":" + second;
//چاپ خروجی در بلاک
document.getElementById("show_time").innerHTML = output;
}
//اجرای تابع در هنگام بارگذاری صفحه
window.onload = function(){
//فراخوانی تابع اصلی پس از هر ثانیه
setInterval("ShowTime();", 1000);
}
-->
</script>
<!-- بلاک خروجی -->
<div id="show_time"></div>
نویسنده: امین
زمان: ۰۳:۰۰:۰۹ - تاریخ: ۱۳۹۴/۰۶/۱۸
خودم اینکار رو میخواستم بکنم اما نمیشد خط پایینی رو بدجور اشتباه مینوشتم !!!
var date = new Date(<?php echo date('y, n, j, G, i, s'); ?>);
این خطو!!
ممنون استاد عالی بود.
نویسنده: حمید
زمان: ۱۲:۱۷:۴۵ - تاریخ: ۱۳۹۴/۰۸/۲۳
نمیدونم داشمونی یا ابجیمون ولی خیلی لایک فقط فقط لایک
نویسنده: شاهین
زمان: ۱۱:۵۱:۵۸ - تاریخ: ۱۳۹۵/۰۲/۲۸
با سلام
من یه سایت دارم که وقتی کاربر وارد میشه پیام خوش آمد گویی میده ولی رو صفحه اول سایت بر نمیگرده .
میخواستم بدونم چه کدی باید استفاده کنم که بعد ورود کاربر سایت ریدایرکت بشه رو صفحه اول
ممنون
پاسخ: 
سوال مبهم است! لطفا با ذکر آدرس سایت مشکلتان را دقیقتر توضیح دهید تا امکان راهنمایی وجود داشته باشد!
نویسنده: علی
زمان: ۲۰:۲۵:۳۸ - تاریخ: ۱۳۹۵/۰۵/۰۵
با سلام من دکمه شیر را در وبلاگم گذاشتم عکس و خلاصه در تلگرام و فیس بوک ارسال نمی شود
در رزبلاگ وبلاگ دارم
متاتگ ها را گذاشتم ولی جواب نگرفتم
می شود متاتگ بگذارید برای نمایش مطالب در وبلاگ
http://rozblog.com/theme_help.html
پاسخ: 
حل این مشکل ارتباطی به متاتگ و آموزش حاضر ندارد، هرچند دقیقا مشکلتان بررسی نشده اما به نظر مسئله مربوط به تگ های اختصاصی رزبلاگ است که باید با پشتیبانی این سایت موضوع را مطرح نمائید.
نویسنده: امید
زمان: ۲۱:۰۸:۱۲ - تاریخ: ۱۳۹۶/۰۲/۲۸
تشکر می کنم
واقعا از این مطلب استفاده کردم
کارتون حرف نداره
نویسنده: محمد
زمان: ۱۰:۰۶:۴۲ - تاریخ: ۱۳۹۶/۰۴/۰۳
سلام؛ می خواستم بدانم چگونه کلمات کلیدی در صفحه html قرار دهم. ممنون.
پاسخ: 
اگر منظور کلمات کلیدی برای موتورهای جستجو با متاتگ است، می توانید از نمونه زیر پیروی کرده و در سورس قالب وبلاگتان درج نمائید:
<meta name="keywords" content="کلمات, کلیدی, سایت">
نویسنده: مهدی
زمان: ۱۵:۳۱:۰۰ - تاریخ: ۱۳۹۶/۱۲/۲۸
سلام خسته نباشید
عذر میخوام میخواستم بدونم کدی داریم که بشه مشخص کرد که در تاریخ مشخصی که مثلا یک فایل php دیگه رو اجرا کنه؟
مثل کرون جاب
و یا مثلا بگیم هر پنج دقیقه یک بار فلان فایل رو ران کن
تشکر
پاسخ: 
تا آنجا که اطلاع داریم در حال حاضر PHP به تنهایی چنین قابلیتی ندارد و باید از Cron Jobs در Apache استفاده کنیم.
نویسنده: زهرا
زمان: ۱۹:۱۲:۰۰ - تاریخ: ۱۳۹۷/۰۲/۲۳
با تشکر از مطالب خوب سایت تون
نویسنده: اخبار
زمان: ۲۳:۵۵:۱۷ - تاریخ: ۱۳۹۷/۱۲/۰۹
سلام، این کد رفرش واقعا به دردم خورد. ممنونم.
more لطفا پیش از ارسال یادداشت نکات زیر را مد نظر داشته باشید:
- مواردی که به کلی خارج از موضوع این مطلب هستند را در فرم منوی "تماس با ما" مطرح و پاسخ را از طریق ایمیل دریافت کنید.
- به سوالات کلی، مبهم، غیرضروری و مشکلاتی که تلاشی برای رفع آن نکرده باشید پاسخ خاصی داده نخواهد شد.
- کدها و اسکریپت های طولانی را ترجیحا در یک صفحه وب آنلاین قرار دهید تا امکان تست و بررسی وجود داشته باشد.
- تمام یادداشت ها بررسی و برای هر کاربر زمان مشخصی جهت پاسخگویی در نظر گرفته می شود، لذا از طرح سوالات متعدد در بازه زمانی کوتاه خودداری کنید.




7 × 6
 refresh
نکته:
با توجه به تاریخ نگارش آموزش های سایت و پیشرفت تکنولوژی های مرتبط با وب در سالیان اخیر، محتوای برخی از مطالب قدیمی ممکن است نیاز به ویرایش و به روزرسانی داشته باشد که این کار هم زمان با تهیه نسخه جدید «وبگو» به مرور در حال انجام است، لطفا در استفاده از مطالب سایت به این نکته دقت داشته و حتی المقدور از چند منبع مختلف استفاده نمائید.
آخرین دیدگاه ها
form حامد
در:
عالی بود
۲۱:۳۸:۳۱ ۱۳۹۸/۱۱/۰۷

form ناشناس
در:
سلام خیلی ممنون بابت پاسخ سریعتون خیلی دنبال همین دو خط کد بودم برای یادگیری سریع ریجکس ولی با سرچ پیدا نکردم و...
۱۸:۰۳:۴۳ ۱۳۹۸/۱۱/۰۷

form فرید
در:
درود بشما، میخواستم بدونم مثل کلمه @، کلمه ایی ساین هم داریم؟ با تشکر
۱۲:۱۹:۰۷ ۱۳۹۸/۱۱/۰۷

form ناشناس
در:
سلام میشه لطفا به سوالم جواب بدید من می خوام با استفاده از عبارات با قاعده تمام تگ های html رو تشخیص بدم...
۱۰:۱۳:۰۵ ۱۳۹۸/۱۱/۰۷

form PewDiePie
در:
سلام چطور می تونم این کد رو یه لینک هم بهش اضافه کنم یعنی این که وقتی عکس رو می بینی طرف بتونه...
۲۳:۳۶:۲۶ ۱۳۹۸/۱۱/۰۶

form رسول
در:
سلام میخوام بجای نمایش متن، متن موجود در یه لینکو بهم نشون بده ممنون میشم کمکم کنید
۱۳:۳۸:۱۸ ۱۳۹۸/۱۱/۰۶

form حسن
در:
من مطابق کد نوشته شده شما میخواستم آدرس
۱۴:۱۰:۱۳ ۱۳۹۸/۱۱/۰۵

form saemrezaei
در:
سلام واقعا عالییه خیلی استفاده کردم به وبلاگم سر بزن لطفا.
۱۳:۳۷:۳۴ ۱۳۹۸/۱۱/۰۵

form نصراله رضایی
در:
سلام در ادمین های گذشته که باز می کنم تصاویر مشاهده نمی شود و من را به آدرس Huge domains.com ارجاع می...
۲۲:۳۹:۵۳ ۱۳۹۸/۱۱/۰۴

form نقدی زاده
در:
واقعا مرسی یه overflow-y:hidden به body دادم اسکرل افقی برای صفحه نمایش تبلت از بین رفت
۱۴:۴۴:۱۳ ۱۳۹۸/۱۱/۰۴

form وحید پوربشیری
در:
سلام لطفا یکی که خوب جاوا اسکریپت بلده بیاد به این آیدی ت.ل.گ.ر.ا.م Alpha2020@ یه کد برام بنویسه پول هم میدم
۱۱:۱۲:۳۲ ۱۳۹۸/۱۱/۰۲

form امین
در:
سلام تشکر بابت راهنماییتون. منظور من این بود که: الان با ثبت نام کاربر a در سایت اطلاعاتش در دیتابیس ثبت میشه و یک پوشه...
۰۳:۱۲:۴۰ ۱۳۹۸/۱۱/۰۲

form شریفی
در:
سلام معنی متن زیر چیست؟
۱۸:۲۸:۰۹ ۱۳۹۸/۱۱/۰۱

form امین
در:
سلام خسته نباشید یه اسکریپت دارم که وقتی کاربر ثبت نام میکنه یه پوشه و محتواش ایجاد میشه. میخوام یه صفحه با هر ثبت نام...
۱۴:۱۸:۵۱ ۱۳۹۸/۱۰/۳۰

form Admin
در:
سلام دوست عزیز. میشه بگویید چگونه میتوان در وبلاگ کادری را باز کرد که بازدید کنندگان بتوانند در آن چیزی بنویسند. ممنون میشم...
۱۱:۲۸:۵۰ ۱۳۹۸/۱۰/۳۰
آگهی