0

私はこれらのテクノロジの両方に慣れていないため、アプリを構成する最良の方法を知りたいと思っています。hastags を持たず、pushState を使用したいだけです。また、サーバー側とクライアント側のレンダリングを混在させることが最善であると読んだことから、これを設定する方法がわかりません。私はそれをどちらか一方にする方法を考え出しましたが、一緒にはしません。

今のところ、私がいる場所は次のとおりです。

特急ルート

app.get('/', site.index);
app.get('/product/:id', wiki.show);

繰り返しますが、これは pushState を使用しなくても問題なく機能しますが、この 2 つを組み合わせるにはどうすればよいでしょうか?

4

1 に答える 1

1

ハイブリッド クライアント/サーバー アプリを作成するには、クライアントとサーバーの両方がすべてのビューをレンダリングできるようにする必要があります。ユーザーがサイトにアクセスすると、サーバーはビューをレンダリングし、html をユーザーに送信します。この時点で、クライアント側のアプリが読み込まれ、相対リンクが傍受され、バックボーン ナビゲーションに置き換えられる必要があります。

$(document).on('click', 'a:not([data-bypass])', function(e){
  href = $(this).prop('href')
  root = location.protocol+'//'+location.host+'/'
  if (root===href.slice(0,root.length)){
    e.preventDefault();
    Backbone.history.navigate(href.slice(root.length), true);
  }
});

このコード行は、バックボーン アプリが開始されると、データ バイパス属性のないすべてのアンカー タグをキャッチし、そのページの要求をサーバーに送信する代わりに、クライアント アプリケーションでルート関数を起動します。データ バイパス属性を追加して、ルート関数を起動しないリンクを作成します。

于 2012-10-04T22:21:21.100 に答える