parsgreen.com
article

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

html-meta-tag-refresh

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

متاتگ refresh چیست؟


متاتگ رفرش یا refresh که به آن redirect هم می گویند، زیرمجموعه ای از شاخه متاتگ های http-equiv است که برای ارسال سربرگهای HTML یا HTTP header به کار می روند (به طور ساده HTTP header به معنی پاسخ های استاندارد و تعریف شده است که در مقابل درخواست مرورگر ارسال می شود تا مثلا وضعیت صفحه یا سرور، نحوه پردازش، یونیکد، ذخیره سازی و... را مدیریت کند)، متاتگ های http-equiv کاربردهای خاصی دارند، مانند:
- کنترل ذخیره (کَش) شدن صفحه (cache-control)
<meta http-equiv="cache-control" content="no-cache" />
- زبان محتوای صفحه (content-language)
<meta http-equiv="content-language" content="fa-IR" />
- نوع محتوای صفحه (content-type)
<meta http-equiv="content-type" content="text/html; 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=http://webgoo.ir" />
- تعیین مدت زمان برای رفرش خودکار صفحه (refresh)
<meta http-equiv="refresh" content="200" />
- تنظیم کوکی ها (set-cookie)
<meta http-equiv="set-cookie" content="webgoocookie=value;expires=Fri, 1 Dec 2013 11:30:00 GMT; path=http://webgoo.ir">
- نحوه نمایش صفحه در فِرِم (window-target)
<meta http-equiv="Window-Target" content="_top" />

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


واقعیت این است که استفاده از متاتگ رفرش (refresh) برای صفحاتی که اهمیت زیادی دارند توصیه نمی شود و ممکن است این کار باعث بروز مشکلاتی با موتورهای جستجو شود، اما این بدین معنی نیست که به کل نمی توان از این متاتگ استفاده کرد، اگر به فرض وبلاگی داشته باشید که دیگر مطالب آن برایتان اهمیتی نداشته باشد و در مقابل وبلاگ جدیدی ایجاد کرده باشید، می توانید از این متاتگ استفاده کرده و کاربران را به طور خودکار به آن هدایت (redirect) کنید، یا فرض کنید در صفحات موسوم به 404 (صفحه مورد نظر پیدا نشد!)، می توانید کاربر را به صفحه اصلی انتقال دهید، نمونه دیگر می تواند استفاده از آن در هنگام ورود و خروج کاربران به سیستم باشد و یا درموقعیت های مشابه که نیاز به انتقال خودکار یا redirect است، پس یادمان باشد که استفاده از این متاتگ در همه جا توصیه نمی شود و فقط در موارد خاصی که مخصوصا پای موتورهای جستجو در میان نیست، می توانیم از آن استفاده کنیم.

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


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

آشنایی با سایر روش های redirect


در انتهای این مطلب بد نیست به سایر روش هایی که برعکس متاتگ refresh، مورد قبول موتورهای جستجو است، اشاره کنیم.
- استفاده از فایل htaccess و 301 redirect
بهترین گزینه برای ایجاد یک انتقال از صفحه ای (لینکی) به صفحه (لینک) دیگر، استفاده از دستور "HTTP/1.1 301 Moved Permanently" است، برای این منظور در فایلی به نام htaccess. معمولا در سرورهای Apache می توان تنظیماتی را انجام داد؛ مثلا:
RewriteEngine on
RewriteRule (.*) http://webgoo.ir/ [R=301,L]
- استفاده از HTTP header در php
علاوه بر htaccess، در کدهای php نیز می توان این کار را با ارسال دستورات HTTP header انجام داد، خوشبختانه زبان پرقدرت و انعطاف پذیر php به راحتی قادر است مقادیر ارسالی به عنوان header صفحات را مدیریت کند.
<?php
Header( "HTTP/1.1 301 Moved Permanently" );
Header( "Location: http://webgoo.ir" );
?>
برای دیدن سایر متاتگ های HTML و آشنایی با کاربرد آنها می توانید به این لینک مراجعه کنید:
آشنایی با متاتگ ها (Meta tags) و کاربرد آنها در صفحات وب (HTML)
sectionدسته بندی: آموزش کاربردی » HTML
related مطالب بیشتر:
» آموزش نحوه قرار دادن فیلم و ویدئوهای FLV در وبلاگ و سایت
» نحوه قرار دادن جستجوی گوگل در سایت یا وبلاگ
» نحوه متحرک ساختن متن با تگ marquee در HTML
» چرا و چگونه از DOCTYPE در HTML استفاده کنیم؟
» آموزش نحوه قرار دادن آهنگ و موسیقی پس زمینه در وبلاگ و سایت
commentنظرات (۲۲ یادداشت برای این مطلب ارسال شده است)
نویسنده: ابراهیم
زمان: ۰۲:۵۵:۲۴ - تاریخ: ۱۳۹۱/۱۰/۰۴
سلام دوست عزیز
مطلب بسیار مفیدی بود
من یه مشکل اساسی دارم و اون اینه که میخوام صفحه سایتم رو مثل وبلاگ های میهن بلاگ رفرش کنم.
از جاهای مختلفی داره برام بازدید iframe میاد و من نمیخوام این بازدیدها به سایتم ضرر بزنه.
من دیدم که وبلاگ های میهن بلاگ برای هر بازدید یک بار رفرش میشه و باعث میشه سایتش حتی برای بازدیدهای iframe هم بالا بیاد. ممنون میشم راهنماییم کنی و جواب رو برام ایمیل کنی. یا همینجا جواب رو ذکر کنی.
بازم تشکر
پاسخ: 
سلام
برای جلوگیری از نمایش صفحات سایت به صورت iframe دو راه وجود دارد، یا از کد جاوا اسکریپت زیر استفاده کنید (کد را در قسمت head قالب سایت قرار دهید):
<script type="text/javascript">
if(top != self){
top.onbeforeunload = function(){/*alert("نمایش به صورت فریم مجاز نیست")*/};
top.location.replace(self.location.href);
}
</script>
یا اینکه در php کد زیر را در ابتدای صفحات سایت اجرا کنید (کد باید در جایی قرار گیرد که در ابتدای تمام صفحات اجرا شود):
header("X-Frame-Options: DENY");
البته این روش در مرورگرهای جدیدتر کاربرد دارد و نکته مهم اینکه به طور کلی نمایش به صورت iframe را غیر فعال می کند، حتی برای همان سایت، اگر می خواهید به جزء سایت شما بقیه افراد نتوانند از iframe صفحات شما را نمایش دهند از سربرگ زیر هم می توانید استفاده کنید:
header("X-Frame-Options: SAMEORIGIN");
نویسنده: ابراهیم
زمان: ۱۴:۰۲:۵۶ - تاریخ: ۱۳۹۱/۱۰/۰۴
ممنون از اینکه خیلی زود جواب دادید
من از هر سه کد استفاده کردم. الان بازدیدهای iframe سایتم خیلی کم شده. ولی هنوز یه تعداد بازدید دارم که لینکشون مشخص نیست از کجاست. تو گوگل آنالیز هم ثبت نشده.
اگر تونستید اون کد رفرش میهن بلاگ رو هم گیر بیارید خیلی عالی میشه و کلا کارم رو راه انداختید.
در هر صورت ممنون
پاسخ: 
البته اینکه میهن بلاگ از چه کدی استفاده می کند و چه تفاوتی با کدهایی که قرار داده ایم دارد را بررسی نکرده ایم، ولی با اضافه کردن کد جاوا اسکریپت یا یکی از کدهای php (کد جاوا اسکریپت باید در تگ های html و کد php در کد های php قرار داده شود) به سایت خود، نباید صفحات سایتتان با iframe قابل نمایش باشد، در مورد بازدیدهای نامشخص، ممکن است مربوط به ربات ها یا برنامه های ارسال هرزنامه و... باشد، یک سایت الزاما توسط بازدیدکنندگان حقیقی کاوش نمی شود، بلکه بیش از یک سوم مخاطبان شما ربات و اسپمر هستند و از آنجایی که گوگل آنالیز مبتنی بر فعال بودن جاوا اسکریپت است آنها را محاسبه نمی کند.
نویسنده: reza
زمان: ۲۳:۲۸:۴۳ - تاریخ: ۱۳۹۲/۰۴/۱۶
سایت من به زبان html نوشته شده و حالا سیستم جدید سایت آماده شده که php هست حالا می خواهم منتقل کنم به سیستم جدید با توجه به اینکه سایت قبلی html هست نحوه ریدایرکت درست چگونه هست تا در گوگل ارزش و رتبه صفحات قدیمی به جدید منتقل بشه و ورودی هام از بین نره ورودی زیادی هم اکنون از گوگل دارم با سایت قبلی.
نام سایت تغییر نکرده فقط سیستم سایت عوض شده. صفحات قبلی سایتم نیز دستی نوشته شدند و همه html هستند
پاسخ: 
در صورتی که محل قرارگیری فایل های html تغییر نکند (اعم از تغییر دایرکتوری، نام یا فرمت فایل و...)، به عبارت دیگر با وارد کردن آدرس های استاتیک فعلی، صفحات به روال سابق قابل مشاهده باشند، استفاده از سیستم مدیریت جدید خللی به مطالب قبلی وارد نمی کند، لذا ریدایرکت نیاز نیست، در واقع لینک به فایل های قبلی شما حفظ می شود.
نکته: این مسئله در مورد لینک های داینامیک به این راحتی نیست! یعنی لینک هایی که سیستماتیک و توسط برنامه، صفحات را نشان می دهند باید همواره سازگار با برنامه ای باشند که استفاده می کنید.
نویسنده: Rapid
زمان: ۰۰:۲۲:۳۶ - تاریخ: ۱۳۹۲/۱۱/۰۶
با سلام ممنون از مطالب کاربردیتون
ایا میتونم این این متا رفرش برای استفاده از فایل 404 استفاده کنم اون موقع دیگه استاندارد میشه و مشکلی با موتور های جستجو پیش نمیاره ؟؟ مثلا کاربر وقتی به صفحه 404 رفت بعد از 30 ثانیه بره به صفحه اصلی ...
پاسخ: 
سلام
بله از این نظر مشکلی رخ نمی دهد، ربات های جستجوگر از این متاتگ پیروی نمی کنند.
زمان: ۱۹:۵۵:۵۲ - تاریخ: ۱۳۹۳/۰۴/۲۹
بسار عالی بود , ممنون بابت وقتی که قرار دادید
نویسنده: majid
زمان: ۱۱:۴۰:۲۸ - تاریخ: ۱۳۹۳/۰۵/۰۶
با سلام و تشکر از مطالب خوبتون
یه سوال داشتم من یک صفحه php دارم به اسم manage که داخلش 2 تا div دارم. داخل div1 یک جدول گذاشتم به نام khabar که عنوان یکی از سطرهایش حذف خبر است که وقتی ان را انتخاب میکنیم داخل div2 جدول خبر را از پایگاه داده نمایش میدهد که کنار هر سطرش ایکون حذف است که من میخوام با انتخاب ایکون حذف سطر حذف شود و صفحه همانجا رفرش شود که از دستور شما استفاده کردم و داخل صفحه manage برمیگردم ولی مشکلی که هست اینه که داخل div2 که جدول khabar است چیزی نمایش داده نمیشود چون زمانی جدول khabar رو نمایش میدهد که روی لینک حذف خبر در div1 کلیک کنیم چطور میشه یک مقدار بفرستیم که وقتی صفحه رفرش میشود بدون اینکه روی لینک حذف خبر در div1 کلیک کنیم جدول خبر را در div2 رفرش کند و نمایش دهد. نمیدانم منظورم را خوب رساندم. با تشکر
پاسخ: 
سلام
برای این کار می توانید در لینک حذف یا بازگشت یک پارامتر به صورت متد GET داشته باشید و در صفحه نمایش نتایج وجود این پارامتر را بررسی کنید، اگر ست شده بود لذا جدول دوم نیز باید نمایش داده شود، در غیر این صورت خیر، یک راه حل دیگر تنظیم سشن آی دی در صورتی است که کاربر روی لینک حذف کلیک کرده و به صفحه دیگر برود، با بررسی ست شدن یا نشدن سشن آی دی می توان وضعیت کاربر را مشخص کرد، یک راه دیگر نیز بررسی آدرس صفحه ارجاعی است که البته نسبت به روش های فوق خیلی جالب نیست!
نویسنده: مهدی
زمان: ۱۲:۴۳:۳۱ - تاریخ: ۱۳۹۳/۰۵/۱۱
سلام
من می خوام از دستور
<meta http-equiv="refresh" content="10" />
استفاده کنم اما می خوام فقط در زمان لود شدن صفحه فقط اجرا بشه و نه هر چند ثانیه یکبار. ضمنا اگه برای مقدار content عدد قرار بدم بعد این مدت رفرش میکنه در صورتی که من در زمان لود صفحه نیاز به رفرش دارم.
راهنماییم می کنید؟
پاسخ: 
سلام
اگر منظورتان این است که فقط یک بار صفحه رفرش شود، باید با نحوه تنظیم کوکی در جاوا اسکریپت یا کار با کوکی در PHP آشنا باشید، توضیح این مباحث ساده نیست.
نویسنده: EHSAN SCHOLL
زمان: ۱۴:۲۳:۱۹ - تاریخ: ۱۳۹۳/۰۶/۱۶
سلام
من یه مشکل دارم
اونم اینه که سایت آجاکسه و توسط آدرس اطلاعات مربوطه را لود میکنه.
کدی هست که بدون رفرش مقدار آدرس رو مثلا از
shoma.com/about
به این
shoma.com/contacts
تغییر بده؟
یعنی مقدار href رو بگیره و در نوار آدرس قرار بده بصورتی که صفحه از اول لود نشه و آجاکس باشه
پاسخ: 
سلام
سوالتان مبهم است!
اطلاعات ارائه شده برای ارائه پاسخ کافی نیست!
آدرس یک نمونه صفحه را به همراه توضیح دقیق هدفتان ذکر کنید.
نویسنده: سعید عباسی
زمان: ۲۱:۴۶:۰۲ - تاریخ: ۱۳۹۳/۰۹/۰۸
با سلام و خسته نباشید
ببخشید من یک سوال داشتم
من یک سایت خبری دارم می خواهم هر چند لحظه یک بار بخشی از سایتم رفرش کند چطوری باید این کار را بروی سایتم اعمال نمایم ممنون می شوم راهنماییم کنید.
پاسخ: 
سلام
استفاده از متاتگ برای کل سایت است، برای بخش خاص یا باید از تکنیک قدیمی iframe استفاده کنید (توصیه نمی شود) یا اینکه از Ajax بهره بگیرید که نیاز به آشنایی و تجربه برنامه نویسی است.
زمان: ۰۱:۰۲:۵۰ - تاریخ: ۱۳۹۳/۰۹/۲۰
سلام. خسته نباشید... من به تازگی برای وبلاگم دامین گرفتم و به وبلاگ وصل کردم.... الان میخوام کاری کنم که وقتی کسی آدرس وبلاگ رو وارد میکنه بطور خودکار بره به آدرس دامینم.... از متاتگ رفرش استفاده کردم اما متاسفانه بعد از ثبت کد.... وقتی مجدد صفحه ویرایش کد هامو باز میکنم کد پاک شده.... از کد جاوایی که تو سایت مختلف هم بود استفاده کردم که متاسفانه صفحه رو بارها و بارها رفرش میکنه.... هنوز صفحه کامل لود نشده مجدد رفرش میشه... ممنون میشم راهنمائی کنید....
پاسخ: 
سلام
متاسفانه کد آماده ای که کامل تست شده باشد برای این کار در اختیار نداریم، باید به سایت های ارائه دهنده ابزار وبلاگ نویسی مراجعه و از آنها بخواهید که در صورت امکان این کد را برای شما (سازگار با سرویس بلاگفا) بنویسند.
نویسنده: سینا
زمان: ۱۲:۲۰:۱۲ - تاریخ: ۱۳۹۴/۰۲/۰۶
سلام
من چطور میتوانم لینک ارجاع شده از یک سایت که ادرس اون سایت ارجاع دهنده در ادرس بار هست به ادرس خود سایتم تغییر دهم یعنی رفرش شود به اون مطلب که از سایت دیگه ارجاع شده
یک نمونه میذارم ببینید
ممنون میشم راهنمایم کنید
http://facenama.com/links/id:575757
وقتی این لینک را باز کنید به ادرس سایت مقصد تبدیل میشه
اما این لیک پایین که مال من هست تغییر نمیکند
http://facenama.com/links/id:574833
پاسخ: 
سلام
با درج نمونه کد زیر در سورس سایت خود می توانید این کار را انجام دهید:
<script type="text/javascript">
function breakoutOfFrame(){
if(top.location != location){
top.location.href = document.location.href;
}
}
window.onload = breakoutOfFrame();
</script>
نویسنده: سینا
زمان: ۱۲:۰۸:۰۸ - تاریخ: ۱۳۹۴/۰۲/۰۷
ببخشید منظورتان از سورس کدام فایل قالب هست؟
و یک تشکر ویژه بخاطر پاسخ و راهنماییتان
موفق باشد
پاسخ: 
بستگی به سیستم مدیریت محتوای شما دارد، فایل قالب بین سیستم های مختلف متفاوت است، باید ببینید خروجی HTML سایتتان از چه فایل ها یا توابعی حاصل می شود!، در صورتی که با CMS خود آشنایی کافی ندارید، لطفا به انجمن های پشتیبانی مربوط به آن CMS مراجعه کنید.
نویسنده: بهنام
زمان: ۲۳:۰۲:۴۸ - تاریخ: ۱۳۹۴/۰۲/۱۱
سلام و خسته نباشید
من یه صفحه ثبت نام دارم داخل این صفحه یک عکس گذاشتم و وقتی که کاربر چیزی رو اشتباه وارد میکنه و خطا میده میخوام عکسم ثابت بمونه و دایم تکون نخوره و یا رفرش نشه فقط اون قسمت ثبت نام تغییر کنه میخواهم این عکس بدون تغییر بمونه ممنون میشم راهنماییم کنین
پاسخ: 
سلام
متاسفانه راه حل ساده ای برای این مورد وجود ندارد، باید صفحه و سیستم ثبت نام را مبتنی بر یکی از روش های زیر طراحی کنید:
- اعتبارسنجی سمت کاربر (بررسی و نمایش خطا در مرورگر) با JavaScript.
- استفاده از قابلیت های Ajax.
نویسنده: مجید
زمان: ۱۷:۲۶:۵۷ - تاریخ: ۱۳۹۴/۰۲/۲۷
با سلام .
من یه سایت موزیک دارم
bataraneh.com
مشکلی که دارم حتی با خود مسولین ذیربط هم صحبت کردم هنوز حل نشده و اما مشکل :
خیلی از دوستانم به من میگن چرا سایت رو به روز رسانی نمیکنی؟
در صورتی که من حداقل روزی 5 تا پست میزارم ولی وقتی یه بار با یه آی پی وارد میشی بار دوم که دوباره وارد سایت میشی مطلب جدید رو نشون نمیده تا این که دوباره رفرش کنی بیاد.
مثلا همین امروز یکی از دوستانم که 14 اردیبهشت وارد سایت شده بود امروز دوباره وارد شده باز مطالب همون 14 رو دیده بود.
این مشکل رو میشه بگید از کجاست؟
ممنون از سایت خوب شما.
پاسخ: 
سلام
به نظر این مشکل بیشتر به وردپرس مربوط است تا سرور سایت شما، لذا برای رفع آن باید به انجمن های مربوطه (راه حل cache نشدن صفحات وردپرس) مراجعه کنید.
نویسنده: رامین
زمان: ۱۹:۰۷:۰۹ - تاریخ: ۱۳۹۴/۰۳/۱۱
سلام . و ممنون به خاطر سایت بی نظیرتون. عذر خواهی میکنم اگر یکم درخواستم بی ربطه. من یه مشکل دارم که اصلا نتونستم راهی واسش پیدا کنم. توی وبلاگم میخوام لینک دانلود فایل برای فروش بزارم. درگاه هم دارم. درگاه هم به صفحه درخواستی کاربرو برمیگردونه ولی میخام وقتی برمیگرده لینک دانلود رو ببینه و قبل از پرداخت موفق لینک دانلود نشون داده نشه (بدون ایجاد یک صفحه اضافه میخام این کارو انجام بدم). یعنی به این ترتیب: 1) کاربر لینک پرداخت رو میبینه. پرداخت میکنه 2) برمیگرده به همون صفحه و لینک دانلود رو میبینه.
اگر بتونید راهنماییم کنید که چجوری پست هام رو ارسال کنم واقعا ممنونتون میشم. اگر ممکنه موقع پاسخ یه ایمیل اطلاع رسانی بهم بدید یا پاسخ رو به ایمیلم بفرستید. ممنون
پاسخ: 
سلام
سوال کلی است! وبلاگ شما باید در یک هاست با قابلیت اجرای کدهای سمت سرور (معمولا PHP) باشد تا بتوانید برای این هدفتان کد داینامیک تعریف کنید، به فرض با متد POST یا GET اطلاعات ارسالی از درگاه دریافت و متناسب با نیاز با استفاده از دستورات شرطی (و قاعدتا سایر دستورات برنامه نویسی) و توابعی مانند curl ادامه روند کدنویسی شود.
paged صفحه 1 از 2




more لطفا دقت کنید که یادداشت های زیر منتشر نشده و حذف خواهند شد:
- یادداشت های خارج از موضوع این مطلب.
- سوالات کلی، غیر ضروری و مشکلاتی که هیچ تلاشی برای رفع آن نکرده باشید.
- نظرات حاوی کدها و اسکریپت های خیلی طولانی (به طور مثال کد کامل قالب وبلاگ).

2 × 1
 refresh
آگهی
seonab.com
طراحی نرم افزار اندروید
رنگین کمان عکس
Ranginkamaan.com

آرشیو عکس های باکیفیت با موضوعات متنوع...