实时浮动从服务器端到 javascript 中

本文关键字:javascript 服务器端 实时 | 更新日期: 2023-09-27 17:56:26

我目前被困在一个项目中。

我有这个javascript图,它每秒更新一次数据。问题是,我希望该数据是服务器端的最新变量,或者数据库中的最新行。

我当前的代码如下所示。

events: {
    load: function () {
        // set up the updating of the chart each second
        var series = this.series[0];
        setInterval(function () {
            var x = (new Date()).getTime(), // current time
            y = <%= serverVar%>
            series.addPoint([x, y], true, true);
        }, 1000);
    }
}

或者至少是相关部分。这是图形每秒更新的地方。但是即使 y 设置为服务器端变量,它也不会获得最新的?

我做错了什么?

服务器端语言 ASP.net (C#)

实时浮动从服务器端到 javascript 中

服务器端变量在初始页面加载期间仅呈现一次。然后,每次您的代码以该间隔执行时,它都会找到相同的值,因此您会看到更新。

要在 setInterval 中解决此问题,您需要进行 ajax 调用并在那里获取最新值。获得最新值后,您可以使用逻辑将其添加到图形中。

您不能在客户端访问服务器端变量。这些服务器端变量仅在将响应发送到客户端之前生成 html 时使用。您需要发送 ajax 调用才能从服务器端获取值。

这是一篇非常好的文章,可以了解您将如何向服务器端发送调用以获取数据。我认为您需要发送同步调用而不是异步,这样您就不需要在回调函数中等待响应。您可以通过在jQuery ajax函数中设置async:false来发送同步调用

 $.ajax({
    url: "file.php",
    data: "a=" + id,
    type: "POST",
    async: false,