3

ここでは、REST APIデータからデータを要求し、JQueryを使用してWebページに表示しようとしています。

私は3つの異なる要求を行っていますが、応答には約200ミリ秒、300ミリ秒、7000ミリ秒の時間がかかります。ここでは、3つのうち2つの呼び出しメソッドが呼び出されていますが、3つ目の呼び出しメソッドが呼び出されていない理由がわかりません。Firebugツールを使用してデバッグする場合、応答はサーバーから取得されます。

以下の関数の順序が変わると、動作も変わります。1つまたは2つのコールバックメソッドのいずれかが呼び出されています。

この問題を解決するのを手伝ってください。

$.getJSON(
    "http://115.111.168.221:8080/AnalysisWebService/getDataFromSocialMedia?searchString=wellpoint&startDate=2012-08-01&endDate=2012-08-04&method=getAnalysisRange",
    function(json) {

        }

$(function () {
$.getJSON(
"http://115.111.168.221:8080/AnalysisWebService/getDataFromSocialMedia?searchString=wellpoint&source=facebook,twitter&searchFrom=socialmention&method=getTodayAnalysis",        

function(json) {

}
}
);
);

$(function () {
$.getJSON(
"http://115.111.168.221:8080/AnalysisWebService/getDataFromSocialMedia?searchString=wellpoint&source=facebook,twitter&searchFrom=socialmention&method=getCurrentAnalysis",      

function(json) {

}
}
);
);
4

2 に答える 2

1

構文がずれているように見えます。角かっこと括弧が正しく並んでいません。Firebugをチェックすると、ページにエラーが表示されるはずです。

更新: コードは次のようにフォーマットする必要があると思います。

$.getJSON(
    url,
    function(json) {

    }
)

$(function () {
    $.getJSON(
    url,      

        function(json) {

        }
    )
}
);

$(function () {
    $.getJSON(
        url,      

        function(json) {

        } 
    )
}
);

さらに、重複するコードを関数に移動し、document.ready呼び出しの1つだけを使用することを検討する必要があります。これにより、コードがより堅牢になり、読みやすくなります。

于 2012-08-02T18:45:07.040 に答える
1

これを試して:

var url = 'http://115.111.168.221:8080/AnalysisWebService/getDataFromSocialMedia?searchString=wellpoint';

$.getJSON(url + '&startDate=2012-08-01&endDate=2012-08-04&method=getAnalysisRange', function (json) {
    // do something
});

$.getJSON(url + '&source=facebook,twitter&searchFrom=socialmention&method=getTodayAnalysis', function (json) {
    // do something
});

$.getJSON(url + '&source=facebook,twitter&searchFrom=socialmention&method=getCurrentAnalysis', function (json) {
    // do something
});

一部のリクエストを実行するためにDOMを準備する必要がないため、それらを他のものでラップする必要はありません。

さらに良いことに、読みやすくするために次のようなことを行ってください。

var url = 'http://115.111.168.221:8080/AnalysisWebService/getDataFromSocialMedia';

$.getJSON(url, {
    searchString: 'wellpoint',
    startDate: '2012-08-01',
    endDate: '2012-08-04',
    method: 'getAnalysisRange'
}).success(function(json) {
    console.log(json);
}).error(function() {
    console.log('error!');
});

$.getJSON(url, {
    searchString: 'wellpoint',
    source: 'facebook,twitter',
    searchFrom: 'socialmention',
    method: 'getTodayAnalysis'
}).success(function(json) {
    console.log(json);
}).error(function() {
    console.log('error!');
});

$.getJSON(url, {
    searchString: 'wellpoint',
    source: 'facebook,twitter',
    searchFrom: 'socialmention',
    method: 'getCurrentAnalysis'

}).success(function(json) {
    console.log(json);
}).error(function() {
    console.log('error!');
});

編集:エラーハンドラーも添付し、?を削除しました URLから。

于 2012-08-02T18:59:23.823 に答える