1

私はDerbyアプリケーションに取り組んでいますが、ページを離れるときに購読を解除する方法がわからないようです。私は一般的に退会する方法を知っていますが、ページを残すことをフックすることが問題のようです。

私の既存のコードは次のようになります。

get "/somePath", (page, model) ->
    someQueryHere = model.query("somecollection").someMotif()

    model.subscribe someQueryHere, (err, results) ->
        if err?
            ...
            return

        ...

    do page.render
4

1 に答える 1

1

「ページを離れる」とはどういう意味ですか?ページ全体のリロードが発生した場合、サブスクライブを解除する必要はありません。とにかく、socket.io接続は終了します。

一方、クライアント側のページレンダリングでモデルのサブスクライブを解除する場合は、次のいずれかのrenderイベントを使用してみてください。

app.on 'pre:render', ->
  model.unsubscribe someQueryHere

レンダリングイベントはルートが実行された後に発生するため、サブスクライブしたばかりのクエリ/パスからサブスクライブを解除しないように注意する必要があることに注意してください。

とにかく、より完全な例はあなたの質問をよりよく理解するのに役立ちます。

あなたの例に関する別の注意:おそらくコールバックpage.render()内で呼び出されるべきです。また、単に次のように呼び出すのではなくsubscribe、なぜ使用するのですか?do page.renderpage.render()

于 2012-10-09T09:21:46.463 に答える