1

2つのサミーアプリケーションを備えたMVCアプリケーションがあります。1つは'home'コントローラー用、もう1つは'invoice'コントローラー用です。

'home''invoice'ページにパスを登録しました"#/about", (両方のページで新しいsammyアプリケーションが作成されます)。どういうわけかに移動すると'/invoice/#about'、「ホームページ」ページのコールバックが呼び出されます。もちろん、'#/about'ルートは'home'ページ上とページ上で異なる動作をする必要があり'invoice'ます。

だから私の質問は、サミーはどのようにそのルートを保存し、それらは同じドメイン内で共有されているのかということです。

それらを削除できますか?

そうでない場合、アプリケーションを完全に破棄する必要がありますか?

4

1 に答える 1

1

ソース コードから判断すると、それらは javascript オブジェクトにのみ格納されます。

add_route = function(with_verb) {
    var r = {verb: with_verb, path: path, callback: callback, param_names: param_names};
    // add route to routes array
    app.routes[with_verb] = app.routes[with_verb] || [];
    // place routes in order of definition
    app.routes[with_verb].push(r);
};

また、このチュートリアルを簡単にチェックして、Sammy がどこにも何も保持していないことを確認できます。Web SQL、ローカル ストレージ、Cookie などはありません。

したがって、ルート構成のスコープは、Sammy.Application オブジェクトのスコープです。明らかに、HTML ページの存続期間を超えることはできません。つまり、ブラウザーを別のドキュメントに移動すると、ルートは削除されます。

プラグインはルートを保存するかもしれませんが、実用的な目的が何であるかはわかりません。

于 2013-01-10T14:30:06.517 に答える