【问题标题】:Pjax Working on Select Pages OnlyPjax 仅在选定页面上工作
【发布时间】:2012-05-06 01:34:59
【问题描述】:

我之前在这里看到过这个问题,但无法使用建议的解决方案来解决我的问题。 基本上我已经为我正在开发的网站实现了 rails pjax gem,但是它只适用于某些内容。主页和初始级别的链接不会以 pjax-y 方式加载,但是每个后续页面都会这样做。

这是为网站声明收益的唯一地方。

<!DOCTYPE html>
    <html>
    <head>

      <title>MyWellbeing.org - What's on your mind?</title>
      <%= stylesheet_link_tag "application" %>
      <%= raw "<link href='http://#{request.env["HTTP_HOST"]}/sites/site_styles.css'  media='screen' rel='stylesheet' type='text/css' />" %>
      <%= javascript_include_tag "application" %>
      <%= csrf_meta_tags %>

    </head>
    <body>

      <div class="container">
        <div id="clicked_off_div" class="display_none"></div>

        <%= render 'articles/shared_article_header' %>
        <%= render 'articles/logged_in' if user_signed_in? %>

        <div data-pjax-container>
          <%= yield %>
        </div>

        <%= render 'articles/shared_footer' %>

      </div>

      <%= render 'shared/google_analytics' %>

    </body>
    </html>

这里是工作站点http://core.giffordteam.com 的链接编辑:推送到现场站点

任何关于这个问题的指针将不胜感激。一些(但不是全部)页面是如何工作的,这非常令人困惑。

谢谢

【问题讨论】:

  • 没有最终的html是不可能的,但是&lt;div onclick="location.href='articles/sad';"&gt;可能会绕过pjax,所以这是一回事。调试起来应该相当简单——只记得在firebug的网络面板中打开persist(不确定其他浏览器是否有等效项)。
  • 你好肖恩。如果这有帮助,我将把它推送到实时站点。我在我的服务器面板中注意到,对非工作页面的请求没有通常的 Started GET "/?_pjax=%5Bdata-pjax-container%5D" 样式请求,只是标准的 Started GET "/articles /饥饿的”。我不确定这意味着什么?随着坚持(感谢提示)我收到一个中止的请求 GET core.giffordteam.com/articles/... jquery.js?body=1 (第 8103 行)。这能说明什么?我会看看那个 onclick 的东西,看看这是否有帮助。谢谢
  • 好的,我修复了 onclick 并推送,但没有解决问题,现在其他一些页面似乎有中止问题。我读过也许控制器中的渲染格式可能是问题?这是一个典型的摘录。 def index ATarticle_relationships = ArticleRelationship.all respond_to do |format| format.html # index.html.erb format.json { render json: ATarticle_relationships } end end 也不知道是不是真的,但是我的本地版本似乎是通过pjax方式工作的,而我的服务器没有。但也许 firebug 无法在本地检测到错误?
  • 好的似乎已经完全修复了。我将默认超时更改为“$.pjax.defaults.timeout = false;”还结合您的 onclick 建议,现在整个事情似乎都奏效了。
  • 很好地调试了这两个问题。您应该写一个答案并接受它,以便将来查看此问题的人更清楚。

标签: ruby-on-rails ajax ruby-on-rails-3 pjax


【解决方案1】:

我设法通过删除 div 的 onclick 功能并将其放在单独的锚标记中来解决此问题。然后我用

删除了 pjax 调用的默认超时

$.pjax.defaults.timeout = false;

这些组合解决了问题。

在整个过程中,我在 Firefox 中使用了 Firebug,并在控制台中打开了 Persist。这更好地表明了某些页面上的一致失败,以及当页面没有失败时数据应该是什么样子。

非常感谢 Sean Hogan 帮助我解决这个问题。特别是使用 Firebug 进行调试。

【讨论】:

  • 这对我也有用。我每 3-4 次尝试重新加载一次页面。但是添加此行会停止重新加载。谢谢!
猜你喜欢
  • 1970-01-01
  • 2014-07-22
  • 1970-01-01
  • 2021-09-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多