多くの人から寄せられた質問のほとんどを読みましたが、jQuery 1.8.X async: false のドキュメントで示唆されているように非推奨です。
ユースケース: ジオコードと q パラメータを使用して取得できる、場所のトピックのすべてのツイートを (twitter 検索 API を使用して) 取得したいと考えています。
しかし、Twitter api で提案されているように、API から 15 * 100 の結果が得られることがわかっているため、すべてのページを取得する必要があります。
CODE : ここにあります。http://pastebin.com/rgVDQFve
問題は、getTweets によって返されるオブジェクトの状態が 1 であるため、tweetsPerPage が定義されていないことですが、状態は 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);
}
});
}