使用javascript:history.back();有什么未知的问题?

时间:2010-09-13 05:18:56

标签: c# javascript asp.net

在我的网站上,我有两个页面叫做First.aspx和second.aspx。

从first.aspx我将用户重定向到second.aspx,点击链接。

在second.aspx页面中,我在点击取消输入按钮(不是asp按钮)时使用javascript:history.back()。这样做是为了避免重新加载最后一页,因为用户在此页面上没有做任何事情,并点击取消返回上一页。

我想知道是否存在任何安全问题或与使用此history.back()相关的任何其他问题?如果是这样,他们会遇到什么样的问题?

而不是这个,我应该使用asp按钮并使用response.redirect()重定向回第一页?哪一个更好的方法?

1 个答案:

答案 0 :(得分:5)

我建议避免使用history.back(),除了一些你不能做的罕见的使用页面。

为什么要避免。 第一个原因是用户打开新页面或保存此页面(并稍后打开)并且没有前一页要去的情况。通过这种方式,他不能去“取消页面”。

还有一种情况是,其他页面中的其他人将他重定向到您的页面(也许这是一个安全问题?)这种情况也取消将他返回到上一页...有些时候搜索网站打开您的页面在一个框架中只显示您页面中的照片,这也就是.back可能无法正常工作的情况。

第二个原因,当你有ajax调用/更新时,返回没有正确工作,必须以不同的方式处理。

第三个原因是页面的缓存不依赖于返回或重定向。在这两种情况下,页面都可以重新加载,这取决于您在页面标题上设置的内容,以及浏览器如何处理它。

还有一种情况是用户没有javascript(或禁用它),或者javascript产品出错并且没有任何随机原因。

还有一个也非常重要。如果您在上一页上回复了帖子,那么返回后会再次发回!您需要将他重定向到上一页。

希望得到这个帮助。