1. 程式人生 > >AJAX輪詢的實時監控畫面

AJAX輪詢的實時監控畫面

  上一篇我們通過非同步重新整理Ajax 技術,來實現監控頁面監控位號值的重新整理,採用Ajax (Asynchronous Javascript And XML)技術,是指一種建立互動式、快速動態網頁應用的網頁開發技術,無需重新載入整個網頁的情況下,能夠更新部分網頁的技術。

  重點:非同步和部分網頁更新,通過在後臺與伺服器進行少量資料交換,Ajax 可以使網頁實現非同步更新。同時,這意味著可以在不重新載入整個網頁的情況下,對網頁的某部分進行更新。

 

  上文我們採用使用者點選click事件來載入資料,tag值每次更新需要使用者主動點選按鈕來獲取tag的最新值,對於監控頁面來說我們可能希望介面資料是主動重新整理的,使用者無須操作模式下,能夠直觀看到資料的變化情況,如下圖 PV/SP 值。

 

 

3.1. 定時ajax輪詢技術

  以滿足當前的需求來說,實現資料的實時重新整理效果最簡單粗暴的方式就是採用定時ajax輪詢技術,我們就能快速把原型演化到主動更新tag當前值了。在某些特定的場景下,簡單粗暴是最好滿足需求手段和方式。下面我們把程式碼稍微重構一下就能夠滿足這個需求。

 

        //JQuery 程式碼入口
        $(document).ready(function(){
 
            setInterval("getData()",3000);
 
        });

        function testClick() {
            //模擬改變值
            //$("#divTag").html('2020');

            ////模擬非同步從後臺獲得值
            //$.ajax({url:"/getTagCurValue",success:function(result){
            //    $("#divTag").html(result);
            //}});

            getData();

        }

        function getData() {
            //模擬非同步從後臺獲得值
            $.ajax({url:"/getTagCurValue",success:function(result){
                $("#divTag").html(result);
            }});
        }

 

3.2. IDE執行除錯

  在整合開發環境裡,F5重新測試頁面,就會看到一個主動tag值主動變化的監控介面,如下圖:

 

  Flask執行後臺也能監控到每次url請求,如下圖:

 

 

  瀏覽器端也能通過開發者工具F12,監控到網路請求。

  到這一步,我們完成了一個簡單粗暴的實時重新整理監控介面的原型。

 

3.3. 設定Flask工程埠號

  Flask每次執行F5測試頁面,我們發現專案的埠都是隨機變化的,為了方便測試通過設定工程屬性,把專案的埠設定一個固定值,如下圖:

 

 

  

3.4. 小結

  本小節我們通過使用ajax定時輪詢來重新整理資料,使得監控介面的資料看起來是實時重新整理的,從而讓技術原型基本具備了實時重新整理的效果,基本滿足了驗證要求。同時,我們也能看到ajax輪詢的網路及頻寬的消耗都是相對較高的,從服務端請求響應和瀏覽器除錯都能跟蹤到請求的情況,因此從技術的效能來看還不是較好的選擇。當然在區域網等內部系統上這個已經達到了監控介面的基本要求,下一篇我們演示採用如何通過websocket技術來提高資料的傳輸效率。

&n