0

背景:构建一个小型应用程序,其目的是在最初到达应用程序后不会发生整页加载。实现了 pjax_rails 插件。但是,创建、更新和销毁操作(以及执行 redirect_to 的任何操作)会导致整个页面加载。

问题:如何在仍然使用 pjax(最好仍然使用 pjax_rails gem)的同时解决这个问题?我知道如何用 ajax 解决这个问题,但是如果整个事情都可以用这个 pjax 实现来解决,那就更好了;历史、可降解性等

为了节省澄清时间,已经做了这些事情:

宝石文件

gem 'pjax_rails'

application.js (包括其他要求,以防有一些我不知道的冲突)

//= require jquery
//= require jquery_ujs
//= require jquery.pjax
//= require twitter/bootstrap
//= require_tree .

// Explicitly specify which links have PJAX enabled.
$(function() {
  $('a:not([data-remote]):not([data-behavior]):not([data-skip-pjax])').pjax('[data-pjax-container]');
});

还尝试了 application.js 中的以下内容,以防我忽略了某些内容

$('a').pjax('[data-pjax-container]');

并尝试过

$('a').pjax('[data-pjax-container]', { timeout: 200000 });

应用程序.html.erb

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

1 回答 1

0

虽然这不是对我的问题的直接回答,但这是我在我的应用程序中采用的解决方案。

对于任何单页应用程序 (SPA),甚至是具有大量异步更新的应用程序,使用 JavaScript 框架似乎确实是要走的路。对我来说,我选择了 Backbone.js;虽然还有很多其他选项 - Knockout、Angular、Cappuccino、SproutCore、Ember、Spine。

请参阅为什么使用 Backbone.js?

于 2012-08-22T09:07:06.080 回答