Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Обновление (https://javascript.ru/forum/misc/1111-obnovlenie.html)

SerferJS 23.03.2008 13:17

Обновление
 
Подскажите как сделать так, что бы страница автоматически обновлялась через определённый промежуток времени, но только 1 раз.

Dmitry A. Soshnikov 23.03.2008 14:08

SerferJS, погуглите:

- top.location.href (href не обязательно), например top.location = 'javascript.ru', также посмотрите метод reload() для этого объекта

- window.setTimeout(функцияДляВыполнения, интервалВМиллисекундах)

FTDeBUGgeR 23.03.2008 16:06

Записывай факт обновления в куки, а дальше как написано выше

SerferJS 24.03.2008 09:02

Если вас не затруднит. Напишите это готовым кодом. Дело в том, что я не очень знаком с JS, в основном php.

FTDeBUGgeR 24.03.2008 17:58

так, на скорую руку:

function setCookie(c_name,value,expiredays)
{
var exdate=new Date();
exdate.setDate(exdate.getDate()+expiredays);
document.cookie=c_name+ "=" +escape(value)+
((expiredays==null) ? "" : ";expires="+exdate.toGMTString());
}

function getCookie(c_name)
{
if (document.cookie.length>0)
{
c_start=document.cookie.indexOf(c_name + "=");
if (c_start!=-1)
{
c_start=c_start + c_name.length+1;
c_end=document.cookie.indexOf(";",c_start);
if (c_end==-1) c_end=document.cookie.length;
return unescape(document.cookie.substring(c_start,c_end)) ;
}
}
return "";
}

if (getCookie("somename")!="upd") setTimeout("document.location.href=document.locati on.href",5000);
setCookie("somename","upd",1);

Dmitry A. Soshnikov 24.03.2008 20:21

FTDeBUGgeR,
Цитата:

Сообщение от FTDeBUGgeR
document.location.href=document.location.href

IE не обновит так локейшн, считая прежним. Для фикса можно добавить пустую строку: top.location = '' + top.location; или использовать метод reload(), т.к. предыдущий метод будет бессилен, если локейшн содержал якорь.

FTDeBUGgeR 24.03.2008 20:33

Спасибо, буду знать

SerferJS 24.03.2008 23:14

Огромное спасибо за код. А насчёт испарвлений: добавления пустой строки или использования метода reload() это как? Пустую строку: top.location = '' + top.location; как я понял просто добавить в код, а вот с reload() я без понятия. Исправте пожалуйста.

Dmitry A. Soshnikov 25.03.2008 11:38

top.location.reload();

SerferJS 25.03.2008 22:34

Код выглядит так:
function setCookie(c_name,value,expiredays)
{
var exdate=new Date();
exdate.setDate(exdate.getDate()+expiredays);
document.cookie=c_name+ "=" +escape(value)+((expiredays==null) ? "" : ";expires="+exdate.toGMTString());
}
function getCookie(c_name)
{
if (document.cookie.length>0)
{
c_start=document.cookie.indexOf(c_name + "=");
if (c_start!=-1)
{
c_start=c_start + c_name.length+1;
c_end=document.cookie.indexOf(";",c_start);
if (c_end==-1)
c_end=document.cookie.length;
return unescape(document.cookie.substring(c_start,c_end)) ;
}
}
return "";
}

if (getCookie("somename")!="upd") setTimeout("document.location.href=document.locati on.href",5000);
setCookie("somename","upd",1);
top.location = '' + top.location;
top.location.reload();
Загрузка страницы не происходит. начинается сразу что-то вроде постоянного обновления или просто нежелания дальше грузить страницу. Может тут заменять надо было что. Но я без понятия, а все варианты перепробовать врятли получится. Подскажите как исправить. А то в JS я совсем не силён.


Часовой пояс GMT +3, время: 22:18.