2017-10-12 51 views
-2

我有一個方法,當我刷新我的頁面時調用,並且該方法在數據庫中保存一個值。現在如果我刷新連續的頁面3-4次,然後在數據庫中存儲值3-4次。我想如果我連續刷新它3-4次,那麼它應該只在第一次被調用。如何讓一個方法被訪問只刷新一次在jquery

window.onbeforeunload = confirmClose; 

function confirmClose() { 
    var refreshTime = new Date().getTime(); 
    if (!isNaN(keyerAudit.auditStartTime) && (keyerAudit.auditStartTime != 0)) 
    sessionStorage.setItem("FIRSTVISIT", refreshTime); 
    var refreshAuditTime = 0; 
    if (!isNaN(keyerAudit.auditStartTime) && (keyerAudit.auditStartTime != 0)) 
    refreshAuditTime = (refreshTime - keyerAudit.auditStartTime)/1000.0; 
    if (!isNaN(refreshAuditTime) && (refreshAuditTime != 0)) { 
    sessionStorage.setItem("DB", refreshAuditTime); 
    $.ajax({ 
     url: '/auditTimecalculate', 
     type: 'POST', 
     async: false, 
     dataType: "json", 
     data: { 
     auditTime: refreshAuditTime 
     }, 
     success: function(data) { 
     console.log("returned from /auditTimecalculate "); 
     console.log("the before refresh starttime was: ", keyerAudit.auditStartTime); 
     sessionStorage.setItem("FIRSTVISIT", keyerAudit.auditStartTime); 
     //     refreshTime=undefined; 
     refreshAuditTime = undefined; 
     } 
    }); 
    } 
+0

您或者需要使請求idempotent,或者創建一個記錄請求已經被做的方法 - 比如'localStorage'中的一個標誌 –

+0

那麼真正的問題是什麼? – PeterMader

回答

0

您可以在第一刷新使用一個會話變量像session["count"] = 1;然後檢查函數內部它的價值,如果它的1然後執行,否則不。

+0

謝謝。它爲我工作。 –

相關問題