2010-01-06 60 views
17

我以爲我已經回答了這個問題,謝謝StackOverFlow,但我匆忙地回答了一個問題,結果並不是我問題的真正原因。頁面在Firefox上加載兩次?

我檢查我的Apache訪問日誌:

這是我上瀏覽谷歌Chrome瀏覽我的web應用程序。

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的問題?

+0

我真的希望你所說的插入是嚴格的記錄。如果發出GET請求導致一些其他數據更改,那麼您在這裏有嚴重的設計問題。 – NotMe 2011-01-24 20:38:30

+1

'如果發出GET請求會導致其他數據更改'這完全是虛假聲明。無論您是接受來自表單字段集中的一系列輸入參數,還是查詢get字符串集合,都沒有區別。 – 2011-01-27 14:39:22

+1

我不會說沒有區別。對於一個post請求需要重新發布(大多數瀏覽器會提示用戶),而GET請求可以輕鬆地(無意)重新請求,複製URL並粘貼它將重新請求它。 另外,有人可以很容易地在他們的網站上放置一個鏈接,其中src指向您的網站,任何訪問他們網站的人都會發布到您的網站。如果您的安全性是基於cookie的,他們的Cookie仍會被髮送。 所以有很多理由不使用GET發佈要保留的數據或請求會改變數據。 – 2012-10-04 15:02:46

回答

13

你在Firefox中安裝了哪些插件,他們可能會默默地發出請求,特別是FireBug。嘗試關閉螢火蟲&看看它是否仍然發生。

正如在下面的評論中提到的,最新版本的FireBug不應該這樣做,所以如果不是,請嘗試禁用所有插件(或在安全模式下運行FireFox)並查看它是否仍然發生

+0

與以前版本的螢火蟲我有這個問題。 – 2010-01-06 22:30:31

+0

是的,最新版本不這樣做,所以這可能不是問題。 – 2010-01-06 22:33:34

+0

我有螢火蟲和它的版本:1.4.5,這是最新版本。 – Abs 2010-01-06 22:38:36

11

查看第二個請求中的Accept標頭。它看起來是一個圖像的請求?如果是這樣,您可能會在導致第二個請求的CSS屬性中的「img」標記或空的「url」定義上具有空的「src」屬性。

此處瞭解詳情:http://icanhascode.com/2008/06/the-mystery-of-the-multiple-requests/

一般情況下,這個問題是一個痛苦追查。

+0

這是一個樣式表失敗。謝謝! – Bogdan 2010-11-02 14:35:12

1

這條線是一些Dreamweaver的驅動HTML並導致瀏覽器加載兩次(DOC型除去和螢火蟲禁用):

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

這一行: Gordon 2011-01-09 17:00:28

2

正如邁克爾莫頓所提到的,與丟失的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=""]')
+0

3

這是一個字符集聲明的問題,對我來說太 - 把它拿出來的所有元的標籤並在其他地方聲明!

+1

這也是我的問題。將改爲 fixed它。 – owise1 2012-01-30 22:48:08

+0

@ owise1您的解決方案適用於我。非常感謝。 – LoneWOLFs 2013-11-11 07:42:28

6

我今天有同樣的問題。 解決方案被放在

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

代碼更高。之前加載了一些CSS代碼。

+0

我不得不在'<! - [if lt IE 7]>語句之前移動它。 – Keith 2015-08-17 20:14:34

+0

仍然沒有工作。你有其他解決方案嗎? – 2016-03-28 06:58:59

0

這些都不適合我。很多小時的擔心......這是我的問題:

我有一個HTML鏈接,裏面有一個按鈕。我發現這是問題,因爲當我在IE上測試它時,按鈕不起作用(按鈕仍然在Firefox中工作)。

WRONG:

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

RIGHT:

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

現在也沒有工作的更多雙擊。

0

在我來說,我不得不重複的代碼是這樣的:

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

<!-- more code --> 

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

從我的博客模板移除後,火狐停止重新加載頁面。

0

我使用mozilla firefox 46.0.1,我遇到了同樣的問題。但我注意到它只發生在我的PHP腳本有警告錯誤時。 在我的php腳本中設置error_reporting(0);停止了腳本的雙重執行。當然,嘗試所有上述建議後。