2012-03-20 11 views
0

私はjavascriptと開発のフロントエンド側で初めてです。フォームが
提出された回数を追跡するためにPubnub ページロード時にpubnubとjquery/javascriptを使用してサーブレットから値を更新


  • レイアウト/テーマのさえずり - ブートストラップ
  • Tomcat7
  • 上で実行されている

    • Javaサーブレットを:ここで

      は、私が使用していますものです

    • この値をWebページに表示するにはJavascript/jqueryを使用します。

    ウェブページの値を更新するPUBNUB.subscribeコールバックを追加しました。しかし、最初にウェブページを読み込むと、どの値を表示するべきかわかりません。 POSTリクエストの正しいパラメータで渡されたときに、表示される量のpubnubメッセージを送信するサーブレットにメソッドを追加しました。うまく動作します。

    次に、私はこのようにjQueryを使ってPOSTリクエストを呼び出そうとしました:

    $.post("../servlets/theservlet", 
         { 
          update : "true" 
         }); 
    

    私は$(ウィンドウ)内の機能を.LOADが、私は、Webページをロードしたとき、それが何をしていなかったことを置いてみました私は期待した。 すべてがロードされた後にPOSTを実行すると予想されました。これにより、pubnubメッセージがサーブレットから発行され、PUBNUB.subscribe関数のコールバックメソッドがアクティブになります。しかし、値は変更されず、htmlにハードコードされたプレースホルダーとして残っていました。

    現在、私は現在、setTimeout( "updateUses()"、1500)を呼び出しています。 $(window).load関数の中から。 updateUses()は私が前に示したものと全く同じ$ .post呼び出しです。

    ページをロードすると、プレースホルダの値が少しあります(1.5msより長く見える)。その後、正しい値に更新されます。 setTimeoutを削除してupdateUses()を直接呼び出すと、何も起こりません。

    値を即時に(または少なくとも遅れなく)変更するには、何を変更する必要がありますか?

    +0

    成功したコールバックを使わないで '$。post(url、data);'はどのようにDOMを更新しますか? –

    +0

    さらに、PUBNUB統計情報を使用してページを配信してください。 –

    +0

    ポストは、既にメッセージを待っているPUBNUB.subscribeイベントによって捕捉されたPUBNUBパブリッシュ・イベントをトリガーするサーブレットをアクティブにするためです。 サーブレットでやっているデータベースクエリを実行せずに現在の値にアクセスする方法がないため、カウンタ値がすでに設定されているページをどのように提供するのか分かりません。 – Talon876

    答えて

    2

    ページビルダーがJSPであると私はちょうど読んでいることは、あなたはこのような何かを行うことができるはず正しい場合:

    RequestDispatcher rd=application.getRequestDispatcher("path/to/pubnub/servlet"); 
    rd.include(request,response); 
    

    あなたはAjaxのアプローチに固執することを選択した場合、その後のjavascriptが見えるはずですこのようなものは:

    $(function(){ 
        $.post("path/to/pubnub/servlet", {update:"true"}, function(response){ 
         //do whatever is necessary with the response here, eg. 
         //$("#myElementId").html(response); 
        }); 
    }); 
    

    ラッパーは、DOMの準備が完了した後、それが早期に実行された内部のコードを保証します。したがって、タイムアウトの必要はありません。 jQueryは通常、そのようなラッパーの内部に記述されます。

    +0

    ありがとうございます!私は機能(応答){}の部分を行うことができることを知らなかった。私はサーブレットを更新して値に応答し、pubnubに強制的に更新させるのではなく、要素のhtmlを更新します。 – Talon876

    +0

    クール!これは実用的なアプローチと思われますが、私はあなたの元のpublish-subscribeメソッドがどのようにページに価値をもたらしたかについてまだ謎に包まれています。 –

    関連する問題