簡體   English   中英

重復AJAX調用,直到JSON響應顯示過程完成為止

[英]Repeat an AJAX call Until JSON response shows process complete

我正在嘗試轉換一個中間件(PHP類型)頁面,該頁面將大量電子郵件發送到jQuery / Ajax頁面中,一次發送一封電子郵件。 通過調用ajax函數來調用。 我想同步重復ajax調用,直到json響應,例如data.status =“ finished”,每個調用將返回data.percentage(完成百分比)以逐步更新一個簡單的進度欄。 除此之外,我還想添加一個“停止”按鈕來取消廣播。 呼叫頁面不會知道需要撥打多少個電話。 中間件將生成下一封電子郵件,並直接與SMTP主機對話,並將該電子郵件標記為已發送,計算出發送的距離,以便可以將完成的百分比發回。

我已經看到了一些變化,但是大多數解決方案似乎都知道循環ajax調用的操作時間。

任何代碼片段表示贊賞。 這是我的代碼,沒有任何循環或停止代碼。

jQuery("#sendButton").click(function() {
   var ezineid = jQuery("#ezineid").val() ;
   var percentage = 0 ;
   var status = "" ;
   jQuery.ajax({  url: '/cms/emailsend.lasso',
       type: 'POST',
       dataType: 'json',
       async: false,
       data: {
       ezineid: ezineid
       },
       success: function(data) {
           // have the html to display now
           percentage = data.percentage ;
           status = data.status ;
           // update the progress bar  
           // data.status = finished?
         }
   });
});
var timeout = setTimeout(function () {
         $.ajax({
             url: "test.html",
             context: document.body
         }).done(function() {
          clearTimeout(timeout)
});
    }, 100);

您可以嘗試一下,但是如果您想監聽事件的發生,則需要使用node.js和套接字。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM