我正在设计一个网站,我想每隔一段时间调用这个方法,我使用asp.net并且不知道关于javascript的任何事情但是我已经使用了这个代码(我得到了谷歌)并且它没有不行!!! 我把所有代码放在这里(它在webform.aspx中)!
<script >
$(document).ready(function(){
var interval=setInterval(time(),5000);}
</script>
<script runat="server">
// <![CDATA[
public void time()
{
DateTime date = DateTime.Now;
string hour = date.Hour.ToString();
string min = date.Minute.ToString();
string sec = date.Second.ToString();
time1.Value = hour + ":" + min + ":" + sec;
}
感谢帮助!
答案 0 :(得分:2)
由于以下原因,代码不起作用:
time()
调用中有time
而不是setInterval
,它将调用该函数并使用返回值作为回调,而不是将该函数用作回调。< / p>
您已将时间设置为五秒(5000毫秒)而不是一秒(1000毫秒)。
您缺少ready
来电的右括号。
该函数不是Javascript,而是C#。您无法直接从客户端脚本调用服务器代码。
要解决所有问题(假设页面中有一个标识为time1
的字段),它将是:
<script type="text/javascript">
$(document).ready(function(){
var interval = setInterval(time, 1000);
});
function time() {
var date = new Date();
var hour = date.getHours();
var min = date.getMinutes();
var sec = date.getSeconds();
$('#time1').val(hour + ":" + min + ":" + sec);
}
</script>
答案 1 :(得分:1)
您遇到语法错误问题,但未包含jquery。
我的示例基于您的代码但使用纯javascript:
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script>
$(document).ready(function(){
var interval=setInterval(time, 5000);
}); // ending ')' was missing
</script>
<script>
function time(){
var date = new Date();
alert("Hour is: " + date.getHours() + ":" + date.getMinutes() + ":" + date.getSeconds());
}
</script>
答案 2 :(得分:1)
好的,你在这里得到了很多不太好的答案。 (编辑:我设法错过了Guffa's answer,这非常好。但是当我提供更多细节时,我会留下这个答案。此外,这个答案不需要jQuery,显然OP不是[否则]使用。)
在JavaScript中,要重复调用函数,您可以使用setInterval
(将重复调用它)或setTimeout
(将调用它一次)并让函数调度下一个调用本身。在这两种情况下,您都希望为setInterval
/ setTimeout
提供功能参考。你不想给它一个字符串,你不想调用这个函数,这是其他答案所做的。所以:
<script>
(function() {
var elm = document.getElementById("id_of_element_you_want_to_contain_time");
setInterval(updateTime, 1000);
function updateTime() {
var now = new Date(),
hours = zeropad(now.getHours(), 2),
minutes = zeropad(now.getMinutes(), 2),
seconds = zeropad(now.getSeconds(), 2);
elm.innerHTML = hours + ":" + minutes + ":" + seconds;
}
function zeropad(str, width) {
str = String(str);
while (str.length < width) {
str = "0" + str;
}
return str;
}
})();
</script>
将该脚本放在元素下面<{1}},以便在第一行找到它时该元素存在。
现在,请注意,无论您使用id="id_of_element_you_want_to_contain_time"
还是一系列setInterval
来电,无论哪种方式,您提供的时间都只会大约完成。因此,如果你真的想每秒更新一次,那么如果你每秒都安排它,它会看起来有点不均匀。所以你可能会考虑每隔四分之一秒(250毫秒)做一次,因为你所做的并不是对浏览器造成远程负担。 Live Example | Source
答案 3 :(得分:-1)
您可以使用这样的原生JavaScript函数:
<script type="text/javascript">
// function like your server-side function
function time () {
var now = new Date();
console.log(now.getHours() + ':' + now.getMinutes() + ':' + now.getSeconds());
}
window.onload = function () {
setInterval(time, 1000)
};
</script>
但是你需要知道JavaScript的1秒实时与1秒不同。