2009-06-17 2 views
12

イントラネットでDWRを使用している間に、パフォーマンスやセキュリティの問題などの不具合は発生しますか? ダイレクトWebリモーティングは、Ajaxリクエストを使用してjsファイルからサーバーに接続するツールです。DWRの欠点は何ですか?

答えて

8

私が注意しなければならないことの1つは、(通常の)フルページHTTP配信を使用している場合よりも、多くのHTTP要求がサーバーに当てはまる可能性が高いことです。

私を説明しましょう。あなたのWebページがAJAXに対応していると、クライアントはフォームの埋め込み、ページ断片の再生成などのために、より多くのHTTPリクエストを作成してしまいます。開発者がAJAXに夢中になったシナリオを見て、主に動的な文書。その結果、ユーザーエクスペリエンスは向上しますが、すべての要求がサーバーヒットとなり、スケーラビリティとレイテンシの問題が発生します。

注 - これはDWRに特有の問題ではありませんが、AJAXの問題です。私はDWRを使用しました。うまく動作します。残念ながら、私はそれがうまくいっていることがわかりました。そして、すべてがリモーティングの候補になり、そしての巨大なの小さな要求の数で終わることができます。

+0

私はこの回答に同意します。 WebベースのアプリケーションでDWRを使用しました。アプリケーションは優れたユーザーエクスペリエンスを提供しますが、JavaScriptとhttprequestのすべてのために、アプリケーションが速く動作しないと思います。 – Michel

2

私はDWRを使用したプロジェクトに取り組んでいます。本当に素晴らしいツールです。

私は開発のペースを確信していません。彼らはon the development logの投稿をして3.0を出そうとしていますが、2006年の夏には最後の安定版2.0がリリースされました。サポートの観点からは少し心配です。

2

私が経験した主な問題は、DWR呼び出しによって作業の大部分が行われるシステムで負荷テストをスクリプト化しようとしていることです。呼び出しの形式は、パラメータの変更を伴う一連のURLへの返信と比べて、複製が難しい。

まだDWRは優れたフレームワークであり、Javascript - > Java RPCをかなり簡単に実装できます。

0

あなたのサイトに多くのajax呼び出しがある場合、DWRは素晴らしいツールです。 DWRのRPC呼び出しを行う

各ページが含まれている必要があります:

a)は通話に対応したインターフェイスファイルが作成されています。 および b)これらの呼び出しを可能にするdwrエンジンコードを含むdwrにバンドルされたjsファイル。例えば、 <script src="/dwr/engine.js" ></script>

Webアプリケーションを最適化する際に頻繁に使用される手法の1つは、リソース(jsファイルなど)がサーバー上で変更されていない場合に、できるだけブラウザキャッシュを使用することです。

engine.jsは、dwrを新しいバージョンにアップグレードしない限り変更されないものです。しかし、デフォルトでは、engine.jsはあなたのWebサーバーによって提供される静的ファイルではありません。それはdwrツールitsefの一部としてバンドルされ、dwrコントローラ/サーブレットによって提供されます。これは、クライアント側のキャッシュを助けません。

したがって、Webサーバーのドキュメントルートにengine.jsを保存し、Webサーバーに静的ファイルとして提供させることは有益です。

+0

DWRのサイトでengine.jsをキャッシュする方法の詳細:http://directwebremoting.org/dwr/browser/engine/static.html – Jonik

1

現在のDWR 3.xに欠けている点は、BeanのインスタンスにNULL値のプロパティがある場合、これらのプロパティはJSONに注入され、これらの冗長なデータはパフォーマンス。

プロパティの値がNULLの場合、通常はフロントエンドに送信しないでください。問題の

詳細:http://dwr.2114559.n2.nabble.com/Creating-Custom-bean-converter-td6178318.html

0

オブジェクトを転送するために、他のソリューションのうち、最大の違い(マーシャリング)がオブジェクト参照です。例えば

、ツリーを転送するためにそれを使用する場合:

| -B

|リスト内-C

{A、B、C}。

B.parentは C.parentが

次いでAは番目である==しますJavascritの同じオブジェクト!悪い側で

、あなたは循環依存関係とオブジェクトの多くの複雑な構造がある場合:< -B、B < -C、C < -B、C < .Aを、...それはクラッシュする可能性がありました。

とにかく、複雑なグラフを描くために何千ものオブジェクトを1つのhtmlページに転送するために、数多くの企業が実際に使っているプロジェクトで使っています。

関連する問題