我在部署中得到了一些奇怪的页面刷新,我似乎无法找到它的原因或在开发中复制它。有没有办法让javascript错误或异常导致页面重新加载?或者一些提示可以帮助我缩小范围?
在现场部署时会发生这种情况,我在本地测试时无法复制它。我知道它正在发生,因为我正在使用ELMAH记录异常。用户正在使用Firefox。
UrlReferrer:example.com/products/edit/100
GET的网址:example.com/products/edit/undefined
我没有看到任何可以从该页面调用的window.location ='/ products / edit /'+ id,(其中id可能未定义)形式的javascript代码。
但是其他地方有如上所述的电话。我希望这是有道理的。 :)
答案 0 :(得分:4)
不,没有Javascript错误本身会导致页面重新加载。如果发生错误,浏览器没有理由重新加载页面,它唯一希望实现的是导致同样的错误再次发生。
因此,Javscript错误可能导致重新加载的唯一原因是脚本在正常工作时阻止重新加载,或者它是否在某些特定情况下导致重新加载并且无法将其限制为该情况。 / p>
示例:如果您有阻止点击导致回发的代码:
<a href="page.html" onclick="return false;">
如果脚本中出现错误,则不再阻止重新加载。
答案 1 :(得分:1)
问题已经得到解答,但我想补充调整此行为的建议。
我正在使用Firefox / Firebug进行大量的JS开发,有时我会在页面提交之前看到Firebug中引发的异常,我无能为力。如果我有100个JS行来响应一个事件,我不想一步一步地查找包含错误的1行并导致重新加载。
一旦我可以复制错误,我就会使用Fiddler在URL上设置一个断点(例如bpu localhost
,这将停止任何前往localhost的请求。即使浏览器已经提交,它仍然可以访问Firebug,所以我可以在Fiddler持有请求时检查错误。
希望这有助于某人