1

Ajaxを使用してアクションにリクエストを送信すると、結果のタイプはjsonになります。struts2にはjsonプラグインを使用します。結果は正しいですが、非常に長い時間がかかります。

以下はstruts.xmlの内容です。

<package name="FoodCompositionSearchajax"  extends="json-default">
      <action name="addSearchCondition" class ="com.fmOnline.action.FmzxMenuCompositionSearchAction" enter code here
method="addSearchCondition"> 
          <result name="success" type="json">
           <param name="excludeProperties">
     showList\[\d+\]\.foodStr,showList\[\d+\]\.nourishStr, 
     showList\[\d+\]\.searchFunction,showList\[\d+\]\.num1, 
     showList\[\d+\]\.num2,showList\[\d+\]\.danwei, 
     showList\[\d+\]\.nourishname,showList\[\d+\]\.resultmap, 
     dataList, foodList, foodStr, map, nourishList, nourishStr, 
     num1, num2, paramList, searchDes, searchFun
   </param> 
          </result>
     </action>
 </package>

<param name="includeProperties">機能しないため、<param name="excludeProperties">代わりに使用してください。

結果のjsonには、リスト(showList、2つのString属性が含まれ、要素の数は1から6まで変化します)とStringが含まれます。クライアントページのjavascriptからの結果コンテンツと<param name="excludeProperties">動作を警告しました。

jsonの結果は次のとおりです。 :"豆クラス中的タンパク質作っ>= 11"}、{"id":3、 "searchDes":"バイククラス中的タンパク質多洲>=11"}]}

最初はを使用し<result type="json"/>ました。長い時間の原因は大きすぎる物かもしれませんが。次に、@ JSON(serialize = false)を実行してgetメソッドを逆シリアル化しようとしました。これにより、これらのメソッドはjavaからjsonへの変換プロセスで実行されなくなります。最後に、excludePropertiesを使用しました。それらはすべて小さなオブジェクトを返すことに成功しましたが、時間を短縮することはできませんでした。通常のjspページの応答時間は良好です

問題:

  1. ローカルホストでプロジェクトを実行すると、応答時間が短くなります。

  2. リモートサーバーで実行している場合、クライアント側で応答するのに10秒以上かかります。データベースの操作は非常に高速で、サーバーからブラウザに結果を送信するのに長い時間がかかるようです。

  3. 結果がnullの場合、リモートサーバーからでも応答時間は短くなります。

どうすれば応答時間を短縮できますか?

4

2 に答える 2

0

あなたが提供した情報に基づいて、私は最初にJSON応答サイズを調べます。応答がnullの場合、応答時間は短いとおっしゃいました。ブラウザで直接AJAXリクエストを行うか、Firebug(Firefox用)などのデバッグツールを使用してレスポンスを確認します。応答が非常に大きく、JavaオブジェクトをJSON応答にマーシャリングする際に速度が低下する可能性があります。

JSON応答が非常に大きく、すべての情報を返す必要がない場合は、必要なフィールドのみを含むオブジェクトを作成して、それをマーシャリングする方が簡単な場合があります。

アップデート

さて、応答が大きすぎることを除外することができます。あなたがexcludePropertiesのそのような大きなリストを持っている理由はありますか?コメントアウトしてみて、役立つかどうかを確認することをお勧めします。そうでなければ、おそらくあなたのサーバーは遅いですか?

于 2010-12-18T22:52:32.130 に答える
0

jsonpluginをjson-lib-2.3-jdk15.jarに置き換えたところ、問題は解決しました。本当にありがとうございました〜とても幸せになりましたO(∩_∩)O〜

于 2010-12-20T15:14:31.087 に答える