3

在这里,我试图从 REST API 数据中请求数据并使用 JQuery 呈现在网页中。

我正在发出 3 个不同的请求,响应时间大约为 200 毫秒、300 毫秒、7000 毫秒。这里从 3 个调用方法中调用了两个调用方法,我不明白为什么没有调用第 3 个。使用 Firebug 工具进行调试时,响应来自服务器。

当以下函数的顺序发生变化时,行为也会发生变化。正在调用一个或两个回调方法中的任何一个。

请帮我解决这个问题。

$.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

尝试这个:

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!');
});

编辑:我也附加了错误处理程序,并删除了?从网址。

于 2012-08-02T18:59:23.823 回答
1

您的语法似乎已关闭,括号和括号没有正确排列。如果您通过 Firebug 进行检查,您应该会在页面上收到错误消息。

更新: 我相信你的代码应该这样格式化:

$.getJSON(
    url,
    function(json) {

    }
)

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

        function(json) {

        }
    )
}
);

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

        function(json) {

        } 
    )
}
);

此外,您应该考虑将重复的代码移动到一个函数中,并且只使用一个 document.ready 调用。这将使您的代码更健壮且更易于阅读。

于 2012-08-02T18:45:07.040 回答