Вы можете попробовать AJAX-вызов некоторого php-скрипта, например:
set_time_limit(3600); // one hour or set it as long as your session timeout is
// Keep on repeating this to prevent PHP from stopping the script
while (true)
{
sleep(5); //5 seconds between polling the server
//do the updates xml updates
flush();
ob_flush();
}
Соединение будет оставаться открытым, каждые 5 секунд будет извлекаться xml и обновляться клиент.
Если вы не хотите тратить много времени и ресурсов на извлечение данных, если они не изменены, вы можете использовать APC, memcache или любую другую переменную, хранящуюся на сервере, которая уведомляет вас об изменении XML.
if(apc_fetch('xml_updated') == 1)
{
//do the xml pull
}
Вы можете проверить, что происходит, если вы пытаетесь извлекать данные каждую секунду с точки зрения ресурсов. На мой взгляд, лучше иметь большую задержку.
Надеюсь, это поможет!