2010-05-09 56 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

相关问题