1

これを適切にコーディングする方法が本当にわからないので、誰かが私を正しい軌道に乗せることができれば幸いです.

ジョブの MYSQL テーブルに一致する値を持つ SOAP+XML 配列があります。ジョブは非表示の行に表示されます。非表示の各行には、他の 3 つの情報を表示する 3 つの個別の SOAP+XML 要求があります。ユーザーはジョブをクリックすると、javascript を使用して下の非表示の行が表示されるため、追加情報が表示されます。

現在の私のインターフェイス 1) http://i.imgur.com/Cx7qB.png 2) http://i.imgur.com/HzXe5.png

問題は、ユーザーがページに 100 のジョブを表示することを選択した場合に、これをスケールアップするときです。ジョブを取得するには、最初の SOAP+XML リクエストでサーバーにアクセスする必要があります。次に、ジョブごとにさらに 3 回ヒットします。したがって、100 件のジョブを表示している場合、SOAP サーバーに 301 回アクセスしていることになります。

私が必要としているのは、1 つの最初の SOAP+XML リクエストに対してのみサーバーにヒットする方法です。その後、誰かが JavaScript を開始して非表示の行を表示すると、追加のジョブ情報を求める 3 つの SOAP リクエストが開始されます。そうすれば、ユーザーは見たくない情報を待つ必要がなくなり、サーバーのパフォーマンスが低下することもありません。問題は、これを行う方法が本当にわからないことです。

私は JavaScript についてはあまり詳しくありませんが、PHP についてはかなりの知識があります。テーブルのセカンダリ行を非表示にするために使用しているスクリプトは次のとおりです: http://pastebin.com/jhvaW0X4

これを成し遂げるにはどうすればいいのか、誰でも相談できますか?

ありがとうございました!

4

1 に答える 1

1

問題を理解しているかどうかはわかりませんが、javascript イベントで ajax リクエストを行うことができます。この場合、ユーザーがジョブ tr をクリックすると、必要な情報に対して ajax リクエストを行います。$.ajax jquery メソッド:

$("table#report1.report > tbody > tr.odd").click(function()
{
    if(!$(this).next("tr").hasClass('shown'))
    {
        //Put here your ajax request

        $.ajax({
            url: yourSoapURL, getting tracking info url
            type: "POST",
            dataType: "xml",
            data: soapMessage,
            processData: false,
            contentType: "text/xml; charset=\"utf-8\"",
            success: function(soapMessage) {
                    //Add the tracking info to the tr that will be show
                    $(this).next("tr").text(soapMessage);
                    //Now the text is in the tr, show it!
                    $(this).next("tr").show();
                    $(this).next("tr").addClass("shown");
            },
            error: OnError
        });


    }
    else
    {
        $(this).next("tr").hide();          
        $(this).next("tr").removeClass("shown");
    }

それがアイデアです。複数の AJAX リクエストを管理したい場合は、これを読んでください: Multiple AJAX requests in jQuery

于 2013-01-14T18:26:07.293 に答える