ऐसा करने का तरीका Window.addWindowClosingHandler
जैसे @ कार्नेल और @ बिलिलन्स का उपयोग करना है। लेकिन मैं यह पता लगाने के लिए एक अतिरिक्त तकनीक का उपयोग करता हूं कि ब्राउज़र बंद कर दिया गया है या यदि पृष्ठ फिर से देखा जा रहा है (रीफ्रेश या बैक नेविगेशन द्वारा)।
एक उपयोगिता वर्ग है जो आपकी मदद कर सकती है। परीक्षण के लिए बस अपने onModuleLoad
में नीचे दी गई पंक्तियों को कॉल करें।
उपयोग उदाहरण:
@Override
public void onModuleLoad() {
if (BrowserCloseDetector.get().wasClosed()) {
GWT.log("Browser was closed.");
}
else {
GWT.log("Refreshing or returning from another page.");
}
}
उपयोगिता वर्ग:
इस सवाल का
import com.google.gwt.user.client.Cookies;
import com.google.gwt.user.client.Window;
public class BrowserCloseDetector {
private static final String COOKIE = "detector";
private static BrowserCloseDetector instance;
private BrowserCloseDetector() {
Window.addWindowClosingHandler(new Window.ClosingHandler() {
public void onWindowClosing(Window.ClosingEvent closingEvent) {
Cookies.setCookie(COOKIE, "");
}
});
}
public static BrowserCloseDetector get() {
return (instance == null) ? instance = new BrowserCloseDetector() : instance;
}
public boolean wasClosed() {
return Cookies.getCookie(COOKIE) == null;
}
}
स्रोत
2013-02-21 00:28:01
डुप्लिकेट। http://stackoverflow.com/questions/875380/how-to-tell-the-difference-between-a-page-refresh-and-closing-a-page –
यह प्रश्न इस का डुप्लिकेट नहीं है। –
उत्तर इस प्रश्न का उत्तर देता है हालांकि - आप यह नहीं बता सकते कि उपयोगकर्ता ने आपकी साइट का उपयोग बंद कर दिया है। निकटतम आप यह कह सकते हैं कि उपयोगकर्ता ने किसी निश्चित अवधि के लिए साइट पर नया अनुरोध क्यों नहीं भेजा है। – Quentin