Обновите веб-страницу стека MEN без обновления всей страницы - PullRequest
0 голосов
/ 29 марта 2019

Я создаю панель аналитики данных с использованием стека MEN. (express, node, ejs) Однако я хотел бы отобразить данные в реальном времени, которые обновляются каждые 5 секунд БЕЗ обновления страницы HTML, которую я сейчас выполняю, используя следующие сценарии.

Все работает. Но это своего рода бельмо на глазу, когда страница постоянно обновляется. Есть ли способ использовать AJAX или что-то для обновления определенного DIV или PAGE? Я пробовал разные функции AJAX в разных местах, но это не работает. Возможно я делаю это неправильно. Любой совет?

async showTasksMain(req, res) {
const queryWeather = "SELECT * FROM c ORDER BY c.EventProcessedUtcTime desc"

const items = await this.taskDao.findweather(queryWeather); //Return variables
const tempdata = await this.taskDao.findtempdata(queryWeather);

res.render("index",{items:items, tempdata:tempdata});
}
async findweather(queryWeather) {
debug("Querying for items from the database");
if (!this.container) {
throw new Error("Collection is not initialized.");
}

const { result: results } = await this.container.items
.query(queryWeather)
.toArray();

var obj = results[0];
return obj;
}
app.get("/", (req, res, next) => taskList.showTasksMain(req, res).catch(next));
  <script type = "text/JavaScript">
        function AutoRefresh( t ) {
           setTimeout("location.reload(true);", t);
        }
  </script>

<body onload="JavaScript:AutoRefresh(30000)">;

1 Ответ

0 голосов
/ 30 апреля 2019

Вот пример кода javascript для обновления частичной страницы, например, div

Предположим, у вас есть меню, похожее на beloe:

ul id="menu">
    <li><a href="about-us.html">About Us</a>
    <li><a href="services.html">Services</a>
    <li><a href="products.html">Products</a>
</ul>

, и у вас есть содержимое div, как показано ниже:

<div id="content"></div>

затем вы можете написать код, например:

$("#menu li a").click(function(e) {
    // prevent from going to the page
    e.preventDefault();

    // get the href
    var href = $(this).attr("href");
    $("#content").load(href, function() {
        // do something after content has been loaded
    });
});

Вы можете сослаться Загрузить

Загрузить данныес сервера и поместите возвращенный HTML-код в соответствующий элемент.

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...