0

背景:最初にアプリに到着した後、ページ全体の読み込みが発生しないようにすることを目的とした小さなアプリを構築しています。pjax_rails プラグインを実装しました。ただし、作成、更新、および破棄のアクション (および redirect_to を実行するすべてのアクション) では、ページ全体が読み込まれます。

質問: pjax を使用している間 (できれば pjax_rails gem を使用している間)、どうすればこれを回避できますか? 問題が ajax でどのように解決されるかは知っていますが、この pjax 実装ですべてを処理できれば、はるかに良いでしょう。履歴、分解性など

明確化の時間を節約するために、次のことが行われました。

Gemfile

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 });

application.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 に答える