Я использую jQuery, но Моя проблема в том, что моя переменная страницы увеличивается несколько раз, даже когда я использую "page + = 1" в функции обратного вызова .ajaxStop, потому что она выполняется более одного раза после первого использования. Я использую эту переменную как параметр, передаваемый в Flickr API, чтобы получить определенную страницу данных.
Происходит то, что при первом вызове этой функции функция обратного вызова выполняется один раз. Затем я вызываю ту же функцию с помощью кнопки «Дополнительно», чтобы получить следующий набор результатов, но в этот раз функция вызывается дважды, в следующий раз она вызывается трижды и так далее ... Это означает, что я могу получить страницу 1, 2, 4, 7, 11 и т. Д.
Функции AJAX, которые я вызываю, - это в основном функция .getJSON и некоторые дополнительные функции .getJSON, вызываемые в его методе обратного вызова [внутри getPhotos (id)]
// This gets the user ID from a given Flickr user page URL and does some presentation stuff
function getUserID() {
$("#moreRow").hide(350);
var usr = document.getElementById('user').value
var Req_addr = 'http://api.flickr.com/services/rest/?method=flickr.urls.lookupUser&api_key=' + API_key + '&url=http%3A%2F%2Fflickr.com%2Fphotos%2F' + usr + json
$.getJSON(Req_addr, function(data) {
// Once the user is known, data about its photos is requested
getPhotos(data.user.id)
});
// This hides the user data panel
$("#userInfo").hide(0);
// This hides the settings panel
$("#settings").hide(0, function() {
$("#loader").slideDown(750);
});
// This is what displays the photos when all of the AJAX requests have received their responses (ajaxStop)
$("#photos").ajaxStop(function() {
// the page counter is incremented for the next page to be requested next time
page += 1
// Add the data for the newly obtained photos to the table
addPhotosToTable()
});
}
Любые намек относительно того, что я делаю не так?
Вы можете увидеть весь исходный код здесь: http://luisargote.com/flickr/javascript/argote_flickr.js