繁体   English   中英

如何使用JavaScript编写正在进行的流程?

[英]How do I write an ongoing process in javascript?

假设我有一个数组,用户可以一次从一个网站输入数据。 因此,该阵列一次只能增长一个。 我想要一个正在进行的过程,该过程将获取数组的长度,如果它为正数,则打印并拼接数据,然后设置setTimeout(1000),然后继续运行。 因此,如果数组没有任何内容,则什么也不做,并且每当将某些内容放入数组中时,由于数组是非空的,因此必须要执行某些操作。

那么我该怎么做呢?

抱歉,如果解释令人困惑...

我尝试使用while(true),但是那只会消耗内存,所以我不确定还有什么要做的(线程?)。 请帮助。 谢谢!

我不是在寻找事件监听器。 我想存储数据并每隔一段时间发布一次。 事件监听器填充了数组,但是我知道如何做到这一点。 我不知道循环将如何执行。

那一些事件处理程序呢? 如果我正确理解了您的问题,那么您就不需要正在进行的流程。 您想使用事件处理程序对用户输入做出反应。

Google在其异步Analytics(分析)脚本中使用了智能数组推送机制:

  var _gaq = _gaq || [];
  _gaq.push(['_setAccount', 'xxx-yyy-zzz']);
  _gaq.push(['_trackPageview']);

这将创建一个空队列数组,或者如果尚未处理以前的数据,则使用现有的队列数组。

主脚本http://www.google-analytics.com/ga.js包含一个setTimeout循环,该循环检查队列数组是否包含数据,如果包含,则进行处理。

您可以使用类似的机制:只需检查队列中的新元素,进行处理,然后在完成后清除队列数组。

可以使用setTimeout和全局数组来实现所需的功能,也可以采用现代方式。

德里克! 认识JavaScript jQuery事件对象 这是它时代最好的! 庄稼的奶油! 人类成就的奇迹! 它会帮助您制作一个Web应用程序。

这是一个教程 并概述了您可能想要的东西:

$(document).ready(function() {
   $('input[text]').change(function() {
     alert($(this).attr('value'));
   });
 });

还是像这样的递归计时器?

var z=[ 'Mazda',
        'Totyota',
        'Honda',
         'Suzuki'
      ];

var job = function()
{
   document.write(z.pop());
   setTimeout(job, 1000); // run every second
}();

好的, for循环将为您提供帮助(您的数组存储在window.yourArray ):

for (var i=0; i < window.yourArray.length; i++){
    alert(window.yourArray[i]);
}

或更简单:

for (a in window.yourArray){
    alert(a);
}

这些循环比while(true)循环要好得多,因为它们的寿命有限(基于数组中元素的数量)。 您应该使用setTimeout定期运行这些循环之一。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM