2010-05-09 55 views
2

我一直在部署中得到一些奇怪的頁面刷新,我似乎無法找到它的原因或在開發中複製它。有沒有一種JavaScript錯誤或異常導致頁面重新加載的方法?或者有些提示可以幫助我縮小原因?javascript錯誤導致頁面重新加載?

它在部署在現場時發生,我不能在本地測試時複製它。我知道這是在使用ELMAH記錄異常時發生的。用戶正在使用Firefox。

UrlReferrer:example.com/products/edit/100

GET網址:example.com/products/edit/undefined

而且我沒有看到在窗口形式的任何JavaScript代碼.location ='/ products/edit /'+ id,(其中id可能未定義)可以從該頁面調用。

但也有像上面其他地方的電話。我希望這是有道理的。 :)

+2

哪個瀏覽器是你測試?難道是發生在所有的瀏覽器?你有沒有在你的JS任何刷新/重新加載代碼的任何地方嗎?你嘗試過使用Firebug/IE瀏覽器開發工具/ Chrome開發工具來瀏覽代碼? – 2010-05-09 14:09:35

+5

@Andy - 離開咖啡!如果你只是彈出並閱讀它,這聽起來像一個同事o咖啡因熱潮 – 2010-05-09 14:12:28

+0

@尼克 - 那麼讓我們把它簡單; OP,你能否給我們提供一個例子,就像一些代碼或鏈接? – 2010-05-09 14:17:14

回答

4

不,沒有Javascript錯誤,本身會導致頁面重新加載。如果發生錯誤,瀏覽器沒有理由重新加載頁面,那麼它可能希望通過這種方式實現的唯一事情是導致同樣的錯誤再次發生。

因此,Javscript錯誤可能導致重新加載的唯一原因是腳本在正常工作時阻止重新加載,或者在某些特定情況下通常會導致重新加載並且未能將其限制爲這種情況。

例子:如果你有代碼,防止點擊從導致回發:

<a href="page.html" onclick="return false;"> 

如果有腳本錯誤,將不再阻止重載。

+0

這是我沒有考慮的事情。好的,再次查看代碼。 – sean 2010-05-09 14:29:00

+0

+1正確性 - 但如果你搞錯了'return false;',現在是時候調用它一天,喝杯咖啡,稍後回來:) – 2010-05-09 14:35:32

+2

@Nick Craver:但不是太多的咖啡,對不對? – 2010-05-09 15:03:37

1

該問題已經得到解答,但我想添加一個關於調試此行爲的建議。

我爲很多JS開發使用Firefox/Firebug,有時我會在頁面提交之前看到在Firebug中引發的異常,並且我無能爲力。如果我有100行JS響應某個事件,我不想逐步查找包含錯誤並導致重新加載的1行。

有一次,我可以複製我使用Fiddler設置一個斷點上的URL錯誤(例如,bpu localhost將停止爲首的本地主機的任何請求。儘管瀏覽器提交它仍然提供了訪問Firebug的,所以我可以檢查錯誤而提琴手持有的請求。

希望這可以幫助別人

+0

什麼是提琴手? – redolent 2013-03-04 23:32:01

+1

@redolent它是一個非常有用的(免費的).net工具,用於監視,捕獲和修改您的計算機上的HTTP請求和響應。這是Web開發的缺失部分,它的位置在您的瀏覽器調試器(Firebug,Chrome工具)和服務器端調試器(VS,Eclipse,x-debug)之間。它可以教你很多關於HTTP的知識,也可以幫助你在不改變代碼或編寫測試工具的情況下測試你的應用程序。 http://www.fiddler2.com/fiddler2/ – tomfumb 2013-03-05 01:46:36

相關問題