Вы можете сделать это на клиенте в javascript с некоторыми старыми добрыми манипуляциями с DOM:
var count=30;
var interval=setInterval(function()
{
var tn=document.createTextNode("Refreshing in "+count+"s");
var targetElement=document.getElementById("someElemId");
var replaceText=targetElement.childNodes[0];
if(replaceText!=null)
{
targetElement.replaceChild(tn,replaceText);
}
else
{
targetElement.appendChild(tn);
}
if(count==0)
{
clearInterval(interval);
window.location.reload(true); //or whatever you need to refresh
}
--count;
},1000);
Вам понадобится какой-то элемент в DOM с идентификатором "someElemId". Конечно, setInterval не на 100% точен, но должен быть достаточно хорошим.