欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Springboot集合前端實現(xiàn)進度條顯示功能實例

 更新時間:2024年11月28日 10:38:38   作者:知識淺談  
這篇文章主要介紹了使用進度條提升用戶體驗的原因,特別是在處理大文件上傳、下載或長時間運行的操作時,進度條通過實時反饋任務(wù)進度,減少用戶的不確定感,文中給出了詳細的代碼示例,需要的朋友可以參考下

項目為什么使用進度條

前端使用進度條顯示的主要原因是提升用戶體驗。它能讓用戶了解當(dāng)前操作的進度和剩余時間,減少不確定感。

特別是在處理大文件上傳、下載或長時間運行的操作時,進度條可以提供視覺反饋,避免用戶感到操作卡頓或無響應(yīng),從而提升整體使用滿意度。

進度條涉及技術(shù)

  • 線程:進度條所對應(yīng)的內(nèi)容一般是新建一個線程進行處理,因為所需要處理的時間相對較長。
  • Redis:要實時反饋給前端當(dāng)前任務(wù)的進度,每執(zhí)行一步,及時更新執(zhí)行的進度。
  • ProgressBar:前端可以使用對應(yīng)的進度條組件,比如ProgressBar。

代碼實現(xiàn)

使用new Thread新建一個線程對業(yè)務(wù)進行處理,并不斷更新Redis中的值,實時維護進度和總量,確保前端能查到這個比例關(guān)系。

  • 調(diào)用業(yè)務(wù)處理接口:該接口中包含較長時間的處理過程
      @GetMapping("/startProgress")
        public R startProgress() {
            String key = IdUtil.getSnowflakeNextIdStr();
            Result result = new Result();
            result.setStatus("0");
            result.setProceed(0);
            result.setTotal(100);
            result.setMsg("文件處理中...");
            RedisUtils.setCacheObject("Test:"+key,result, Duration.ofMinutes(2L)); //
    
            new Thread(()->{
                for (int i = 0; i < 100; i++) {
                    try {
                        Thread.sleep(100);
                        //每做完一個實時更新
                        Result result1 = RedisUtils.getCacheObject(key);
                        result1.setProceed(result1.getProceed()+1);
                        RedisUtils.setCacheObject(key,result1);
                    } catch (InterruptedException e) {
                        throw new RuntimeException(e);
                    }
                }
                Result result1 = RedisUtils.getCacheObject(key);
                result1.setStatus("1");
                result1.setMsg("文件處理完成");
                RedisUtils.setCacheObject(key,result1);
            }).start();
            return R.ok("操作成功",key);
        }
    
        @Data
        class Result{
            String status;
            Integer total;
            Integer proceed;
            String msg;
        }
    
    
  • 輪詢業(yè)務(wù)處理進度
    @GetMapping("/redis/{key}")
    public R find(@PathVariable String key){
        return R.ok(RedisUtils.getCacheObject(key));
    }
    

總結(jié)

到此這篇關(guān)于Springboot集合前端實現(xiàn)進度條顯示功能的文章就介紹到這了,更多相關(guān)Springboot前端實現(xiàn)進度條顯示內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Spring初始化和銷毀的實現(xiàn)方法

    Spring初始化和銷毀的實現(xiàn)方法

    這篇文章主要介紹了Spring初始化和銷毀的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-10-10
  • springboot 默認靜態(tài)路徑實例解析

    springboot 默認靜態(tài)路徑實例解析

    這篇文章主要介紹了springboot 默認靜態(tài)路徑實例解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-11-11
  • 解決spring security中遇到的問題

    解決spring security中遇到的問題

    這篇文章主要介紹了解決spring security中遇到的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • Java VisualVM監(jiān)控遠程JVM(詳解)

    Java VisualVM監(jiān)控遠程JVM(詳解)

    下面小編就為大家?guī)硪黄狫ava VisualVM監(jiān)控遠程JVM(詳解)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-10-10
  • springboot實現(xiàn)啟動直接訪問項目地址

    springboot實現(xiàn)啟動直接訪問項目地址

    這篇文章主要介紹了springboot實現(xiàn)啟動直接訪問項目地址,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • Java?Chassis3的多種序列化方式支持技術(shù)解密

    Java?Chassis3的多種序列化方式支持技術(shù)解密

    這篇文章主要為大家介紹了Java?Chassis?3多種序列化方式支持技術(shù)解密,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2024-01-01
  • springboot各種下載文件的方式匯總

    springboot各種下載文件的方式匯總

    下載功能其實就是用戶輸入指定文件路徑信息,然后把文件返回給用戶,下面這篇文章主要給大家介紹了關(guān)于springboot各種下載文件的方式,需要的朋友可以參考下
    2022-10-10
  • SpringCloud基于SpringAMQP實現(xiàn)消息隊列及原理解析

    SpringCloud基于SpringAMQP實現(xiàn)消息隊列及原理解析

    Spring AMQP作為Spring框架的一部分,是一套用于支持高級消息隊列協(xié)議(AMQP)的工具,這篇文章主要介紹了SpringCloud基于SpringAMQP實現(xiàn)消息隊列及原理解析,需要的朋友可以參考下
    2024-04-04
  • MyBatis獲取參數(shù)值的五種情況分析(推薦)

    MyBatis獲取參數(shù)值的五種情況分析(推薦)

    本文通過實例代碼給大家介紹MyBatis獲取參數(shù)值的五種情況分析,代碼簡單易懂,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2024-11-11
  • Java8深入學(xué)習(xí)系列(三)你可能忽略了的新特性

    Java8深入學(xué)習(xí)系列(三)你可能忽略了的新特性

    一提到Java 8就只能聽到lambda,但這不過是其中的一個而已,Java 8還有許多新的特性,有一些功能強大的新類或者新的用法,還有一些功能則是早就應(yīng)該加到Java里了,所以下面這篇文章主要給大家介紹了關(guān)于Java8中大家可能忽略了的一些新特性,需要的朋友可以參考下。
    2017-08-08

最新評論