【问题标题】:Is pjax the way to go for "fluid" navigation?pjax 是“流畅”导航的方式吗?
【发布时间】:2011-09-03 03:15:03
【问题描述】:

我已经开始使用pjax,因为我想为我的用户提供快速、流畅的体验,而不需要大量不必要的 HTTP 请求和重复呈现未更改的 HTML。

它在我的网站上运行得相当好,而且我必须说,考虑到它对体验有多大影响,启动和运行起来非常容易。

但是,我看到对 pjax 的支持很少——无论是在 StackOverflow 上还是在一般 Web 上(google search 在顶部返回许多结果 totally unrelated 到 Web 开发)。

但我对它印象深刻,即使它还没有得到广泛支持,我仍然可以使用它。当我已经在没有大量支持的情况下将代码投入其中时,我主要担心的是以后会遇到大问题。所以我想确保那里没有其他东西。

是否有替代方案可以实现我不知道的 pjax 提供的相同功能?还是它太新以至于没有多少人知道它?或者,它只是一个糟糕/有问题的实现?

【问题讨论】:

  • 使用 firefox 3.6.17 我收到消息,'对不起,您的浏览器不支持 pjax :(' & 阅读 SO, IE 中关于 pjax 的一个讨论 也许也不支持。

标签: jquery ajax pjax


【解决方案1】:

http://caniuse.com/#search=history 会告诉你什么支持当前版本的 pjax。

嗅探 PJAX 标头请求的服务器端代码也可以对浏览器做出反应,并为其他浏览器很好地降级。

http://forum.kohanaframework.org/discussion/8869/kopjax-simplistic-pjax-jquery-ajax-module/p1#Comment_60090 是一个不错的替代选项列表。

如果您不介意缺少对其他浏览器的支持或为此进行更改,那么我可以看到 PJAX 的唯一缺点是需要更新 1 个块/部分。

【讨论】:

  • “嗅探 PJAX 标头请求的服务器端代码也可以对浏览器做出反应,并为其他浏览器很好地降级。” ——你为什么需要这样做? PJAX 标头仅在 PJAX 请求上发送,仅在浏览器支持 PJAX 时才会发生。
【解决方案2】:

我还收到“抱歉,不支持”消息。

从这里指出的浏览器支持问题来看,我想说虽然 pjax 听起来很有趣,但它可能还没有为黄金时段做好准备。

它在 Firefox 3.6 中不起作用,但这是一个小问题,因为现在可以使用 FF4。但在可预见的未来,你真正的大拦路虎是 IE。如果这个产品连 IE9 都不支持,那么你使用它真的没有任何好处。

但随着目前浏览器世界的变化速度,这种情况会有所改善,因此请随意尝试它以期在以后实施它——如果这个答案是,我不会感到惊讶在一年的时间里完全不同——但就目前而言,我想说的是:一种实验性的好奇心。

【讨论】:

  • 谢谢。我实际上意识到缺乏对 IE 的支持。我的想法是最坏的情况,使用 IE 的用户将拥有与我不使用 pjax 时相同的体验。所有其他用户(FF4、Chrome、Safari)将获得更加流畅的体验。
【解决方案3】:

我使用 Jerad - 基于在 IE 中使用 the demo,它似乎可以正常降级。

如果您可以忍受一些没有获得 AJAX 体验的用户,我认为没有什么可失去的。

【讨论】:

    【解决方案4】:

    Pjax 是一个很好的解决方案,它可以优雅地降级。如果您想要更深入的解决方案,您可以使用主干导轨,但它需要更多的工作。我相信它与旧版浏览器更兼容,因为它不依赖于推送状态...

    【讨论】:

      【解决方案5】:

      我在尝试解决 1 个容器部分更新限制时遇到了问题,因此我整理了一个简单的替代方案,可以优雅地降级。 djax 实现了与 pjax 相同的结果,只是它对页面之间的布局变化无动于衷,并允许您更新页面上任意数量的部分。

      【讨论】:

        猜你喜欢
        • 2014-02-09
        • 2013-07-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多