Как обновить части страницы при изменении базы данных? - PullRequest
0 голосов
/ 04 октября 2011

Мне нужен лучший способ обновления изображений на веб-странице, вместо того, чтобы принудительно обновлять веб-страницу каждые 60 секунд.

Я написал небольшую страницу статуса, которая отслеживает некоторые из наших веб-сайтов. Он использует web.py и отображает список серверов, которые я ввел в базу данных.

Каждый работающий сервер получает зеленое изображение PNG, отображаемое рядом с ним.

Когда сервер отключается, я обновляю статус в локальной базе данных mysql на false.

При следующем обновлении страницы рядом с ней отображается красный значок.

Сейчас этот красный png-файл не отображается, пока я не обновлю страницу.

Есть ли способ в web.py (python), чтобы я мог сделать только это изображение динамическим, не обновляя всю страницу? Или я должен использовать что-то еще, чтобы это работало?

Ответы [ 2 ]

2 голосов
/ 04 октября 2011

Что ж, общий ответ заключается в том, что вы используете AJAX и размещаете на каждом сервере скрипт, который будет возвращать «вверх» или что-то в этом роде каждый раз, когда проверяется ваша страница.

Вот учебник о том, как сделать AJAX специально с web.py: http://kooneiform.wordpress.com/2010/02/28/python-and-ajax-for-beginners-with-webpy-and-jquery/

1 голос
/ 04 октября 2011

У меня нет знаний, связанных с web.py.

Но, на мой взгляд, вам нужно разбить код на две части (служба мониторинга и дисплей монитора) и использовать javascript для асинхронного обновления данных.

Служба мониторинга предоставит URL-адрес, который получает идентификатор отслеживаемого сайта и возвращает значение вверх или вниз. Поскольку вы используете web.py, он, вероятно, будет на 100% питоном.

Дисплей вашего монитора будет использовать javascript, чтобы каждые X секунд проверять этот URL и показывать правильный значок. Это может быть на основе Python, или нет. Но для этого понадобится JavaScript.

...