@daminik00

Как грамотно организовать обновление страницы для отправки запроса?

Есть страница на которой с помощью php написан код проверяющий последнее сообщение в вк и отвечающий на него при определенных условиях. Как лучше организовать обновление страницы, так как работает код только при обновлении страницы. Надо что бы сайт как то обновлялся в фоне если пришло новое сообщение. Главное что бы не было большой нагрузки на сервер. Можно не расписывать полностью решение, а просто направить в правильное русло. Заранее спасибо большое)
  • Вопрос задан
  • 325 просмотров
Пригласить эксперта
Ответы на вопрос 3
Daemon23RUS
@Daemon23RUS
Фрагмент HTML
<body onload="(function() {getVSD();window.setInterval(getVSD, 3000)})()">

К нему в дополнение функция на Java
function getVSD(){			//Get Status of Servers
	var xmlhttp = getXmlHttp();
	xmlhttp.open('GET', 'status.php', true);

	xmlhttp.onreadystatechange = function() {
		if (xmlhttp.readyState == 4) {
			if(xmlhttp.status == 200) {
				var response = JSON.parse(xmlhttp.responseText);
				response.forEach(function(item){loadContent(item.element,item.status);});
			} else {GLOBAL_STATUS.forEach(function(item){loadContent(item.element,item.status);});}
		};}
	xmlhttp.send(null);
}

Если мне не изменяет память то эта связка будет опрашивать status.php раз в 3 секунды. Это фрагмент из работающего проекта, поэтому допиливайте под себя..
У меня же при удачном запросе (if(xmlhttp.status == 200)) изменяется соответсвующая инфо на странице без перезагрузки страницы как таковой.
Ответ написан
Rou1997
@Rou1997
Чтобы получить сообщение с сервера без обновления страницы, достаточно сделать AJAX-запрос (HTTP-запрос с помощью JavaScript), начать можно с jQuery или отсюда, но в вашем случае придется очень часто отправлять запросы, это большая нагрузка и на клиент и на сервер, можно применить долгое опрашивание вместо частого, но лучше WebSockets, это почти "сырой" TCP/IP, в отличие от HTTP отправлять запросы (пакеты) не придется вовсе, поэтому и нагрузки на клиент и сервер не будет никакой, пока сервер сам не отправит сообщение.
Ответ написан
profesor08
@profesor08 Куратор тега PHP
Попробуйте использовать виджет. Или таких нету?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы