感谢您的发表。重定向时请等待。
如果您没有自动重定向,请单击此处。
您可能熟悉此类消息,尤其是在90年代或2000年代初使用网络时。例如,在我自己的项目中,我从未找到过让用户等待2-3秒的原因,而这些原因是在注册或发布内容后重定向用户。但是,即使在流行的Web软件(如PHPBB)中,这种模式始终存在。
我的问题是,重定向在现代(ajaxy)网络开发中是否仍然存在/需要?是否有任何情况绝对需要这样的重定向,最终使用户烦恼,其背后的技术原因是什么?为什么不立即重定向(如果需要重定向)?
感谢您的发表。重定向时请等待。
如果您没有自动重定向,请单击此处。
您可能熟悉此类消息,尤其是在90年代或2000年代初使用网络时。例如,在我自己的项目中,我从未找到过让用户等待2-3秒的原因,而这些原因是在注册或发布内容后重定向用户。但是,即使在流行的Web软件(如PHPBB)中,这种模式始终存在。
我的问题是,重定向在现代(ajaxy)网络开发中是否仍然存在/需要?是否有任何情况绝对需要这样的重定向,最终使用户烦恼,其背后的技术原因是什么?为什么不立即重定向(如果需要重定向)?
Answers:
是否有任何情况绝对需要这样的重定向,最终使用户烦恼,其背后的技术原因是什么?
最常见的意图(通常是在数据库中创建新记录,处理付款交易等请求的情况下)是防止重复的请求,如果用户单击“刷新”按钮并重新发布该请求。
重定向在现代(ajaxy)网络开发中仍然有位置/需求吗?
如果您可以告诉那些禁用Javascript的用户,他们的请求将被忽略或可能被错误处理(“不要单击一次,请提交一次以上!”的提示),可以肯定-但这不是付出巨大的努力来支持那些古怪的事情禁用JS的用户,并确保计费部门不会偶尔看到两次开票投诉,因此仍在许多接口中实现了某种重定向。
为什么不立即重定向(如果需要重定向)?
如果目标是防止提交多个表单,则应立即发出重定向-在定时重定向的情况下,它们可能是针对缓慢的服务器,或者他们没有考虑基于会话的锁定,或者他们试图解决更深奥的问题。
F5
在Stand by
页面上还会引起重新发送帖子。
首先,并非所有浏览器都在给定Location标头后会重定向。其次,并非所有浏览器都将使用Javascript进行重定向,因为它已被禁用。第三,并非所有浏览器都支持meta-refresh标签。这些情况中的任何一种都可能非常罕见,因此可能无关紧要。但是,即使这样做,您也可以重叠所有我认为的方法。
完全不需要PHPBB页面执行该操作的方式(等待5秒钟左右)。它应该立即重定向,如果没有重定向,则在发送标题后将显示HTML页面(上面带有meta-refresh和Javascript以及带有链接的文本)。如果编程正确,则几乎不可能通过常规浏览器显示此页面。
header()
函数的信息,但实际上是否将其忽略?这让我很担心。我已经知道HTML和JS重定向方法以及它们的可靠性如何,但是我从来没有真正想到过服务器端发送的HTTP标头实际上可以被忽略。
我总是使用正确的HTTP状态代码在响应标头中发送重定向(例如301或302-请参见http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html),这将导致立即重定向。我不知道有人会显示“请等待您重定向页面”的任何良好技术原因。
这样做的主要原因是在您已重定向的站点上进行了记录。该页面可以加载Google Analytics(分析),但数据也将存储在网络日志中。
如果您使用HTTP标头发送重定向,则浏览器将转到其他站点,而无需对原始站点进行任何其他请求。基于Java的跟踪可能会捕获这些退出,但是它为站点所有者提供了更好的跟踪机会。
在某些情况下,您可能还希望向用户提供免责声明,而不是重定向用户。对于在受管制行业工作的网站管理员而言,这尤其重要。如果您不在银行或制药业这样的受监管行业工作,那么您对这些要求将不会感激。