我做了一個自定義小部件來顯示每分鐘的實時數據。爲什麼每隔1秒就要調用一次Settimeout,因爲每隔1分鐘就要調用Settimeout
這是我的小部件的代碼中,我設定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 –