【问题标题】:Pages load twice on Firefox?页面在 Firefox 上加载两次?
【发布时间】:2016-06-17 16:14:38
【问题描述】:

感谢 StackOverFlow,我以为我之前已经回答了这个问题,但我匆忙回答,结果证明这不是我问题的真正原因。

我检查了我的 Apache 访问日志:

这是我在 Google Chrome 浏览器上浏览我的网络应用程序。

127.0.0.1 - - [06/Jan/2010:22:17:35 +0000] "GET /webs/end/new.php HTTP/1.1" 200 2146
127.0.0.1 - - [06/Jan/2010:22:17:36 +0000] "GET /webs/end/settings.php HTTP/1.1" 200 4548
127.0.0.1 - - [06/Jan/2010:22:17:38 +0000] "GET /webs/end/index.php HTTP/1.1" 200 2042

这是我在 IE7 上浏览我的网络应用程序。

127.0.0.1 - - [06/Jan/2010:22:21:49 +0000] "GET /webs/end/settings.php HTTP/1.1" 200 4548
127.0.0.1 - - [06/Jan/2010:22:21:50 +0000] "GET /webs/end/index.php HTTP/1.1" 200 2042

这是我在 Firefox 上浏览我的网络应用程序。

127.0.0.1 - - [06/Jan/2010:22:18:08 +0000] "GET /webs/end/settings.php HTTP/1.1" 200 4548
127.0.0.1 - - [06/Jan/2010:22:18:09 +0000] "GET /webs/end/settings.php HTTP/1.1" 200 4548
127.0.0.1 - - [06/Jan/2010:22:18:10 +0000] "GET /webs/end/index.php HTTP/1.1" 200 2042
127.0.0.1 - - [06/Jan/2010:22:18:10 +0000] "GET /webs/end/index.php HTTP/1.1" 200 2042
127.0.0.1 - - [06/Jan/2010:22:18:11 +0000] "GET /webs/end/new.php HTTP/1.1" 200 2146
127.0.0.1 - - [06/Jan/2010:22:18:12 +0000] "GET /webs/end/new.php HTTP/1.1" 200 2146

这只是我在四处点击。但是注意,对于每个页面请求,firefox 似乎都会加载页面两次,并且会影响我的 PHP 脚本,因为它们执行了两次并两次插入到我的数据库中!

为什么会这样?我正在使用 Firefox 3.5.6。我猜这是 Firefox 的问题,而不是 PHP/Apache 的问题?

【问题讨论】:

  • 我真的希望您所说的插入是严格记录的。如果发出 GET 请求会导致其他一些数据更改,那么您在这里遇到了严重的设计问题。
  • If issuing GET requests causes some other data change 这完全是虚假陈述。无论您是在 post 中接受来自表单字段集的一系列输入参数,还是在 get 中接受查询字符串集合,都没有区别。
  • 我不会说没有区别。一方面,发布请求需要重新发布(大多数浏览器会提示用户),而 GET 请求可以很容易(无意地)重新请求,复制 URL 并粘贴它会重新请求它。此外,有人可以轻松地将链接放在他们网站上的 img 中,并且 src 指向您的网站,任何访问他们网站的人都会发布到您的网站。如果您的安全性是基于 cookie 的,他们的 cookie 仍然会被发送。因此,有很多理由不使用 GET 来发布要持久化的数据或会更改数据的请求。

标签: firefox httprequest


【解决方案1】:

你在 Firefox 中安装了哪些插件,它们可能会默默地发出请求,尤其是 FireBug。尝试关闭萤火虫,看看它是否仍然发生。

正如下面评论中提到的,最新版本的 FireBug 不应该这样做,所以如果不是,请尝试禁用所有插件(或在安全模式下运行 FireFox),看看它是否仍然发生

【讨论】:

  • 使用以前版本的 Firebug 我遇到了这个问题。
  • 是的,最新版本不这样做,所以这可能不是问题。
  • 我有firebug及其版本:1.4.5,是最新版本。
  • 好吧,好像是YSlow插件!该死的!多谢你们。 :)
  • @Abs 你能确认这是由于 YSlow 造成的吗?我之前在使用 Firefox 时就注意到了这种行为,我目前也有 Firebug 和 YSlow。
【解决方案2】:

查看第二个请求的 Accept 标头。它看起来是对图像的请求吗?如果是这样,您可能在“img”标签上有一个空的“src”属性或在导致第二次请求的 CSS 属性中的一个空的“url”定义。

更多信息在这里:http://icanhascode.com/2008/06/the-mystery-of-the-multiple-requests/

一般来说,这个问题很难追查。

【讨论】:

  • 对我来说这是一个样式表失败。谢谢!
  • 就我而言,background-image: url(""); 是问题所在。固定的。谢谢。
【解决方案3】:

我又遇到了同样的问题。 解决办法放了

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

代码更高。在它之前加载了一些 css 代码。

【讨论】:

  • 我必须在 &lt;!--[if lt IE 7]&gt; 声明之前移动它。
  • 仍然无法正常工作。你有其他解决方案吗?
【解决方案4】:
【解决方案5】:

正如 Michael Morton 所说,缺少 SRC 的 IMG 标签可能是个问题。也可以是 A 标记上的空 HREF 属性。我已经使用 jQuery 快速识别它们:

http://www.planbox.com/blog/development/coding/browser-send-same-request-twice-or-multiple-times.html

简而言之,在 Firebug 中运行它:

$('img[src=""],a[href=""]')

【讨论】:

【解决方案6】:
【解决方案7】:

这些都不适合我。许多小时的担心......这是我的问题:

我有一个 HTML 链接,里面有一个按钮。我发现这是问题所在,因为当我在 IE 上测试它时,按钮不起作用(按钮在 Firefox 中仍然有效)。

错误:

<a href=''><button class='btn'>Test</button></a>

右:

<a class='btn' href=''>Test</a>

现在可以使用,不再需要双击。

【讨论】:

    【解决方案8】:

    就我而言,我有这样的重复标签:

    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    
    <!-- more code -->
    
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    

    从我的 Blogger 模板中删除后,Firefox 停止重新加载页面。

    【讨论】:

      【解决方案9】:

      我正在使用 mozilla firefox 46.0.1,我遇到了同样的问题。但我注意到它仅在我的 php 脚本出现警告错误时发生。 在我的 php 脚本中设置 error_reporting(0); 会停止脚本的双重执行。当然,在尝试了上述所有建议之后。

      【讨论】:

        猜你喜欢
        • 2014-02-24
        • 1970-01-01
        • 2013-08-17
        • 1970-01-01
        • 2014-12-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多