【问题标题】:Fastest non-server side redirect method最快的非服务器端重定向方法
【发布时间】:2010-11-09 21:51:51
【问题描述】:

我正在尝试仅从特定页面将用户重定向到页面。

我尝试过 meta Refresh、windows.location、top.location.replace,但它们都需要很长时间才能重定向,因为我的客户需要立即更改页面或尽可能靠近。我想知道是否有更快的非服务器方法来做到这一点。 php header 也不是一个选项,因为脚本必须放在页面中。

任何想法将不胜感激!

【问题讨论】:

  • Soo... 什么是最快的服务器端重定向,用 php?我想检测某人拥有的浏览器(在 FF chrome 和 safari 之间)并相应地重定向浏览器扩展。基本上该页面除了根据您的浏览器路由您之外没有其他目的,并且页面上没有html。

标签: redirect refresh


【解决方案1】:

将您选择的 meta 和 javascript 方法放在尽可能靠近顶部的位置。这些都是客户端重定向方法。

如果不加快服务器速度或减少页面加载时间,您将无法获得更快的速度。如果您可以通过删除内容和/或图像、外部文件等来加快页面加载速度,则可以稍微提高性能。

如果您真的想进入愚蠢的极端,如果您可以在隐藏 iframe 中的先前页面中预加载目标页面,那么当浏览器访问本地缓存并跳过 DNS 查找时,转换看起来几乎是即时的.确保您的 etags 和缓存控制标头在服务器端设置正确。

如果您担心客户端在重定向之前看到实际页面加载时会出现闪烁,请考虑使用内联样式将内容设置为隐藏,或者用白色 div 或类似的方式覆盖它。

【讨论】:

  • Quib​​ble:元刷新的行为可能与基于浏览器的两个基于脚本的命令不同。
  • 公平点。最好同时包含这两种方法,以获得尽可能多的浏览器,但这样做可能会使页面加载时间变慢一点。更新了答案。
  • 谢谢大家。我想我会尝试隐藏原始页面,但重定向是在 if 子句中加载的,否则会显示常规页面,因此我必须仅在页面中的 if 中隐藏整个页面的内容..
  • 如果你默认隐藏它,然后使用 javascript 有条件地移除隐藏,你会稍微减慢你的正常页面加载时间,但避免闪烁。
【解决方案2】:

我认为元刷新会比提到的更快。仅仅是因为它位于文档的顶部,并且 JavaScript <script> 标记在解释时被阻塞。

【讨论】:

  • 是的,但它不能在所有浏览器中可靠地工作。如果浏览器接受元数据,它将在页面加载后立即开始处理它。如果没有,javascript 将在那时开始工作。
猜你喜欢
  • 2019-01-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-19
  • 2021-04-10
  • 1970-01-01
  • 2011-10-07
  • 1970-01-01
相关资源
最近更新 更多