【问题标题】:JavaScript OOP and setInterval help needed需要 JavaScript OOP 和 setInterval 帮助
【发布时间】:2012-10-12 18:50:43
【问题描述】:

我正在编写一个网页,它每 4 秒将显示一条不同的消息。我已经构建了一个自定义对象,我打算从中提取信息以创建要显示的字符串。我正在使用一个类似于 Math.random 的函数,称为“rand”,它可以让我随机访问对象。我已将间隔设置为 4 秒。我可以显示要显示的字符串,但之后网页继续加载和加载并开始严重滞后,以至于我不得不退出。我正在使用的代码如下所示。请帮忙!

  var name = "Barack Obama";

  var Actions = {

    "ActionList" : [

        { "action" : "watches a 30 minute TV show",
          "time"   : 30,
          "time_measure" : "minute",
          "assuming" : "assuming he sat through the commercials too"
         },

        {
          "action" : "makes some pizza rolls",
          "time" : 9,
          "time_measure" : "minute",
          "assuming" : "he only made one plateful"
         },

        {
          "action" : "takes a 2 hour nap",
          "time" : 2,
          "time_measure" : "hour",
          "assuming" : "assuming he's a heavy sleeper"
         },

        {
          "action" : "1000 jumping jacks",
          "time" : 1,
          "time_measure" : "hour",
          "assuming" : "he doesn't take a break, or slow down"
         }
    ]

  };

  function rand(min, max) {
    return Math.floor(Math.random() * (max - min + 1)) + min;
  }
  function run() {

    /**
     * RANDOMLY SELECT OBJECTS
    ***/
    var r = rand(0, 3);

    var x = Actions.ActionList[r]["action"];

    document.write( x );

  }



  setInterval(run, 4000);

【问题讨论】:

    标签: javascript oop timer


    【解决方案1】:

    http://jsfiddle.net/aHrpC/2/

    这个 JSFiddle 有一个工作示例。它与 document.write 有关。代码中的其他所有内容都正常工作。

    【讨论】:

      【解决方案2】:

      页面加载后不能使用 document.write。它会破坏当前页面。

      您应该使用 DOM 方法,例如 appendChild() 或 innerHTML。

      【讨论】:

      • 听取了您的建议,但在编辑代码后,我没有从代码中得到任何输出。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-10-15
      • 2011-09-15
      • 1970-01-01
      • 2017-10-05
      • 2021-05-16
      • 1970-01-01
      • 2012-05-23
      相关资源
      最近更新 更多