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技術來提高數據的傳輸效率。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM