顯示具有 完成 標籤的文章。 顯示所有文章
顯示具有 完成 標籤的文章。 顯示所有文章

2023年5月18日 星期四

V20302 – Cookie – 如何判斷後端資料已更新完成, 才出現子畫面 - timer - setInterval -等待時間

目的: V20302 – [確認除帳] – 更新後端資料後,才顯示子畫面
           --> 如何判斷後端資料已更新完成, 才出現子畫面
           --> 利用 Cookies(“finished”) 有值, 表示後端已執行完成

處理說明: 1>利用 Cookie 才判斷後端資料庫是否已更新完成, 以便往下繼續執行
                        var r = r_cookies('DoRemove_finished');
                        if (!checkisnull(r)) {

                  2>顯示訊息,使用者回應後才往下執行
                       var Tmp_Msg = "確認勾選的資料已正確, 並進行除帳作業嗎?";
                       Ext.Msg.confirm("確認", Tmp_Msg, DoRemove);
                       if (id == "no")
                          { return; }




1>*.js
Ext.getCmp('s_form').submit({
                method: "POST",
                url: '../../api/V20302API/DoRemove',  //更新資料庫單況
                standardSubmit: true,
                params: np,
                async: false,
            });  //end of Ext.Ajax.Request                    
                var mask = new Ext.LoadMask(Ext.getBody(), {
                    msg: '確認除帳處理中, 請稍待...'
                });
            mask.show();//使用 mask 需手動呼叫show() 方法下        
            //每隔 1秒後 , 執行 function , 檢核是否已完成(Cookie有值), 
            //                 至到 clearInterval(timer);  //不再重覆執行
                var timer = setInterval(function () {                                        
                    //若資料庫已更新完成, 則 Email 委約==6  &  Email 委約<>6
                    var r = r_cookies('DoRemove_finished');
                    if (!checkisnull(r)) {
                        is_Ok = false;                        
                        mask.hide();
                        clearInterval(timer);  //不再重覆執行
                        var Tmp_r = r.split(';');
                        var Tmp_cnt6 = Number(Tmp_r[1]);
                        var Tmp_cntnot6 = Number(Tmp_r[2]);
                        //取得 副本. [員工編號] , 以 @分隔
                        var Tmp_EMPLYIDnot6 = Tmp_r[3];
                        //console.log(" Tmp_cnt6 :", Tmp_cnt6);
                        //console.log(" Tmp_cntnot6 :", Tmp_cntnot6);
                        if (Tmp_cnt6 > 0) {
                           // console.log(" ShowEmail6() ");
                            ShowEmail6();
                        }                            
                        if (Tmp_cntnot6 > 0) {
                            //console.log(" ShowEmailnot6() ");
                            ShowEmailnot6(Tmp_EMPLYIDnot6);
                        }
                    }
                    //顯示 [挑選Email收件人]子畫面
                }, 1000)  // end of timer            
        };  // end of DoRemove