[英]How to detect that user open page using BACK button in browser?
想法是顯示消息,這將通知用戶,當他使用“后退”按鈕時,應用程序的Ajax部分可能無法正確啟動。 是的,有很多討論,但沒有解決方案。 從發現的內容中最好:在服務器端存儲有關最后一頁的信息,並通過ajax將當前頁面與服務器信息進行對照。 但是以這種方式,同一用戶將不可能使用2個瀏覽器窗口。
您可能要使用url#(hash)進行開發以存儲客戶端狀態
看一下http://www.asual.com/swfaddress/,Flash和ajax使用它來處理ajax的瀏覽器歷史記錄,
Silverlight 3.0使用類似的技術,在URL中將#(hash)用於狀態。
真正的解決方案是讓客戶端維護狀態,而不是服務器。 如果您在服務器上保留了太多客戶端狀態以致后退按鈕不起作用,則您正在違反Internet的法律:)
此解決方案可能適用於您的情況,也可能不適用於您的情況,並且可能不適用於您的瀏覽器。 在IE7上,它似乎對我有用,其中每個頁面在URL查詢字符串中引用了一個不同的“小部件ID”-
//try to detect a bad back-button usage;
//widgetId not match querystring parameter did=#
var mustReload = false;
if (location.search != null &&
location.search.indexOf("&did=") > 0)
{
var urlWidgetId = location.search.substring(
location.search.indexOf("&did=")+5);
if (urlWidgetId.indexOf("&") > 0)
{
urlWidgetId = urlWidgetId.substring(
0,urlWidgetId.indexOf("&"));
}
if (currentDashboard != urlWidgetId)
{
mustReload = true;
}
}
if (mustReload)
{
... //reload the page to resynch here
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.