Về cơ bản, khi người dùng rời khỏi trang web trong ứng dụng của tôi, tôi cần gọi một tập lệnh PHP bằng AJAX, sẽ chèn thời gian vào trang web vào cơ sở dữ liệu và sau đó rời khỏi trang. Điều quan trọng là phải đợi yêu cầu AJAX kết thúc vì các trang web trong ứng dụng của tôi không thể truy cập được đối với người dùng trừ khi họ đã dành thời gian nhất định trên trang trước (giả sử hai phút).
Đây là mã jquery của tôi:
$(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
});
});
});
Làm thế nào tôi nên thay đổi nó để nó sẽ đợi cho yêu cầu AJAX để chấm dứt trước khi rời khỏi trang web?
EDIT:
Hoặc có thể tốt hơn (dễ dàng hơn) để chỉ yêu cầu AJAX được lặp lại sau mỗi phút. Điều đó có thể không?
Hmm. Cảm ơn. Tôi đã cập nhật câu hỏi của mình. Nó có thể được dễ dàng hơn để chỉ cần cho phép AJX lặp lại mỗi phút chúng ta hãy nói. Tôi sẽ làm như thế nào? –
Tôi đặc biệt khuyên bạn nên tránh điều đó, ** đặc biệt ** trên 'unload'. – jAndy
Tôi đã tìm thấy luôn luôn có một giải pháp tốt hơn so với làm 'async: false', bất kể vấn đề. –