我在做一个选择框导航,并想知道如果这是好做javascript重定或提交一个形式和重新定向。优点和缺点的每个?

有帮助吗?

解决方案

HTTP重定向:

  • 赞成:你可以登录用户的活动。
  • 缺点:一个额外的周转周期,直到用户得到有效地重新定向。

JavaScript重定向:

  • 赞成:用户得到立即重定向
  • 缺点:你无法登录用户的活动,除非你使用的AJAX;如果用户有JavaScript无障碍他不会得到重新定向。

在这种情况下,我倾向于使用 不显眼的JavaScript 为解决这个问题:代码,如果没有启用了JavaScript(即"去"按钮,员额的形式);然后,该网页载荷,Javascript会隐藏这个按钮,加改变的功能的选择框并发送阿贾克斯的请求日志的活动。

这样,你得到最好的两个世界:)

其他提示

如果你意味着什么喜欢航行通过选择一个项目的一个列表,你可以做两个:

  • 有形式配置有一个获得,这直接指向的目标网页。
  • 如果js支持,有的"提交"被称为当选择数值。如果没有js是支持、选择/go/打开按钮应该显示的,从而允许用户仍然使用的应用程序

注: 该方法上直接的目标网页。这是不同于发送重定向从服务器,这会导致在一个额外请求加以处理,增加了额外的延迟操作和更多的要求处理的服务器。这是一个导航情况下,没有必要去服务器方这个(至少在没有额外的具体要求)。

做这样的事情时要小心:

<select id="test" onchange="doAction();">
  <option value='http://...'>...</option>
  <option value='http://...'>...</option>
  <option value='http://...'>...</option>
  <option value='http://...'>...</option>
</select>

<script type="text/javascript">
function doACtion() {
    window.location = document.getElementById('test');
}
</script>

这有无障碍设施非常差为IE用户试图浏览与他们的键盘选择会不经意触发动作。这是为残疾用户特别麻烦,如果你正试图重定向他们,他们根本就无法访问以外的任何其他的首选。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top