【问题标题】:Rails - Back button generates duplicate server requestsRails - 后退按钮生成重复的服务器请求
【发布时间】:2016-03-15 19:49:17
【问题描述】:

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

感谢您的帮助!

最好的,

亚历克斯

【问题讨论】:

    标签: ruby-on-rails httprequest back-button back-button-control


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

      基本上,Turbolinks 通过 ajax 加载新视图的 body,而不是拉动整个页面(这是为了加快生产中的应用程序)。

      Turbolinks 经常会在按下back 按钮时导致重复请求等问题......虽然每个浏览器都得到它是很奇怪的。

      --

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

      这可能是错误的,但是一个很好的测试来看看它是否复制是在你的 JS 文件中删除对 turbolinks 的引用;具体来说:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-01-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-04-06
        • 2014-07-24
        • 2011-01-21
        相关资源
        最近更新 更多