У меня есть следующий код внутри моего ASP.NET MVC веб-сайт: -сколько раз SetTimeout пожары
function loadImage(src, callback) {
var img = $('<img>').on('load', function() {
callback.call(img);
});
img.attr('src', src);
var allcaptions = $("figure span");
// setTimeout is a hack here, since the ".placeholders" don't exist yet
setTimeout(function() {
alert(1);
$(".placeholder").each(function (i) {
// in each .placeholder, copy its caption's mark-up into it (remove the img first)
var caption = allcaptions.eq(i).clone();
//caption.find("img").remove();
var t = caption.find("img").attr('data-goto');
// caption.append($("<a />", { "text": "test", "href": t }));
if (!(t == null || t == "undefined")) {
caption.append("<br/>");
caption.append("<a href='" + t + "' style='font-size:16px;font-weight:bold'>Read More</a>");
}
caption.find("img").remove();
$(this).append("<div class='caption'>" + caption.html() + "</div>");
});
}, 500);
alert(2)
}
теперь основан на моем понимании является то, что settimout будет срабатывает после 500 мс и будет вызывать функцию , но то, что происходит на самом деле выглядит следующим образом: -
, когда функция вызывается (при показе галереи изображений), я буду получать следующие предупреждения: -
2
1
2
2
1
1
так может кто-нибудь советы по этому вопросу, пожалуйста, как делает Работа setTimeout будет срабатывать только один раз или будет выполняться более одного раза? Конечно, я добавил оповещения, предназначенные только для тестирования ...
Благодаря
setTimeout просто выполните функцию один раз после N миллисекунды, которые вы определили .. Вероятно, ваше приложение многократно вызывает функцию loadImage ... –
Не отлаживайте предупреждения. Используйте консоль – epascarello
Если вы хотите снова и снова вызывать свою функцию через n секунд, используйте 'setInterval' – Rash