我阅读了大多数人提出的大多数问题,但正如jQuery 1.8.X异步文档中所建议的那样:false已被弃用。在Ajax中进行同步请求,对于jQuery 1.8
使用案例: 我想获取所有推文(使用twitter搜索API)作为位置的主题,我可以使用地理编码和q参数获取该主题。
但我需要获取所有页面,因为我们知道您可以通过twitter api建议的api获得15 * 100个结果。
CODE:可以在这里找到。 http://pastebin.com/rgVDQFve
问题是tweetsPerPage是不确定的,因为getTweets返回的对象是在1状态,但它应该有4
状态,我使用jQuery 1.8.2我试图改变它,但没有效果。
任何人都可以提出一些建议。
编辑:
function main() {
for(hindex=0; hindex<HASHTAGS.length; hindex++) {
for (cindex=0; cindex<COORDINATES.length;cindex++) {
for (pindex=0; pindex<NUMBER_OF_PAGES; pindex++) {
getTweets(HASHTAGS[hindex], COORDINATES[cindex][1], COORDINATES[cindex][2], pindex+1, function(tweets) {
TWEETS = TWEETS.concat(tweets); /*basically I am getting all the tweets in this, I just need a way by which after executing all the getTweets along with their success functions and the callback I get the control to myself which will help me in using TWEETS*/
});
}
}
}
}
function getTweets(hashtag, latitude, longitude, pageIndex, callback) {
$.ajax({
url: 'http://search.twitter.com/search.json',
cache: false,
dataType: 'jsonp',
data: {
q: hashtag,
geocode: latitude + "," + longitude + "," + RADIUS,
page: pageIndex,
rpp: RESULTS_PER_PAGE,
result_type: RESULT_TYPE
},
success: function (data) {
var results = data.results;
var tweets = [];
$(results).each(function(index, tweetJSON) {
var tweet = {
created_at: 'Dhruven' + " " + pageIndex + " " + (index+1)
};
var tweetObj = JSON.stringify(tweet);
tweets.push(tweetObj);
});
callback(tweets);
}
});
}
依我之见,getTweets正在恢复XMLHttpRequest对象,而不是每页的推文。这是打算? – Andre
是的,它是返回XMLHttpRequest对象,但如果你看到里面的状态是1,所以实际上在执行ajax请求之前,它返回,为什么我不确定你有什么想法,我试过甚至回调方法..哪在我的情况下不起作用。 –
我采取了谷歌搜索,和jsonp的实施方式,它不能同步完成。你必须切换到回调,你说你尝试过。你遇到了什么问题? – Andre