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

همانطور که می دانیم سورس کدهای صفحات وب از استاندارد زبان 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
RewriteCond /old/page/%{REQUEST_URI} !-f
RewriteRule ^(.+) /new/page/$1 [R=301]
- استفاده از 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)
دسته بندی: آموزش کاربردی » HTML

نمایش فیلد جستجوی گوگل در سایت یا وبلاگ
چرا و چگونه از DOCTYPE در HTML استفاده کنیم؟
نحوه نمایش فیلم و کلیپ ویدئویی در سایت و وبلاگ
چگونه در وبلاگ و سایت، لینک دانلود قرار دهیم؟
نحوه درج علامت های خاص در HTML
دیدگاه


۰۲:۲۹ ۱۳۹۹/۰۶/۱۷
سلام دوباره این ساب دامین بنده هست
http://www.jishop.ir
اگر یکی از مطالب را مشاهده کنید هر محصولی که ارسال شده داخل از طریق مدیریت یک لینک قرار داده شده میخوام هنگام لود شدن سایت اون لینک رو به آدرس خودم تغییر بدم ممنون میشم اگه امکانش هست راهنمایی کنیددر انتهای صفحه قبل از بسته شدن تگ body کد زیر را قرار دهید:
نکته: دقت کنید که آدرس اول حتما عینا مطابق با سورس کد خروجی صفحه و کامل باشد.
<script>
var links = document.getElementsByTagName('a'), hrefs = [];
for(var i = 0; i < links.length; i++){
//آدرسی که در صفحه وجود دارد
if(links[i].href == 'http://current-url'){
//آدرسی که می خواهید جایگزین شود
links[i].href = 'http://new-url';
}
}
</script>
در این کد در دو قسمت (بین علامت های '') باید دو آدرس URL درج کنید، قسمت اول همان آدرسی است که در حال حاضر در صفحه نمایش داده می شود و قسمت دوم آدرسی است که می خواهید جایگزین آن شود.نکته: دقت کنید که آدرس اول حتما عینا مطابق با سورس کد خروجی صفحه و کامل باشد.
۲۰:۲۱ ۱۳۹۹/۰۶/۱۶
سلام بنده یه ساب دامین دارم با دامنه شخصی حالا داخل این ساب دامین طرف آدرس سایت خودش رو داخل ساب دامین بنده میذاره مثلآ
راهی هست اون لینک را حذف یا جایگزین کرد ؟
ممنون میشم توضیح بدید با تشکر از شما
SITE.COM
حالا کدی هست این سایت را هنگام لود شدن دامین من جایگزین کرد تو سورس اچ تی ام ال لینکشون موجود نیست ولی موقع لود سایت هستراهی هست اون لینک را حذف یا جایگزین کرد ؟
ممنون میشم توضیح بدید با تشکر از شما
در صورتی که امکان کنترل خروجی از طریق سورس اصلی صفحه مهیا نباشد راه حل جایگزین استفاده از جاوا اسکریپت (یا جی کئوری) است، به این صورت که یک تابع داشته باشید که در رویداد onload (یا document.ready) اجرا و بر اساس خروجی صفحه تگ هدف را تغییر دهد (ارائه کد نیازمند دسترسی به ساب دامین و امکان تست و بررسی است).
علی
۰۱:۲۵ ۱۳۹۹/۰۴/۳۰
با سلام و درود فراوان
با چه فرمانی میشه content یک متاتگ رو به دست آورد. مثلا یه لینکی رو بدیم و content مورد نظر در آن متاتگ رو بده مثلا در متاتگ زیر IRR رو بده
با چه فرمانی میشه content یک متاتگ رو به دست آورد. مثلا یه لینکی رو بدیم و content مورد نظر در آن متاتگ رو بده مثلا در متاتگ زیر IRR رو بده
<meta property="product:price:currency" content="IRR">
یا در متاتگ زیر jack رو بده<meta name="Generator" content="jack">
با تشکر...برای دریافت مقادیر content در تگ های متا می توانید یکی از روش های زیر را استفاده کنید:
<?php
$html = '<meta property="product:price:currency" content="IRR">';
$dom = new DOMDocument;
$dom->loadHTML($html);
foreach($dom->getElementsByTagName('meta') as $tag){
echo $tag->getAttribute('content');
}
$pattern = '<meta.*content="([^"]*)"[^>]*>';
preg_match('/' . $pattern . '/i', $html, $matches);
//print_r($matches);
echo $matches[1];
?>
علی
۰۰:۰۳ ۱۳۹۹/۰۳/۳۱
با سلام
چطور میشه فقط یک صفحه مورد نظرمون رفرش بشه نه همه صفحات سایت
چطور میشه فقط یک صفحه مورد نظرمون رفرش بشه نه همه صفحات سایت
در این صورت یا باید از جاوا اسکریپت استفاده و آدرس صفحه فعلی را بررسی کنیم، اگر مطابق با صفحه مد نظر بود قسمت رفرش اجرا شود:
<script>
if(window.location.href == "http://example.com/test"){
setTimeout(function(){
window.location.reload(true);
}, 5000);
}
</script>
یا اینکه با PHP در سمت سرور آدرس صفحه را بررسی و اگر مطابق با صفحه مد نظر بود متاتگ را در قسمت head چاپ کنیم:<?php
$url = $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];
if($url == 'http://example.com/test') {
echo '<meta http-equiv="refresh" content="30; URL=http://webgoo.ir">';
}
?>
علیرضا
۱۱:۲۸ ۱۳۹۹/۰۳/۰۵
با سلام مجدد
در پاسخ یکی از کامنت هایم فرمودین که جهت فراخوانی (اجرای) یک فایل در سرور راس ساعت مشخص و صرف نظر از اینکه کسی در حال مشاهده آن صفحه باشد یا نه، باید از امکاناتی نظیر Cronjobs در cPanel استفاده کنیم.
اگر امکان داره بفرمایید چگونه؟
بسیار ممنون از همکاری و پاسخ های خوبتان
در پاسخ یکی از کامنت هایم فرمودین که جهت فراخوانی (اجرای) یک فایل در سرور راس ساعت مشخص و صرف نظر از اینکه کسی در حال مشاهده آن صفحه باشد یا نه، باید از امکاناتی نظیر Cronjobs در cPanel استفاده کنیم.
اگر امکان داره بفرمایید چگونه؟
بسیار ممنون از همکاری و پاسخ های خوبتان
در صورتی که هاست سایتتان از برنامه cPanel استفاده می کند می توانید در پنل مدیریت هاست در سربرگ Advanced به این امکان دسترسی داشته باشید، به فرض یک دستور تنظیم کنید که هر روز فایل script.php را راس ساعت 12 اجرا کند:
0 12 * * * /usr/local/bin/php /home/public_html/path/to/cron/script.php
راهنمای نحوه تنظیم دستورات Cronjobs در خود cPanel وجود دارد و به صورت رابط کاربری است، همچنین می توانید در گوگل جستجو کنید.علیرضا
۰۴:۴۳ ۱۳۹۹/۰۳/۰۵
سلام
اگر بخواهیم صفحات سایت رأس ساعت مشخصی مثلا ساعت 12 ظهر رفرش بشه چه کدی رو باید استفاده کنیم.
ممنون
اگر بخواهیم صفحات سایت رأس ساعت مشخصی مثلا ساعت 12 ظهر رفرش بشه چه کدی رو باید استفاده کنیم.
ممنون
اگر می خواهیم صفحه مرورگر برای کاربران در حال مشاهده سایت در ساعت مشخصی رفرش شود باید از جاوا اسکریپت استفاده کنیم، مثال:
<script>
var now = new Date()
var time_of_refresh = new Date();
time_of_refresh.setHours(12);
time_of_refresh.setMinutes(0);
time_of_refresh.setSeconds(0);
var diff = time_of_refresh.getTime() - now.getTime();
if (diff < 0) {
diff += 24 * 60 * 60 * 1000;
}
setTimeout(location.reaload, diff);
</script>
اما اگر منظور فراخوانی یک فایل در سرور راس ساعت مشخص و صرف نظر از اینکه کسی در حال مشاهده آن صفحه باشد یا نه، باید از امکاناتی نظیر Cronjobs در cPanel استفاده کنیم.علی
۰۷:۲۲ ۱۳۹۹/۰۲/۳۰
با سلام و عرض ادب
بسیار سایت پر محتوایی دارید تبریک...
می خواستم بپرسم اگر بخواهیم مثلا کاربر روی یک لینکی در سایت ما کلیک کرد برای دانلود فایلی که لینکش دانلود تغییر کرده (لینک عمل نمیکنه)، فقط صفحه مجدد رفرش بشه، از چه کدی باید استفاده کرد.
صمیمانه از پاسختون سپاسگزارم.
بسیار سایت پر محتوایی دارید تبریک...
می خواستم بپرسم اگر بخواهیم مثلا کاربر روی یک لینکی در سایت ما کلیک کرد برای دانلود فایلی که لینکش دانلود تغییر کرده (لینک عمل نمیکنه)، فقط صفحه مجدد رفرش بشه، از چه کدی باید استفاده کرد.
صمیمانه از پاسختون سپاسگزارم.
اگر منظور انتقال کاربر به یک صفحه دیگر در صورت پیدا نشدن فایل است می توانید در htaccess نمونه دستورات زیر را داشته باشید:
همچنین یک روش دیگر به صورت نمونه زیر:
اگر هم منظور جایگزینی لینک جدید با آدرس قبلی است اگر لینک ها الگوی ثابتی دارند می توانید از نمونه زیر استفاده کنید:
ErrorDocument 404 /error/404.php
با توجه به این دستور در صورت پیدا نشدن فایل کاربر به صفحهexample.com/error/404.php
منتقل می شود.همچنین یک روش دیگر به صورت نمونه زیر:
# If requested resource exists as a file or directory go to it
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule (.*) - [L]
# Else rewrite requests for non-existent resources to /error.php
RewriteRule (.*) /error.php?q=$1 [L]
که در صورت پیدا نشدن فایل کاربر به آدرس example.com/error.php
به همراه پارامتر درخواستی هدایت می شود.اگر هم منظور جایگزینی لینک جدید با آدرس قبلی است اگر لینک ها الگوی ثابتی دارند می توانید از نمونه زیر استفاده کنید:
RedirectMatch 301 ^/old/(.*).zip /new/$1.zip
اگر الگوی لینک ها یکسان نیست باید مورد به مورد به صورت دستی انتقال داده شوند، مثال:Redirect /old/file.zip http://www.example.com/new/file.zip
برای آشنایی بیشتر در این خصوص می توانید عبارت "دوباره نویسی یا rewrite آدرس های وب" را در گوگل جستجو کنید.۲۳:۵۵ ۱۳۹۷/۱۲/۰۹
سلام، این کد رفرش واقعا به دردم خورد. ممنونم.
۱۹:۱۲ ۱۳۹۷/۰۲/۲۳
با تشکر از مطالب خوب سایت تون
مهدی
۱۵:۳۱ ۱۳۹۶/۱۲/۲۸
سلام خسته نباشید
عذر میخوام میخواستم بدونم کدی داریم که بشه مشخص کرد که در تاریخ مشخصی که مثلا یک فایل php دیگه رو اجرا کنه؟
مثل کرون جاب
و یا مثلا بگیم هر پنج دقیقه یک بار فلان فایل رو ران کن
تشکر
عذر میخوام میخواستم بدونم کدی داریم که بشه مشخص کرد که در تاریخ مشخصی که مثلا یک فایل php دیگه رو اجرا کنه؟
مثل کرون جاب
و یا مثلا بگیم هر پنج دقیقه یک بار فلان فایل رو ران کن
تشکر
تا آنجا که اطلاع داریم در حال حاضر PHP به تنهایی چنین قابلیتی ندارد و باید از Cron Jobs در Apache استفاده کنیم.
محمد
۱۰:۰۶ ۱۳۹۶/۰۴/۰۳
سلام؛ می خواستم بدانم چگونه کلمات کلیدی در صفحه html قرار دهم. ممنون.
اگر منظور کلمات کلیدی برای موتورهای جستجو با متاتگ است، می توانید از نمونه زیر پیروی کرده و در سورس قالب وبلاگتان درج نمائید:
<meta name="keywords" content="کلمات, کلیدی, سایت">
۲۱:۰۸ ۱۳۹۶/۰۲/۲۸
تشکر می کنم
واقعا از این مطلب استفاده کردم
کارتون حرف نداره
واقعا از این مطلب استفاده کردم
کارتون حرف نداره
۲۰:۲۵ ۱۳۹۵/۰۵/۰۵
با سلام من دکمه شیر را در وبلاگم گذاشتم عکس و خلاصه در تلگرام و فیس بوک ارسال نمی شود
در رزبلاگ وبلاگ دارم
متاتگ ها را گذاشتم ولی جواب نگرفتم
می شود متاتگ بگذارید برای نمایش مطالب در وبلاگ
در رزبلاگ وبلاگ دارم
متاتگ ها را گذاشتم ولی جواب نگرفتم
می شود متاتگ بگذارید برای نمایش مطالب در وبلاگ
http://rozblog.com/theme_help.html
حل این مشکل ارتباطی به متاتگ و آموزش حاضر ندارد، هرچند دقیقا مشکلتان بررسی نشده اما به نظر مسئله مربوط به تگ های اختصاصی رزبلاگ است که باید با پشتیبانی این سایت موضوع را مطرح نمائید.
شاهین
۱۱:۵۱ ۱۳۹۵/۰۲/۲۸
با سلام
من یه سایت دارم که وقتی کاربر وارد میشه پیام خوش آمد گویی میده ولی رو صفحه اول سایت بر نمیگرده .
میخواستم بدونم چه کدی باید استفاده کنم که بعد ورود کاربر سایت ریدایرکت بشه رو صفحه اول
ممنون
من یه سایت دارم که وقتی کاربر وارد میشه پیام خوش آمد گویی میده ولی رو صفحه اول سایت بر نمیگرده .
میخواستم بدونم چه کدی باید استفاده کنم که بعد ورود کاربر سایت ریدایرکت بشه رو صفحه اول
ممنون
سوال مبهم است! لطفا با ذکر آدرس سایت مشکلتان را دقیقتر توضیح دهید تا امکان راهنمایی وجود داشته باشد!
۱۲:۱۷ ۱۳۹۴/۰۸/۲۳
نمیدونم داشمونی یا ابجیمون ولی خیلی لایک فقط فقط لایک
- به سوالات کلی، زمانبر، مبهم و مشکلاتی که تلاشی برای رفع آنها نکرده باشید پاسخ مختصر داده شده یا به بخش برنامه نویسی اختصاصی ارجاع داده می شوند.
- کدها و اسکریپت های طولانی را ترجیحا در یک صفحه وب آنلاین یا به صورت حساب موقت و آزمایشی قرار دهید تا امکان بررسی دقیق مشکل و خطایابی میسر باشد.
- تمام دیدگاه های ارسالی خوانده شده و برای هر کاربر مدت زمان لازم جهت پاسخگویی در نظر گرفته می شود، لطفا از طرح سوالات متعدد در بازه زمانی کوتاه خودداری کنید.