असल में, जब कोई उपयोगकर्ता मेरे एप्लिकेशन में कोई वेबपृष्ठ छोड़ देता है, तो मुझे AJAX के साथ एक PHP स्क्रिप्ट कॉल करने की आवश्यकता होती है, जो वेबपृष्ठ पर बिताए गए समय को सम्मिलित करेगा डेटाबेस में और फिर पेज छोड़ दें।
AJAX अनुरोध को समाप्त करने के लिए प्रतीक्षा करना महत्वपूर्ण है क्योंकि मेरे आवेदन में वेबपृष्ठ उपयोगकर्ताओं तक पहुंच योग्य नहीं हैं जब तक कि वे पिछले पृष्ठ पर एक निश्चित समय नहीं बिताते हैं (मान लें कि दो मिनट)।
यहाँ मेरी jQuery कोड है:
$(document).ready(function() {
var teid = TEID;
var startTime = new Date().getTime();
$(window).unload(function() {
var timeSpentMilliseconds = new Date().getTime() - startTime;
var t = timeSpentMilliseconds/1000/60;
$.ajax({
type: 'POST',
url: '/clientarea/utils/record-time',
data: 'teid=' + teid + '&t=' + t
});
});
});
मैं इसे कैसे बदलना चाहिए AJAX अनुरोध वेबपेज रवाना होने से पहले समाप्त करने के लिए के लिए तो यह इंतजार करेंगे?
संपादित करें:
या यह बेहतर (आसान) हो सकता है सिर्फ AJAX अनुरोध हर मिनट बार-बार या तो किया जा जाने के लिए। क्या यह संभव है?
हम्म। धन्यवाद। मैंने अपना प्रश्न अपडेट किया है। एजेक्स अनुरोध को हर मिनट के दो मिनट के दोहराने के लिए बस इतना आसान हो सकता है। मुझे यह कैसे करना है? –
मैं 'अनलोड' पर ** especialy ** से बचने की दृढ़ता से अनुशंसा करता हूं। – jAndy
मैंने पाया है कि समस्या के बावजूद, 'async: false' करने से हमेशा बेहतर समाधान होता है। –