Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在特定时间以毫秒为单位运行函数的脚本_Javascript_Html - Fatal编程技术网

Javascript 在特定时间以毫秒为单位运行函数的脚本

Javascript 在特定时间以毫秒为单位运行函数的脚本,javascript,html,Javascript,Html,我有下面的代码,如何在21:36:00:500(500是毫秒)运行它 var now=newdate(); var millistal1=新日期(now.getFullYear(),now.getMonth(),now.getDate(),23,45,30500)-现在; 如果(毫秒数1

我有下面的代码,如何在21:36:00:500(500是毫秒)运行它

var now=newdate();
var millistal1=新日期(now.getFullYear(),now.getMonth(),now.getDate(),23,45,30500)-现在;
如果(毫秒数1<0){
millisTill1+=86400000;
}
setTimeout(函数(){
检查()
},毫升1);

设置超时无法执行此操作。setTimeout函数要求以毫秒为单位传递第二个参数(在示例中称为millisTill1)

大多数浏览器的底部阈值为10毫秒,这意味着不能低于10000微秒或0.01秒

虽然JS不适用于此,但最常见的任务可能会使用setInterval,它会让您到达需要的位置,如下所示:

(setInterval(function() {
  var currentTime = new Date();
  if (
    currentTime.getHours() === 1 &&
    currentTime.getMinutes() === 38 &&
    currentTime.getSeconds() === 0 &&
    currentTime.getMilliseconds() === 500
  ) {
    // your code
  }
}, 500))();
这一个将在每次轮询时间间隔经过时检查时间。最常见的情况是1分钟(60000)。您可以降低成本,但可能会出现性能问题。不要忘记在客户端上运行javascript。如果使用setTimeout,则只会检查一次超时时间,脚本将停止


如果您需要执行某些操作,最好将Windows上的Task scheduler或OSX上的Automator等系统调度器与bash或python等脚本语言结合使用。

setTimeout无法执行此操作。setTimeout函数要求以毫秒为单位传递第二个参数(在示例中称为millisTill1)

大多数浏览器的底部阈值为10毫秒,这意味着不能低于10000微秒或0.01秒

虽然JS不适用于此,但最常见的任务可能会使用setInterval,它会让您到达需要的位置,如下所示:

(setInterval(function() {
  var currentTime = new Date();
  if (
    currentTime.getHours() === 1 &&
    currentTime.getMinutes() === 38 &&
    currentTime.getSeconds() === 0 &&
    currentTime.getMilliseconds() === 500
  ) {
    // your code
  }
}, 500))();
这一个将在每次轮询时间间隔经过时检查时间。最常见的情况是1分钟(60000)。您可以降低成本,但可能会出现性能问题。不要忘记在客户端上运行javascript。如果使用setTimeout,则只会检查一次超时时间,脚本将停止


如果您需要执行某些操作,最好将Windows上的Task scheduler或OSX上的Automator等系统调度器与bash或python等脚本语言结合使用。

我已经测试了这段代码的1分钟计时器执行时间,它可以正常工作。而且它只是增加了执行一次的时间限制。请仔细考虑这个代码。

tDate=新日期();
tDate.设定小时数(21);
tDate.setMinutes(36);
t日期设置秒(0);
tDate.setms(500);
tMillis=tDate—新日期();
如果(t毫米<0)
tMillis=tMillis+24*60*60*1000;//如果时间大于21:36:00:500,只需添加24小时,因为它将在第二天执行
setTimeout(函数(){
log('Execute');

},tMillis)
我已经测试了这段代码1分钟的计时器执行时间,它可以正常工作。而且它只是增加了执行一次的时间限制。请仔细考虑这个代码。

tDate=新日期();
tDate.设定小时数(21);
tDate.setMinutes(36);
t日期设置秒(0);
tDate.setms(500);
tMillis=tDate—新日期();
如果(t毫米<0)
tMillis=tMillis+24*60*60*1000;//如果时间大于21:36:00:500,只需添加24小时,因为它将在第二天执行
setTimeout(函数(){
log('Execute');


},tMillis)
HTML5之后
setTimeout
可用的最低值为4ms。您的超时不能低于该阈值。您能用declare微秒向我显示代码吗?您想要毫秒还是微秒?您的时间戳“21:36:00:50”是500毫秒(尾随的0被截断)。我想要500毫秒,对不起,错误的信息,您试图实现的是什么?也许解决方案不需要这种精度。例如如果代码延迟500毫秒,它将如何影响您的代码或体验?HTML5之后
setTimeout
的最低可用值为4毫秒。您的超时不能低于该阈值。您能用declare微秒向我显示代码吗?您想要毫秒还是微秒?您的时间戳“21:36:00:50”是500毫秒(尾随的0被截断)。我想要500毫秒,对不起,错误的信息,您试图实现的是什么?也许解决方案不需要这种精度。例如如果代码延迟500毫秒,它将如何影响您的代码或体验?我想要500毫秒,抱歉提供了错误信息。我在第11行得到错误:未捕获的SyntaxError:意外标记)修复它,现在:未捕获的TypeError:setInterval(…)不是一个函数:11:8您到底在哪里尝试使用它?这在浏览器中应该可以正常工作。在站点浏览器中:(我需要500毫秒,抱歉信息错误。我在第11行得到错误:未捕获的语法错误:意外标记)修复它,现在:未捕获的TypeError:setInterval(…)不是一个函数:11:8你到底在哪里尝试使用它?这在浏览器中应该可以正常工作。在网站浏览器中:(