我試圖從Topsy(http://code.google.com/p/otterapi/)獲得分頁的json響應,並且遇到合併對象的問題。我想在瀏覽器中這樣做,因爲api速率限制是每個ip /用戶,並且低到可以做服務器端的事情。使用JavaScript合併JSON api響應
這是我的代碼。有沒有更好的辦法?當然,這是因爲這不起作用。我想我想讓這個工作,但也要了解是否有一個更安全,和/或更有效的方式。
該錯誤消息我得到的是...
類型錯誤:表達式「window.holdtweetslist.prototype」的結果[未定義]不是一個對象。
在此先感謝。
乾杯 斯蒂芬
$("#gettweets").live('click', function(event){
event.preventDefault();
getTweets('stephenbaugh');
});
function getTweets(name) {
var MAX_TWEETS = 500;
var TWEETSPERPAGE = 50;
var BASE = 'http://otter.topsy.com/search.json?type=tweet&perpage=' + TWEETSPERPAGE + '&window=a&nohidden=0&[email protected]' + name + '&page=1';
var currentpage = 1;
alert(BASE);
$.ajax({
dataType: "json",
url: BASE,
success: function(data) {
window.responcesreceived = 1;
var response=data.response;
alert(response.total);
window.totalweets = response.total;
window.pagestoget = Math.ceil(window.totalweets/window.TWEETSPERPAGE);
window.holdtweetslist = response.list;
window.holdtweetslist.prototype.Merge = (function (ob) {var o = this;var i = 0;for (var z in ob) {if (ob.hasOwnProperty(z)) {o[z] = ob[z];}}return o;});
// alert(data);
;; gotTweets(data);
var loopcounter = 1;
do
{
currentpage = currentpage + 1;
pausecomp(1500);
var BASE = 'http://otter.topsy.com/search.json?type=tweet&perpage=' + TWEETSPERPAGE + '&window=a&nohidden=0&[email protected]' + name + '&page=' + currentpage;
alert(BASE);
$.ajax({dataType: "json", url: BASE, success: gotTweets(data)});
}
while (currentpage<pagestoget);
}
});
};
function gotTweets(data)
{
window.responcesreceived = window.responcesreceived + 1;
var response = data.response;
alert(response.total);
window.holdtweetslist.Merge(response.list);
window.tweetsfound = window.tweetsfound + response.total;
if (window.responcesreceived == window.pagestoget) {
// sendforprocessingsendtweetlist();
alert(window.tweetsfound);
}
}
謝謝埃德加。我現在得到一個不同的錯誤。我想我仍然相當困惑之間的數組,和JSON對象等... ReferenceError:無法找到變量:ARRAY – 2011-04-28 08:17:37
不客氣。嗯..它是否直接說「ARRAY」? PS:如果你認爲它有用,請提高我的答案。謝謝 – 2011-04-28 08:22:21
我已經提出了答案,但實際上並沒有解決它。是的,這是我現在得到的錯誤消息。歡呼 – 2011-04-28 08:27:15