簡體   English   中英

每x秒生成一個隨機數並顯示出來

[英]Generate random number every x seconds and display it

在我的應用程序中,我有一種始終顯示的底部欄,其中有一個帶有 h1 的 div 和一個按鈕。 每次我點擊我編碼的按鈕和動畫時,都會用隨機數更改 h1 的文本。 到這里一切正常。

我的目標是在不按下按鈕的情況下制作這個東西,而是在所有應用程序執行期間每隔 x 秒。 我嘗試使用“setInterval(func, ms);” 我沒有收到任何錯誤,但它只是做了一次。

我認為我的錯誤是“放在哪里”代碼。 我不明白這個。 所以,我試圖將代碼放在我的按鈕的事件處理程序上,只是為了看看它是否有效,但它還是做了一次。 我需要這個函數在用戶做其他事情時繼續執行......就像應用程序中的時鍾:它應該在你做其他事情時連續工作。

我的功能代碼:

function fraseCasuale(sel) {
    var i = 1 + Math.floor(Math.random() * (groupedItems.length-1));
    var oggetto = groupedItems.getAt(i);

    if (sel === 1) {
        document.getElementById("frasecasuale").textContent = oggetto.frase;
        document.getElementById("autore").textContent = oggetto.nome;
        document.getElementById("genere").textContent = oggetto.genere;
    } else {
        document.getElementById("frasecasuale2").textContent = oggetto.frase;
        document.getElementById("autore2").textContent = oggetto.nome;
        document.getElementById("genere2").textContent = oggetto.genere;
    }
}

然后我怎么稱呼它,例如:

setInterval(fraseCasuale(1), 5000);

我的應用程序基於 Visual Studio 2012 for Windows Store aps 的網格模板。 我將上面所說的欄添加到“default.html”中,它是其他頁面的容器。

您確定這樣的東西行不通嗎?

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

var ms = 2000;
var func = function () {
    var randNum = getRandomInt(1, 253);    // Gets random number between 1 and 253
    document.getElementById("element_id").innerHTML = randNum;
};

setInterval(func, ms);

http://jsfiddle.net/FQSAH/1/

這應該工作...

var id = window.setInterval(function(){randomNumber()},1000);

function randomNumber()
{
  var rand = Math.floor(Math.random()*6)
  //Do whatever you want with that number
}

快速JSBin: http : //jsbin.com/egajog/1/

代碼中的問題是您沒有將函數傳遞給setInterval,而是將函數調用fraseCasuale(1)的一次結果傳遞給了,因此該函數的結果就是傳遞給setInterval的結果。

由於要向其傳遞參數,因此setTimeout允許您在函數指針和超時間隔之后指定參數,例如:


setInterval(fraseCasuale,5000,1);

如果您在定義的“頁面”中執行此操作,則可以在home.js中執行類似的操作


    WinJS.UI.Pages.define("/pages/home/home.html", {
        // This function is called whenever a user navigates to this page. It
        // populates the page elements with the app's data.
        ready: function (element, options) {
            setInterval(this.fraseCasuale, 1000, 656);
        },

        fraseCasuale: function (sel) {
            console.log(sel);
            var i = 1 + Math.floor(Math.random() * (4 - 1));
            var element = document.getElementById("updateMe");
            element.textContent = i;
        }
    });

或者,如果僅使用default.js,則可以將代碼放到app.ready中,例如ex上方。 app.oncheckpoint(順序在任何函數的上方或下方實際上並不重要,只是提供一個顯示示例的位置)

因此在default.js中:


  app.onready = function (args) {
        //1 is a placeholder for your parameter
        setInterval(fraseCasuale,5000,1);
    };

我在哪里可以找到這個應用程序,我對編碼一無所知,我只想要這個應用程序

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM