Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/395.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 JS-延迟脚本的执行,直到所有数据都已定义/可用_Javascript_Web Analytics_Data Layers - Fatal编程技术网

Javascript JS-延迟脚本的执行,直到所有数据都已定义/可用

Javascript JS-延迟脚本的执行,直到所有数据都已定义/可用,javascript,web-analytics,data-layers,Javascript,Web Analytics,Data Layers,我有一个脚本,它使用来自数据层的数据。如果我太早启动脚本,它将无法工作,因为数据(我在脚本中提到)尚未定义。因此我延迟了脚本(1500毫秒)。问题是脚本应该尽早运行。有时数据(来自数据层)可用得更快,有时更晚 因此,我希望在500毫秒后运行脚本,而不是总是将脚本延迟1500毫秒。如果由于数据/属性尚未定义/可用而无法运行脚本,我希望在另一个500毫秒后再次运行脚本。。。。等等 我该怎么做呢 谢谢 然而,这种方法很少是最好的方法。根据数据可用的方式,最好使用回调/承诺或事件侦听器 例如,使用jQu

我有一个脚本,它使用来自数据层的数据。如果我太早启动脚本,它将无法工作,因为数据(我在脚本中提到)尚未定义。因此我延迟了脚本(1500毫秒)。问题是脚本应该尽早运行。有时数据(来自数据层)可用得更快,有时更晚

因此,我希望在500毫秒后运行脚本,而不是总是将脚本延迟1500毫秒。如果由于数据/属性尚未定义/可用而无法运行脚本,我希望在另一个500毫秒后再次运行脚本。。。。等等

我该怎么做呢

谢谢

然而,这种方法很少是最好的方法。根据数据可用的方式,最好使用回调/承诺或事件侦听器

例如,使用jQuery获取一些数据,然后在回调中作出反应

$.get('/some/data/uri', function(data){ /* do something with data */ });

“数据层”?如果您正在进行异步调用,那么在回调/promise/etc中执行您需要执行的任何操作?我们看不到你在干什么。半秒钟对于处理循环来说是相当长的时间,将其设置得更低并没有什么坏处。我记得以前的浏览器没有触发dom就绪事件,但看到onready实现时,会有9毫秒的间隔来测试dom是否已完成渲染。谢谢!非常有用的输入!它按预期工作。但是在控制台中,我得到了一个“UncaughtTypeError:CannotReadProperty…”在脚本运行和检查数据是否已定义期间,如何避免/禁用该错误。
$.get('/some/data/uri', function(data){ /* do something with data */ });