想法是显示消息,这将是因为当他使用“后退”按钮时,应用程序的ajax部分可能会错误地显示错误信息。 是的,有很多讨论,但没有解决方案。 我发现的最佳:在服务器端存储有关最后一页的信息,并通过ajax检查当前页面与服务器信息。 但是通过这种方式,同一个用户不可能使用2个浏览器窗口。
答案 0 :(得分:1)
您可能希望开发使用url#(hash)来存储客户端状态
查看http://www.asual.com/swfaddress/,Flash和ajax使用它来处理浏览器历史记录ajax,
Silverlight 3.0使用类似的技术在url中使用#(hash)for state。
答案 1 :(得分:0)
真正的解决方案是让客户端维护状态,而不是服务器。如果您在服务器上保留了很多客户端状态,后退按钮不起作用,那么您违反了互联网的法律:)
答案 2 :(得分:0)
此解决方案可能适用于您的案例,也可能不适用于您的案例,它可能适用于您的浏览器,也可能不适用。它似乎在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
}