#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?)