<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      深入淺出Blazor webassembly之Loading優化

      Blazor wsam 應用有兩個環節需要加上 Loading indicator, 一個是app 下載期的loading, 一個是頁面初始化的loading, 默認項目模版對于這塊都有處理, 但都非常簡陋, 對于一個正式項目, 需要做進一步美化.

       

      這里使用了 BlazorPro.Spinkit 組件, 主頁 https://github.com/EdCharbeneau/BlazorPro.Spinkit

      另一個好的方案是:

        應用級  https://www.meziantou.net/customizing-the-blazor-webassembly-loading-screen.htm

        頁面級  https://www.meziantou.net/showing-a-loading-screen-while-initializing-a-blazor-application.htm

       

      ====================================

      app loading 優化

      ====================================

      默認項目模版生成 index.html , 處理 app loading 非常簡單, 

      <body>
              <div id="app">Loading...</div>
      
              <div id="blazor-error-ui">
                  An unhandled error has occurred.
                  <a href="" class="reload">Reload</a>
                  <a class="dismiss">??</a>
              </div>
              <script src="_framework/blazor.webassembly.js"></script>
      </body>

      優化步驟:

      1.  安裝 BlazorPro.Spinkit 組件  dotnet add package BlazorPro.Spinkit

      2.  index.html 引入 spinkit.css

      <link href="_content/BlazorPro.Spinkit/spinkit.min.css" rel="stylesheet" />

      3. index.html 重寫 app div

          <!--<div id="app">Loading...</div>-->
      
          <div id="app">
              <div class="modal-overlay">
                  <div class="sk-wave">
                      <div class="sk-wave-rect"></div>
                      <div class="sk-wave-rect"></div>
                      <div class="sk-wave-rect"></div>
                      <div class="sk-wave-rect"></div>
                      <div class="sk-wave-rect"></div>
                  </div>
              </div>
          </div>

      4. 在 app.css 中增加 modal-overlay 樣式

      .modal-overlay {
          position: fixed;
          top: 0;
          bottom: 0;
          left: 0;
          right: 0;
          background-color: rgba(0,0,0,0.5);
          z-index: 2000;
          display: flex;
          align-items: center;
          justify-content: center;
          flex-direction: column;
          --sk-color: white;
      }

      效果圖:

       

       

      ====================================

      page loading 優化--簡化版, 直接使用 spinner 組件

      ====================================

      步驟:

      1  _Import.razor 引入  @using BlazorPro.Spinkit

      2.  index.html 引入 spinkit.css

      <link href="_content/BlazorPro.Spinkit/spinkit.min.css" rel="stylesheet" />

      3. 在 page loading 條件下, 使用下面之一 spinner

      @page "/"
      
      if (IsLoading) {
          <Pulse />
          <Chase />
          <Circle />
          <CircleFade />
          <Flow />
          <Grid />
          <Plane />
          <Pulse />
          <Swing />
          <Wander />
          <Wave />
          <Bounce />
          <Fold />
      }

      4. 以 FetchData.razor 為例, 做簡單改造:

      @if (forecasts == null)
      {
          <Pulse/>
      }
      else
      {
        @*其他代碼省略*@
      }
      
      @code{
          protected override async Task OnInitializedAsync()
          {
              forecasts = await Http.GetFromJsonAsync<WeatherForecast[]>("sample-data/weather.json");
              await Task.Delay(500);  //模擬更大的延時
          }
      
        // 其他代碼省略
      }

      效果圖:

       

       

      ====================================

      page loading 優化--完整版, 使用 SpinLoader 組件

      ====================================

      步驟:

      1  _Import.razor 引入  @using BlazorPro.Spinkit

      2.  index.html 引入 spinkit.css

      <link href="_content/BlazorPro.Spinkit/spinkit.min.css" rel="stylesheet" />

      3. 在 page 頁面中, 使用 SpinLoader 組件封裝那些較為耗時的html片段,

         SpinnerLoader 組件包含三個子模版部分

      <SpinLoader IsLoading="isLoading" IsFaulted="isFaulted">
          <LoadingTemplate>
              <!-- 加載期顯示的內容 --->
          </LoadingTemplate>
          <ContentTemplate>
              <!-- 正常顯示的內容 --->
          </ContentTemplate>
          <FaultedContentTemplate>
              <!-- 可選部分, 異常發生后顯示的內容 --->
          </FaultedContentTemplate> 
      </SpinLoader>

       以 FetchData.razor 為例, 做簡單改造:

      <SpinLoader IsLoading="@(forecasts == null)" IsFaulted="@false">
          <LoadingTemplate>
              <Circle Color="#e67e22" Size="60px" Center="true" />
          </LoadingTemplate>
          <ContentTemplate>
             @*省略展現table的內容*@
          </ContentTemplate> 
          <FaultedTemplate>
          </FaultedTemplate>
      </SpinLoader>

      效果:

       

       

      posted @ 2021-09-23 22:47  harrychinese  閱讀(684)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 国产成人欧美一区二区三区在线 | 亚洲精品综合网在线8050影院| 久久久亚洲欧洲日产国码农村 | 国产美女精品一区二区三区| 国内自拍偷拍一区二区三区| 欧美日本激情| 99国产精品久久久久久久日本竹| 高清国产亚洲精品自在久久| 夏邑县| 麻豆精品一区二区视频在线| 久久精品免视看国产成人| 国产成人精品av| 精品无人区一区二区三区在线| 无码熟妇人妻AV影音先锋| 国产一区二区在线有码| 精品熟女少妇av免费久久| 激情人妻中出中文字幕一区 | 国产精品人妻中文字幕| 国产高潮国产高潮久久久| 久久国产成人精品国产成人亚洲| 日本精品一区二区不卡| 夜夜躁狠狠躁2021| 国产又色又爽又高潮免费| 亚洲男人AV天堂午夜在| 望江县| 精品精品国产国产自在线| XXXXXHD亚洲日本HD| 亚洲夂夂婷婷色拍WW47| 国产自拍在线一区二区三区| 亚洲欧美色综合影院| 欧美和黑人xxxx猛交视频| 盖州市| 亚洲精品宾馆在线精品酒店| 中文字幕无码视频手机免费看 | 激情综合网五月婷婷| 亚洲高清无在码在线无弹窗| 欧洲亚洲成av人片天堂网| 久久精品高清一区二区三区| 我要看特黄特黄的亚洲黄片 | 国产揄拍国产精品| 秋霞av鲁丝片一区二区|