Tôi có một trò chơi Flash mà tôi đang cố gắng lưu trạng thái khi người dùng đóng tab trình duyệt. Nó được sử dụng mã jquery sau:Làm cách nào để thực hiện yêu cầu tải xuống trên trình duyệt trên nhiều cửa sổ?
//Called from Flash when window closes
function sendRequest(url, params) {
$.ajax({
type: "POST",
async: false,
url: url,
data: params
})
}
$(window).unload(function() {
//Make Flash attempt to save the game when the window closes.
//Flash gets the necessary data and calls sendRequest()
document["flashGame"].saveBeforeUnload();
});
- Firefox: Các công việc một cách chính xác
- Chrome: Các công việc một cách chính xác khi tải lại nhưng không phải khi tab đóng hoặc đóng trình duyệt
- IE (tất cả các phiên bản): Không hoạt động tại tất cả
Tôi wan nó hoạt động trong tất cả các trình duyệt một cách chính xác, nhưng quan trọng nhất là Chrome (không nhiều người dùng của chúng tôi có IE).
Flash gọi chính xác sendRequest (trong tất cả các trình duyệt, được kiểm tra bằng cảnh báo), vì vậy tôi không tin rằng sự cố đến từ Flash, nhưng có thể.
Tôi không nghĩ bạn cũng không thể làm tôi nghĩ bạn nên dựa vào .unload, nếu người dùng muốn đóng trình duyệt mà họ muốn đóng trình duyệt. Nếu yêu cầu của bạn mất nhiều thời gian hơn một vài ms để lưu thì trình duyệt có chờ không? Tại sao không lưu các trò chơi trên nói một bộ đếm thời gian 30 giây để lâu nhất họ sẽ được ra là 30 giây sau đó bạn không phải lo lắng về sự kiện dỡ bỏ – dstarh
@ dstarh: Chúng tôi đã lưu các trò chơi trên một bộ đếm thời gian. Mục đích của việc này là để ngăn người chơi mất vài giây cuối cùng của hành động. Thông thường, những hành động cuối cùng này rất quan trọng. – Fragsworth
vì vậy bạn đang nói rằng một người nhấp vào X để đóng cửa sổ trình duyệt của họ nên mong đợi rằng mọi thứ họ đã làm trong vài giây qua sẽ được lưu? Tôi nghĩ rằng đào tạo người dùng nhấp vào một nút lưu và sau đó đóng trình duyệt là thời gian tốt hơn chi tiêu.Chúng tôi cần đưa người dùng ra khỏi tâm lý của "Tôi đã kéo dây điện từ tường, tại sao mọi thứ không được lưu ???? !!! ???" – dstarh