Sự kiện đóng trình duyệt và request lên server bằng javascript?

Các bác cho em hỏi 1 chút về js và php ạ
Tình hình em đang muốn dùng sự kiện đóng trình duyệt web để thực hiện ajax cập nhật 1 trường trong database. Nhưng làm mãi mà không được
Có bác nào có ý tưởng để thực hiện công việc tương tự như trên không ạ?

Em thử dùng window.onbeforeunload nhưng không ổn tại vì F5 lại trang nó cũng bắt sự kiện onbeforeunload này :frowning:

Thử cái này, cũng dùng onbeforeunload

Có sự kiện onclose nữa, nhưng không phải browser nào cũng hỗ trợ cái này.

1 Like

Đây cùng là 1 cách: http://www.codeproject.com/Articles/58835/Window-Close-Event-of-Browser .

1 Like

Em đã thử và chưa cách nào thành công ạ :frowning:

Post code lên cho cao thủ JS giúp xem

1 Like

Qua 1 ngày tìm tòi và thử các cách thì em giải quyết 1 vấn đề tạm thời như là vẫn dùng onbeforeunload và ajax để request lên server. Trên đó check xem người dùng đóng trình duyệt hay là reload lại trang hoặc là close tab.
Nếu như reload lại trang hoặc là close tab thì không làm gì cả nhưng khi đóng trình duyệt thì mới cập nhật dữ liệu trong database.

Em biết cách này không hay lắm nhưng cũng giải quyết được vấn đề trước mắt. Nhưng em vẫn mong các cao thủ JS giải quyết vấn đề này ạ :frowning:

1 Like

Lỡ như người dùng không đóng trình duyệt thì sao?

1 Like

Làm sao như vậy được nhỉ, nếu người dùng đóng tab của bạn, chỉ còn lại các tab của trang web khác thì khi đó phần script của bạn “đã coi như chết”. Cho nên khi người dùng đóng trình duyệt thì làm sao detech được.
Về cơ bản khi đã đóng tab thì object document or window đã không tồn tại nữa rồi, nên lúc close trình duyệt thì ko detech được. Close tab thì còn có khả thi.
Hóng cao thủ JS có solution

1 Like

Mình cũng đang vướng cái này. không biết vấn đề của mình giống với chủ top không, vấn đề là code có sử dụng [session] (php) nên dù có đóng tab thì session vẫn còn chỉ có tắt trình duyệt mới dừng ạ. nên Mình muốn hỏi có cách gì bắt sự kiện trình duyệt tắt hay session bị dừng để cập nhật dữ liệu cho mysql ( ở đây như kiểu online rồi offline vậy ).
Cũng định lập topic mới nhưng thấy gợi ý có cái này nên mình bình luận đây luôn mong cao nhân hướng dẫn

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?