2013-11-14 75 views
0

我試着去保存了多少次點擊的數據和時間訪問者在網站上花費jQuery.ajax()與window.onbeforeunload不發送數據

林本AJAX發送數據到我的PHP文件量呼叫。

window.onbeforeunload = function(){ 

    var endTime = new Date(); 
    var timeSpent = (endTime - startTime); 

    $.ajax({ 
    url: baseUrl + siteDir + pathToDataXml, 
    type: "POST", 
    datatype: "html", 
    data: 'time='+timeSpent+'&clicks='+count, 
    }) 
return "Thank You For Participating"; 
}  

Ajax調用被擊中的PHP文件作爲新的記錄被輸入到數據庫中,但記錄是空白的。

任何建議將是巨大的

+0

在過去有可能,現在瀏覽器殺死請求。這是一種競賽條件。 – epascarello

+0

除非,你使用async:false? –

+0

是的,您是否認爲瀏覽器崩潰,網絡連接丟失,電腦進入睡眠等?他們都不會拋出卸載事件。錯誤的問題是擔心瀏覽器會鎖定。如果在每次卸載時觸發,您的網站將無法響應。 – epascarello

回答

0

有時非常明顯的問題是,因爲他們忽略了

如果你想通過URL參數$ _GET發送的數據應該是最困難的使用而不是$ _POST

-1

試試這個

$(window).unload(function() { 
     var endTime = new Date(); 
     var timeSpent = (endTime - startTime); 

     $.ajax({ 
     url: baseUrl + siteDir + pathToDataXml, 
     type: "POST", 
     datatype: "html", 
     data: 'time='+timeSpent+'&clicks='+count, 
     }) 
    return "Thank You For Participating"; 
    }); 
+0

使用此方法甚至沒有命中該PHP文件。 –

+0

http://stackoverflow.com/questions/6063522/jquery-beforeunload – AOZ

+0

與ajax調用的原始問題相同的作用是將空記錄插入到數據庫中 –

相關問題