2017-06-29 128 views
0

我試圖將批量發送電子郵件的中間件(PHP類型)頁面轉換爲jQuery/Ajax頁面,一次發送一個電子郵件。這是由調用ajax函數調用的。我想同步重複ajax調用,直到json響應例如data.status =「finished」,每次調用都會返回data.percentage(完成百分比)逐步更新簡單的進度條。除此之外,我想包括一個「停止」按鈕來取消廣播。呼叫頁面不會知道需要多少個呼叫。中間件將生成下一封電子郵件並直接與SMTP主機通話,並將該電子郵件標記爲發送郵件,計算出發送郵件的距離,以便發送完成的百分比。重複AJAX調用直到JSON響應顯示進程完成

我已經看到了一些變化,但大多數解決方案似乎知道如何循環ajax調用manu時間。

任何代碼片段讚賞。這是我的代碼沒有任何循環或停止代碼。

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? 
     } 
    }); 
}); 
+2

如果你已經編寫了代碼,你不能去工作,那麼你來對地方了。只需將您的代碼(或相關部分)添加到問題中,因爲沒有這些,我們就無法提供幫助。請看[問]。 –

回答

0
var timeout = setTimeout(function() { 
     $.ajax({ 
      url: "test.html", 
      context: document.body 
     }).done(function() { 
      clearTimeout(timeout) 
}); 
    }, 100); 

你可以試試這個,但如果你想監聽的事件發生,你需要的Node.js和插座。

+0

也許可以使用node.js,但這需要重寫電子郵件生成器和發件人,這不是一項簡單的任務。我們發送的電子郵件是模板驅動的響應式電子郵件,其中包含大約16個新聞故事和圖像。 –

+1

爲什麼服務器端需要在Node中重寫才能使用套接字?有websockets的PHP實現。 – ADyson