ajax輪詢原理及其實現方式


ajax輪詢原理及其實現方式

ajax輪詢的兩種方式

方式1設定一個定時器,無論有無結果返回,時間一到就會繼續發起請求,這種輪詢耗費資源,也不一定能得到想要的數據,這樣的輪詢是不推薦的

方式2

輪詢就是在第一次請求的時候,如果返回數據了那么就在成功的回調里面再次發起這個請求,就像遞歸一樣,調用本方法。

如果時間太久,失敗了,同樣的再次調用這個請求,也就是本函數。當然,長輪詢也需要后台配合,沒有數據改變的時候就不用返回,或者約定好邏輯。

輪詢的應用場景

即時通訊

排行榜

http 短輪詢

1)介紹:http 短輪詢是 server 收到請求 不管是否有數據到達都直接響應http 請求;如果瀏覽器收到的數據為空,則隔一段時間,瀏覽器又會發送相同的http請求到server 以獲取數據響應;

2http 短輪詢的缺點:消息交互的實時性較低(server端到瀏覽器端的數據反饋效率低);

 

http 長輪詢 和 短輪詢的異同

1)相同點:當server 的數據不可達時,基於http長輪詢和短輪詢 的http請求,都會 停留一段時間;

2)不同點:http長輪詢是在服務器端的停留,而http 短輪詢是在 瀏覽器端的停留;

3)性能總結:從這里可以看出,不管是長輪詢還是短輪詢,都不太適用於客戶端數量太多的情況,因為每個服務器所能承載的TCP連接數是有上限的,這種輪詢很容易把連接數頂滿;

 

實現代碼

setInterval("test()",500);

     function test() {

         $.ajax({

             url: '/new_window_url/',

            async:true,

            type: 'get',

             success: function (data) {

                 var new_url =  $('#new_iframe').attr('src');

                 if (new_url !== data){

                     $('#new_iframe').attr('src', data);

                 }

             }

         })

     }

 


免責聲明!

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



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