1

数秒ごとにテーブルを更新したいピラミッドで webproject を作成しています。私はすでに ajax を使用することに決めましたが、何かに行き詰まっています。

クライアント側では、次のコードを使用しています。

    function update()
    {
    var variable = 'variable ';
    $.ajax({
        type: "POST",
        url: "/diagnose_voorstel_get_data/${DosierID}",
        dataType: "text",
        data: variable ,
        success: function (msg) {
        alert(JSON.stringify(msg));           
        },
        error: function(){
            alert(msg + 'error');
          }                      
        });
    }

ピラミッド側:

@view_config(route_name='diagnose_voorstel_get_data', xhr=True, renderer='string')    
def diagnose_voorstel_get_data(request):
    dosierid = request.matchdict['dosierid']
    dosieridsplit = dosierid.split     
    Diagnoses = DBSession.query(Diagnose).filter(and_(Diagnose.code_arg == str(dosieridsplit[0]), Diagnose.year_registr == str(dosieridsplit[1]), Diagnose.period_registr == str(dosieridsplit[2]), Diagnose.staynum == str(dosieridsplit[3]), Diagnose.order_spec == str(dosieridsplit[4])))       
    return {'Diagnoses ' : Diagnoses }

ここで、tal:repeat ステートメントを使用して、このデータを zpt でテーブル内に配置したいと考えています。ページの読み込み時にこのデータをテーブルに配置する方法は知っていますが、これを ajax と組み合わせる方法はわかりません。

anny1 でこの問題を解決できますか? よろしくお願いします。

4

1 に答える 1

1

AJAX でほぼ何でもできますが、「可能性がない」とはどういう意味ですか? Martijn Pieters が指摘するように、ブラウザには ZPT がなく、サーバーには AJAX がないため、質問のタイトルはあまり意味がありません。

オプションのいくつかは次のとおりです。

  • クライアントは AJAX リクエストを送信し、サーバーはサーバー側の処理を行い、AJAX 呼び出し成功ハンドラーで、クライアントは のようなものを使用してページ全体をリロードしますwindow.location.search='ts=' + some_timestamp_to_invalidate_cache。ページ全体が新しいデータでリロードされます - 通常のフォーム送信とほとんど同じように機能しますが、このように AJAX を使用する意味はまったくありません。

  • クライアントは AJAX リクエストを送信し、サーバーは ZPT でレンダリングされた HTMLフラグメントを返し、クライアントはそれを AJAX 成功ハンドラーでページ上のいくつかの要素に追加します。

    function update()
    {
        var variable = 'variable ';
        $.post("/diagnose_voorstel_get_data/${DosierID}")
           .done(function (data) {'
               $('#mytable tbody').append(data);
          });
    }
    
  • クライアントは AJAX リクエストを送信し、サーバーは JSON オブジェクトを返し、クライアント側のテンプレート エンジンの 1 つを使用してクライアントでレンダリングします。これはおそらく、アプリケーション全体をクライアントでレンダリングし、サーバーがすべてのデータを JSON として提供する場合にのみ意味があります。

于 2013-05-14T19:38:07.377 に答える