2015-12-02 137 views
0

我們使用不可靠的終端提交表單,偶爾超時。如何檢測表單提交超時並重新提交?

window.onload = function(){ 
    document.forms['form-to-third-party-endpoint'].submit() 
} 

什麼是檢測超時並嘗試重新提交表單的最佳方法?放棄之前也許嘗試5次。

這是第三方集成 - 表單加載在iframe中並自動提交以獲取HTML內容。

注意:是的,更好的解決方案是修復超時。但我們需要系統生存,不能等待第三方。

回答

1

我認爲最好的方法是在秒鐘內製作一個計數器,當它達到300(5分鐘)時再次提交表格。如果用戶離開頁面,可以用onbeforeunload停止計數器。

像這樣的事情

var counter = 0, interval; 

window.onload = function() { 
    interval = setInterval(addCounter, 1000); 
} 

function addCounter() { 
    counter++; 
    if(counter === 300) { 
    counter = 0; 
    document.forms['form-to-third-party-endpoint'].submit() 
    } 
} 

window.onbeforeunload = function() { 
    clearInterval(interval); 
} 

這是一個概念,這個代碼是沒有測試。

+0

如果收到提交響應,有什麼方法可以停止計數器? –

+0

如果提交被觸發,頁面將改變並且'onbeforeunload'也被觸發。否則,如果你的提交是一個Ajax請求,但你並沒有說任何關於這個和你的代碼。這是一個正確的答案,相信我:) –