Я создал собственный виджет для отображения данных в реальном времени на каждую минуту.Почему вызов Settimeout вызывается на каждые 1 секунду, где он должен вызываться каждые 1 минута.
Это мой код виджета, в котором я установить SetTimeout функцию
(function()
{
var jQuery;
if (window.jQuery === undefined)
{
var script_tag = document.createElement('script');
script_tag.setAttribute("type", "text/javascript");
script_tag.setAttribute("src", "https://code.jquery.com/jquery-2.1.4.js");
if (script_tag.readyState)
{
script_tag.onreadystatechange = function()
{ // For old versions of IE
if (this.readyState == 'complete' || this.readyState == 'loaded')
{
scriptLoadHandler();
}
};
}
else
{
script_tag.onload = scriptLoadHandler;
}
(document.getElementsByTagName("head")[0] || document.documentElement).appendChild(script_tag);
}
else
{
jQuery = window.jQuery;
worker();
}
function scriptLoadHandler()
{
jQuery = window.jQuery.noConflict(true);
worker();
}
function worker()
{
alert('worker called');
jQuery.ajax(
{
type: 'GET',
url: 'http://localhost:8080/RESTWEBAPP/rest/live',
jsonpCallback: 'jsonCallback',
cache: false,
dataType: 'jsonp',
jsonp: false,
timeout: 7000,
success: function(data)
{
jQuery('.mysite-widget').append(data.price)
},
error: function(x, t, m)
{
if (t === "timeout")
{
alert("got timeout , please try again");
}
else
{
}
},
complete: function()
{
setTimeout(worker(), 60000);
}
});
}
})();
И это, как я поместить его вышеупомянутую виджет внутри моего HTML страницы
<!DOCTYPE html>
<html>
<body>
<script src='http://localhost:8080/RESTWEBAPP/widget.js' type='text/javascript'></script>
<div class='mysite-widget'></div>
</body>
</html>
вопрос я облицовкой функция работника выполняется каждую секунду.
Не могли бы вы, пожалуйста, дайте мне знать, как я могу решить эту проблему
Я не думаю, что авансовый голосование оправданным. На этом вопросе показана попытка, ожидаемое и фактическое поведение. Да, это был дубликат, но найти намного проще, если вы знаете, в чем проблема. http://meta.stackexchange.com/a/62824/178870 –