10

Smalltalk / Seaside の最新情報を取得しようとしています。ウィキペディアによると、「Seaside は継続ベースの Web アプリケーション フレームワークです」。私は Java のバックグラウンドを持っているため、継続についてはあまり詳しくありません。

いくつか読んだ後、状態を維持するために継続が使用されることを理解しました。これにより、プロセスのスナップショットが保存され、後で再開できます(Windowsを休止状態にするのと同様)。

「戻る」ボタンの使用に関して、これは Seaside に最も関連がありますか? コードブロックと「コールバック」を使用することは、継続を使用することと同じではありませんか?

また、Seaside で実際に継続を使用することの現在の重要性を測ろうとしています。Seaside に関する多くのオンライン リファレンスでは、重要かつ定義的な機能として継続が言及されているため、私は混乱しています。ただし、Seaside での継続の使用はあまり一般的ではなく、実際には重要な機能ではないことを述べている記事もいくつか見つけました。

これで私をまっすぐにするのに役立つ情報をありがとう!

4

2 に答える 2

13

Seaside は当初、継続を使用してページ間のフローをモデル化し、戻るボタンを有効にしていました。これは Seaside 3.0 では当てはまりません: 継続は完全にオプションです。call:およびanswer:機能を使用する場合は、パッケージをロードできますSeaside-Flow。それ以外の場合、Seaside アプリケーションは継続フリーです。

いずれにせよ、Web アプリケーションの開発者として、継続を確認 (または確認) することはありません。これらは、Seaside Web フレームワークにうまくカプセル化された実装の詳細です。

更新: Seaside 3.0 では、状態はリクエストごとに特別なオブジェクトを保存することによって管理されます。このオブジェクトは、その時点でのアプリケーションの状態を記憶しています。ユーザーが戻ってきた場合、オブジェクトは以前の状態に復元して再開する方法を知っています。その点で、このオブジェクトは継続のように振る舞います (クラスは と呼ばれWASessionContinuationます) が、その実装は大きく異なります。実行スタックのスナップショットを作成するのではなく、アプリケーションの状態の特定の部分のみをスナップショットします (そのため、消費されるメモリが少なくなります)。また、継続のようにコードのどこかにジャンプすることはありませんが、代わりに必要な再開ロジックをテンプレート メソッドの一部として実装しますWASessionContinuation>>#handleRequest(これがより高速な理由です)。

于 2011-11-26T18:10:29.970 に答える
2

継続は、適切な抽象化を使用して Web プログラミングが可能であることを示す重要な機能です。これにより、Seaside は、適切な抽象化レベルで開発することを好む賢い開発者を引き付けることができ、その結果、生産性が向上します。しかし、これは Web アプリケーションにとって適切な抽象化であるという意味でも、Seaside で必要であるという意味でもありません。

于 2011-11-28T12:54:29.263 に答える