Blazor服务器端-使用StateHasChanged循环进行实时更新

迪温奇

目前,我在Blazor服务器页面上使用了无限循环(有延迟)来更新UI。

<div>
    @for (int i = 0; i < GlobalData.Length; i++)
    {
        @GlobalData[i]
    }
<div>

@code {

    public CancellationTokenSource CancellationTokenSource { get; set; }

    protected override void OnInitialized()
    {
        CancellationTokenSource = new CancellationTokenSource();
        RealTimeUpdate(CancellationTokenSource.Token);
    }

    public async Task RealTimeUpdate(CancellationToken cancellationToken)
    {
        while(!cancellationToken.IsCancellationRequested)
        {
            await Task.Delay(TimeSpan.FromMilliseconds(1000 / 60), cancellationToken);
            if(!cancellationToken.IsCancellationRequested)
            {
                InvokeAsync(() => this.StateHasChanged());
            }
        }
    }
}

因此,只需一次会话,就可以确保对我的本地环境运行良好。但是在野外负载情况下如何执行呢?

彼得·莫里斯

无论在服务器还是浏览器上,StateHasChanged都将重新呈现当前组件/页面及其所有子代(例如)。

将结果渲染到内存中的虚拟DOM,然后与之前渲染的虚拟DOM进行比较。如果有任何更改,它将为客户端生成HTML增量。

因此,答案是,它可能很少向浏览器发送html,但是服务器将为每个用户每秒渲染60次内存中的页面。

这根本无法很好地扩展。使用Reactive库将数据从源推送到UI会更好。这样,它将仅在需要时呈现,并且您的UI将立即更新。

参见https://blazor-university.com/overview/blazor-hosting-models/

https://blazor-university.com/components/render-trees/

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

服务器端Blazor验证未更新UI

来自分类Dev

在Blazor服务器端使用CancellationTokenSource消除反弹

来自分类Dev

服务器端的Blazor:使用MongoDB进行身份管理

来自分类Dev

Blazor服务器端-子功能中的值更改未更新UI

来自分类Dev

Firebase可以托管使用服务器端功能的Blazor应用吗?

来自分类Dev

如何在blazor服务器端使用type ='text'渲染输入?

来自分类Dev

@onblur防止在blazor服务器端应用程序中使用@onclick

来自分类Dev

Blazor(服务器端)TextArea使用长字符串失败

来自分类Dev

Firebase可以托管使用服务器端功能的Blazor应用吗?

来自分类Dev

不能将 blazor 与服务器端托管一起使用

来自分类Dev

服务器端编辑期间的sailsjs实时更新

来自分类Dev

如何在客户端更新 Blazor Server 应用程序的服务器端更改?

来自分类Dev

如何在blazor Webassembly项目的服务器端控制器中对用户进行身份验证?

来自分类Dev

从 WCF Web 服务进行服务器端打印

来自分类Dev

使用Firebase进行服务器端计算

来自分类Dev

使用DataTables进行服务器端分页

来自分类Dev

使用Hapi进行服务器端响应缓存

来自分类Dev

Blazor服务器端:如何读出用户/浏览器而不是服务器的本地时间(仅使用c#)

来自分类Dev

如何在服务器端Blazor中使用HttpContext对象检索有关用户,用户代理的信息

来自分类Dev

使用AngularJS进行简单的服务器端实时搜索

来自分类Dev

locomotivejs在服务器端进行模型验证

来自分类Dev

在React中进行服务器端搜索

来自分类Dev

服务器端渲染以进行特定选择

来自分类Dev

Android:使用Parse时使用服务器端

来自分类Dev

使用Meteor模拟服务器端渲染

来自分类Dev

如何使用Angular 2服务器端渲染

来自分类Dev

如何在服务器端使用JSON Sanitizer?

来自分类Dev

使用DataTables插件的服务器端分页

来自分类Dev

如何使用php构建服务器端脚本

Related 相关文章

  1. 1

    服务器端Blazor验证未更新UI

  2. 2

    在Blazor服务器端使用CancellationTokenSource消除反弹

  3. 3

    服务器端的Blazor:使用MongoDB进行身份管理

  4. 4

    Blazor服务器端-子功能中的值更改未更新UI

  5. 5

    Firebase可以托管使用服务器端功能的Blazor应用吗?

  6. 6

    如何在blazor服务器端使用type ='text'渲染输入?

  7. 7

    @onblur防止在blazor服务器端应用程序中使用@onclick

  8. 8

    Blazor(服务器端)TextArea使用长字符串失败

  9. 9

    Firebase可以托管使用服务器端功能的Blazor应用吗?

  10. 10

    不能将 blazor 与服务器端托管一起使用

  11. 11

    服务器端编辑期间的sailsjs实时更新

  12. 12

    如何在客户端更新 Blazor Server 应用程序的服务器端更改?

  13. 13

    如何在blazor Webassembly项目的服务器端控制器中对用户进行身份验证?

  14. 14

    从 WCF Web 服务进行服务器端打印

  15. 15

    使用Firebase进行服务器端计算

  16. 16

    使用DataTables进行服务器端分页

  17. 17

    使用Hapi进行服务器端响应缓存

  18. 18

    Blazor服务器端:如何读出用户/浏览器而不是服务器的本地时间(仅使用c#)

  19. 19

    如何在服务器端Blazor中使用HttpContext对象检索有关用户,用户代理的信息

  20. 20

    使用AngularJS进行简单的服务器端实时搜索

  21. 21

    locomotivejs在服务器端进行模型验证

  22. 22

    在React中进行服务器端搜索

  23. 23

    服务器端渲染以进行特定选择

  24. 24

    Android:使用Parse时使用服务器端

  25. 25

    使用Meteor模拟服务器端渲染

  26. 26

    如何使用Angular 2服务器端渲染

  27. 27

    如何在服务器端使用JSON Sanitizer?

  28. 28

    使用DataTables插件的服务器端分页

  29. 29

    如何使用php构建服务器端脚本

热门标签

归档