问题
I thought I had answered this question before thanks to StackOverFlow, but I hastily took an answer and it turns out not to be the real cause to my problem.
I have checked my Apache Access Log:
This is me browsing my web app on Google Chrome Browser.
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
This is me browsing my web app on 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
This is me browsing my web app on 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
This is just me clicking around. But notice that for every page request firefox seems to be loading the page twice and its effecting my PHP scripts as they are executing twice and making two insertions into my DB!
Why is the case? I am using Firefox 3.5.6. I am guessing this is a Firefox issue rather than a PHP/Apache one?
回答1:
What plugins have you got installed in Firefox, they may be making requests silently, especially FireBug. Try turning firebug off & see if it still happens.
As mentioned in the comment below, the latest version of FireBug shouldn't be doing this, so if it isn't, try disabling all your plugins (or running FireFox in safe mode) and see if it still happens
回答2:
Check out the Accept headers on the 2nd request. Does it look to be a request for an image? If so, you may have an empty "src" attribute on an "img" tag or an empty "url" definition in a CSS property which is causing the 2nd request.
More info here: http://icanhascode.com/2008/06/the-mystery-of-the-multiple-requests/
In general, this issue is a pain to track down.
回答3:
I had the same problem another day. The solution was put
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
higher on the code. There was some css codes loading before it.
回答4:
This was a charset declaration issue for me too - take it out of all meta tags and declare it elsewhere!
回答5:
As mentioned by Michael Morton, IMG tags with missing SRC can be a problem. Could also be empty HREF attributes on A tags. I've used jQuery to quickly identify them:
http://www.planbox.com/blog/development/coding/browser-send-same-request-twice-or-multiple-times.html
In short, run this in Firebug:
$('img[src=""],a[href=""]')
回答6:
This line is some Dreamweaver driven HTML and caused the browser to load twice (with doc type removed and firebug disabled):
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
回答7:
None of these worked for me. Many hours of worry...here is what was my problem:
I had a HTML link with a button inside it. I found this was the problem because when I tested it on IE, the button didn't work (Buttons still worked in Firefox).
WRONG:
<a href=''><button class='btn'>Test</button></a>
RIGHT:
<a class='btn' href=''>Test</a>
WORKS now and no more double tap.
回答8:
In my case I had duplicate tags like this:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<!-- more code -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
After removing it from my Blogger template, Firefox stopped re-loading the page.
回答9:
Am using mozilla firefox 46.0.1 and I got the same problem. But I noticed it occurred only when my php script had warning errors.
Setting error_reporting(0);
in my php script stopped the double execution of the script. After trying all the above suggestions, of course.
来源:https://stackoverflow.com/questions/2016784/pages-load-twice-on-firefox