<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        在JS+WCF中如何實現監測數據加載量

        來源:懂視網 責編:小采 時間:2020-11-27 19:36:21
        文檔

        在JS+WCF中如何實現監測數據加載量

        在JS+WCF中如何實現監測數據加載量:這篇文章主要介紹了JS+WCF實現進度條實時監測數據加載量的方法,結合實例形式分析了大量數據導入過程中前臺js與后臺WCF交互實現實時顯示加載進度的相關操作技巧,需要的朋友可以參考下本文實例講述了JS+WCF實現進度條實時監測數據加載量的方法。分享給大家供大
        推薦度:
        導讀在JS+WCF中如何實現監測數據加載量:這篇文章主要介紹了JS+WCF實現進度條實時監測數據加載量的方法,結合實例形式分析了大量數據導入過程中前臺js與后臺WCF交互實現實時顯示加載進度的相關操作技巧,需要的朋友可以參考下本文實例講述了JS+WCF實現進度條實時監測數據加載量的方法。分享給大家供大

        這篇文章主要介紹了JS+WCF實現進度條實時監測數據加載量的方法,結合實例形式分析了大量數據導入過程中前臺js與后臺WCF交互實現實時顯示加載進度的相關操作技巧,需要的朋友可以參考下

        本文實例講述了JS+WCF實現進度條實時監測數據加載量的方法。分享給大家供大家參考,具體如下:

        背景

        由于項目中需要導入大量數據到memcache中

        需要用WCF調取11萬條數據,由于那邊多級聯查和排序,所以比較慢(1分鐘左右)

        同時這邊需要對數據進行處理,合并成2萬條數據,然后存儲,需要一定時間(也是1分鐘左右)

        總之,完成這個數據導入一共需要1分30秒左右

        這時候,需要一個進度條來實時監測完成的數據量

        (之前用的是一個動態圖,不能知道程序目前的完成量,甚至不知道它是不是卡住了,只能等著)

        功能

        1.開辟線程,用于加載數據,處理數據
        2.前臺實時讀取后臺數據,并顯示

        代碼

        view-html

        @* 數據準備進度條 *@
         <p id="container">
         <p class="content">
         <h1>數據準備</h1>
         </p>
         <!-- Progress bar -->
         <p id="progress_bar" class="ui-progress-bar ui-container">
         <p class="ui-progress" style="width: 3%;">
         <span class="ui-label" style="display: none;">完成量<b class="value">3%</b></span>
         </p>
         </p>
         <!-- /Progress bar -->
         <p class="content" id="main_content" style="display: none;">
         <p>數據準備完成!</p>
         </p>
         </p>

        view-js

        $(function () {
         $('#initialization').click(function () {
         $.messager.confirm('提示', '是否要進行數據初始化?', function (r) {
         if (!r) {
         return;
         }
         else {
         $('#container').show();
         var t1 = window.setInterval(process_bar, 1500);
         }
         });
         });
        });
        function process_bar() {
         $.ajax({
         type: "POST",
         async: true,
         url: "/Paper/LoadData",
         success: function (result) {
         $('#progress_bar .ui-progress').animateProgress(result);
         if (result =="100") {
         $('#main_content').slideDown();
         $('#fork_me').fadeIn();
         setTimeout(function () { $('#container').hide();; }, 1500);
         window.clearInterval(t1);
         }
         }
         })
        }

        controller

        static bool flag = true;
        public int LoadData()
        {
         int result = Ipaperbll.LoadDataAmount();
         if (flag)
         {
         Thread thread = new Thread(new ThreadStart(ThreadLoadData));
         thread.Start();
         flag = false;
         }
         return result;
        }
        private void ThreadLoadData()
        {
         Ipaperbll.initializeData();
        }

        后臺

        static int load_data_amount;//當前數據準備量
        public bool initializeData()
        {
         bool flag = false; //定義返回值
         //獲得數據
         //code....code ....code....
         load_data_amount = 5;//完成工作量
         int page = 0;
         int amount = 50000;//一次獲取數據量不能超過10萬
         while (page * amount == list.Count)
         {
         //code....code ....code....
         load_data_amount = load_data_amount + 5;
         }
         load_data_amount = 50;//讀取數據默認的工作量
         double totalamount = list.Count();
         foreach (var item in list)
         {
         //code....code ....code....
         load_data_amount = Convert.ToInt32((1 - (totalamount--) / double.Parse(list.Count().ToString())) * 50) + 50;//根據數據改變的完成工作量
         }
         load_data_amount = 100;//完成工作量
         flag = true;
         return flag;
        }
        //返回當前準備數據量
        public int LoadDataAmount() {
         return load_data_amount;
        }

        問題 & 解決

        1.進度條生成

        解決:使用網上的demo,css+js可以動態生成,改變數據即可

        2.線程問題

        解決:開始是監測使用線程,后來改成處理數據使用線程

        3.實時監測問題

        解決:處理數據使用線程自動運行,前臺使用ajax不斷查詢后臺的一個變量load_data_amount

        4.ajax報錯問題

        注意是返回值的類型,以及是result還是result.d,不同情況下是不一樣的

        5.數據類型問題

        解決:讀取數據完成的百分比,是用 完成量/所有量 得到的,這里的數一直算不對,是因為int類型承受不住11萬的運算以及之后的小數,用double和float可以

        小結

        本來想著開個線程,加個變量,返回前臺,加一個進度條,讀取變量就OK了

        但是中間的這個MVC,這個Spring,這個接口,之前的方法各種不好使,以及在它們下面的運算,ajax……一個一個分開解決,最后還是解決了

        分而治之,逐個解決,測試就好

        另外,框架和合作在帶來便利的同時,中間的限制和bug也會讓你的效率下降

        上面是我整理給大家的,希望今后會對大家有幫助。

        相關文章:

        使用jQuery如何解決動態添加元素無法觸發綁定事件

        在Node中如何獲取Excel內容

        在node中中間服務層如何發送請求(詳細教程)

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        在JS+WCF中如何實現監測數據加載量

        在JS+WCF中如何實現監測數據加載量:這篇文章主要介紹了JS+WCF實現進度條實時監測數據加載量的方法,結合實例形式分析了大量數據導入過程中前臺js與后臺WCF交互實現實時顯示加載進度的相關操作技巧,需要的朋友可以參考下本文實例講述了JS+WCF實現進度條實時監測數據加載量的方法。分享給大家供大
        推薦度:
        標簽: 實現 js 監測
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 国产乱妇高清无乱码免费| 久久精品亚洲日本波多野结衣| 国产AV无码专区亚洲AV男同| 疯狂做受xxxx高潮视频免费| 亚洲M码 欧洲S码SSS222| 亚洲AV永久无码天堂影院| 亚洲精品国产福利在线观看| 久久久久久久岛国免费播放| 免费欧洲毛片A级视频无风险| 亚洲精彩视频在线观看| 91人人区免费区人人| 亚洲无砖砖区免费| 思思99re66在线精品免费观看| 亚洲美女aⅴ久久久91| 一级一看免费完整版毛片| 亚洲中文字幕伊人久久无码| 99麻豆久久久国产精品免费| 精品国产_亚洲人成在线高清| 亚洲色偷偷偷综合网| 手机看片久久国产免费| 日日躁狠狠躁狠狠爱免费视频| 亚洲国产精品激情在线观看| 久青草视频97国内免费影视| 亚洲va在线va天堂va888www| 青青青国产在线观看免费网站| 亚洲偷自精品三十六区| 97久久免费视频| 亚洲日韩精品国产一区二区三区| 男女午夜24式免费视频| 亚洲精品视频免费看| 国产高清视频在线免费观看| kk4kk免费视频毛片| 亚洲欧洲日韩在线电影| 亚洲成人高清在线| 少妇人妻偷人精品免费视频| 亚洲综合色一区二区三区| 亚洲一区AV无码少妇电影☆| 国产大片免费天天看| 亚洲自偷精品视频自拍| 又爽又高潮的BB视频免费看| 最近免费2019中文字幕大全|