Как я могу отображать окно автоматической прокрутки данных в реальном времени на моей странице HTML?

У меня очень простое представление;

index.html

<body>                                                                          
    <div id="liveFeed">                                             

    </div>                                                                          
</body>

views.py

def index(request):                                                             
    return render(request, 'index.html')

Кроме того, у меня есть еще один процесс, который записывает строки в именованный канал (назовем его / var / run / fifo), что-то вроде этого;

producer.sh

#!/bin/bash
count=1
mkfifo /var/run/fifo

while true
do
    echo "test line $count" > /var/run/fifo
    count=$((count + 1))
    sleep 1
done

Пока «производитель.sh» работает, я могу посмотреть, что он пишет в трубе, делая что-то вроде этого;

$> while true; do cat /var/run/fifo; done                     
test line 1
test line 2
test line 3
test line 4
test line 5

Однако, вместо того, чтобы читать из трубы и просто распечатывать ее, я хотел бы как-то отправить этот вывод в div «liveFeed» в index.html, показать только самые последние N строк и автоматически прокручивать вверх скрыть старые записи и показать новые, без обновления страницы. Я просто хочу, чтобы div «liveFeed» обновлялся всякий раз, когда «производитель.sh» записывается в трубу.

Я знаю, что это, вероятно, очень широкий вопрос. Я просто не уверен, с чего начать. Какой правильный подход сделать что-то вроде этой работы?

html,django,

0

Ответов: 0

Как я могу отображать окно автоматической прокрутки данных в реальном времени на моей странице HTML?

У меня очень простое представление;

index.html

<body>                                                                          
    <div id="liveFeed">                                             

    </div>                                                                          
</body>

views.py

def index(request):                                                             
    return render(request, 'index.html')

Кроме того, у меня есть еще один процесс, который записывает строки в именованный канал (назовем его / var / run / fifo), что-то вроде этого;

producer.sh

#!/bin/bash
count=1
mkfifo /var/run/fifo

while true
do
    echo "test line $count" > /var/run/fifo
    count=$((count + 1))
    sleep 1
done

Пока «производитель.sh» работает, я могу посмотреть, что он пишет в трубе, делая что-то вроде этого;

$> while true; do cat /var/run/fifo; done                     
test line 1
test line 2
test line 3
test line 4
test line 5

Однако, вместо того, чтобы читать из трубы и просто распечатывать ее, я хотел бы как-то отправить этот вывод в div «liveFeed» в index.html, показать только самые последние N строк и автоматически прокручивать вверх скрыть старые записи и показать новые, без обновления страницы. Я просто хочу, чтобы div «liveFeed» обновлялся всякий раз, когда «производитель.sh» записывается в трубу.

Я знаю, что это, вероятно, очень широкий вопрос. Я просто не уверен, с чего начать. Какой правильный подход сделать что-то вроде этой работы?

00HTML, Джанго,
Похожие вопросы
Яндекс.Метрика