1

我刚刚在我当前的 RoR Web 应用程序中遇到了一个奇怪的行为:每次我使用浏览器的后退按钮(测试多个浏览器,包括安全模式)时,都会多次发送 GET 请求,重复。有时两次,但最多在 3 秒内连续 5 次。这也会导致 SQL 查询多次运行,做同样的事情。如果我使用链接返回或粘贴 URL 以访问上一页,则不会发生这种情况。有没有人遇到过这种情况,或者知道是什么原因造成的?

谢谢你的帮助!

最好的,

亚历克斯

4

2 回答 2

2

虽然我发现这是由其他问题引起的,但主要是Turbolinks.

基本上,Turbolinksbody通过 ajax 加载您的新视图,而不是拉动整个页面(它旨在加速生产中的应用程序)。

通常情况下,Turbolinks 会在按下back按钮时导致重复请求等问题......尽管在每个浏览器中都获得它是非常奇怪的。

--

由于缺乏代码,我只能推测这个问题。

这可能是错误的,但检查它是否复制的一个很好的测试是删除turbolinksJS 文件中的引用;具体来说:

#app/assets/javascripts/application.js
//= require turbolinks <- remove this line and see if it fixes the issue

如果答案不合适,我会很乐意删除答案。你最好建立一个公共回购,这样人们就可以看到你有什么基础设施。

于 2015-12-10T09:17:31.597 回答
0

对我来说,我意识到这个问题是由 aplication.html.erb 中的 javascript_include_tag 超出 head 标签引起的。

移动到正确位置后(在 head 标签内,stylesheet_link_tag 之后),多个请求消失了!

于 2017-05-09T14:14:19.280 回答