Автоматически загружать последовательные страницы

#jquery #onload #pageload

#jquery #onload #загрузка страницы

Вопрос:

Я создал сайт, который генерирует новую версию страницы каждый раз, когда пользователь вносит правку (пример: site.php/?version=1, site.php/?version=2 и т.д.). Этот номер версии и внесенные изменения хранятся в базе данных.

Я хотел бы сделать так, чтобы загрузка индекса сайта запускала загрузку версий страниц в последовательном порядке, скажем, каждые 5 секунд (версия 1, затем версия 2, затем версия 3 и т.д.) В одном окне.

Есть ли способ сделать это или что-то подобное с помощью jQuery (или чего-то еще)? Я думаю, что я могу каким-то образом передать номер версии базы данных в функцию загрузки страницы в качестве переменной, но я не уверен, как.

Любой совет был бы высоко оценен. Спасибо!

Ответ №1:

Если вы просто хотите site.php чтобы перезагружать каждые 5 секунд и добавлять 1 к любому URL-адресу для ‘version’, вы могли бы просто использовать следующий javascript (это предполагает, что изменения пользователя сохраняются синхронно) :

 function getVar(name){
    name = name.replace(/[[]/,"\[").replace(/[]]/,"\]");
    var regexS = "[\?amp;]" name "=([^amp;#]*)";
    var regex = new RegExp( regexS );
    var results = regex.exec( window.location.href );

    if( results == null ){
        return "";
    }else {
        return results[1];
  }
}

var version = getVar('vesion');
version = Number(version)   1;
window.setTimeout('window.location="http://test.com/site.php?version='   version  '";' ,5000);
  

Вместо этого вы можете проверять наличие версии каждые 5 секунд. Вам нужно будет запросить базу данных из site.php для текущего номера версии базы данных и использовать:

 <?php 
//query your database
?>

window.setTimeout('window.location="http://test.com/site.php?version=<?php echo $row['db_version_number']; ?>";' ,5000);
  

это позволит перезагрузить базу данных и обновлять страницу с любой версией, которая находится в ячейке данных db_version_number каждые 5 секунд

### Отредактировано для ответа на второй вопрос

начинать с 10 и останавливаться на 20: начальный URL для окна будет site.php?version= 10

затем:

 function getVar(name){
    name = name.replace(/[[]/,"\[").replace(/[]]/,"\]");
    var regexS = "[\?amp;]" name "=([^amp;#]*)";
    var regex = new RegExp( regexS );
    var results = regex.exec( window.location.href );

    if( results == null ){
        return "";
    }else {
        return results[1];
  }
}

var version = getVar('vesion');
version = Number(version)   1;
if (version < 20){
    window.setTimeout('window.location="http://test.com/site.php?version='   version  '";' ,5000);
 }
  

должно сработать

Комментарии:

1. Это именно то, что я искал! Спасибо. Первая функция идеальна, потому что я хочу отображать только существующие изменения. Возможно ли запускать и останавливать перезагрузку в пределах определенного диапазона? (например, начать с версии 10 и перейти к версии 20?)