簡體   English   中英

可以在JavaScript中完成同步輸入嗎?

[英]Can a synchronous input be done in JavaScript?

我對將JavaScript用作學生的入門語言的可能性很感興趣。 對我來說,缺少的部分是能夠提供與其他語言中可用的input()命令等效的阻塞功能。

使用僅限控制台的JavaScript版本(例如SpiderMonkey )將是一個解決方案。 SpiderMonkey具有readline()命令。 但是我認為學生會對Web瀏覽器中運行的代碼更感興趣。 如果學生可以與朋友分享他們經典的“猜數字介於1到10之間”游戲的版本,那就太好了。

JavaScript window.prompt()命令也可以使用,但是它彈出一個完全獨立的窗口的事實並不理想。 我想要一個以相同方式工作的文檔內輸入字段。 有這樣的解決方案嗎?

唯一的prompt()是阻塞輸入法。 我不完全知道為什么需要使其阻塞,但是也許您可以使用jQuery阻塞插件來實現阻塞(至少是UI)?

我認為您不會找到一種很好的方法來做到這一點,而且我不確定您應該嘗試一下。 我認為這是編程中非常基礎的課程,您希望學生獲得可以完成某件事的感覺。 在那種情況下,我將為他們提供html代碼,其中包含輸入字段,按鈕和已經掛接到函數的onclick處理程序。

學生將很快學會添加輸入字段和按鈕。 僅僅因為您和我學會了在純文本環境中編程,並不意味着今天的學生應該這樣做。

您使用輸入文本和按鈕。 當按下按鈕時,獲取並處理文本,並清潔輸入文本以用於新用途。

另外,您可以考慮使用http://jsfiddle.net/

在網絡瀏覽器中,可以使用prompt 它是非常老式的(例如alert ),並且(幾乎完全是)同步運行。 所以:

var str;
str = prompt("Enter some text: ", "");
console.log("You entered '" + str + "'");
str = prompt("Enter some more text: ", "");
console.log("You entered '" + str + "'");

現場示例 | 現場直播

相反,盡管如此,我認為我可能建議讓學生習慣使用回調,並提供一些實用程序代碼(或僅使用一些預構建的東西)。 他們越早習慣它,就越好,而且沒有那么復雜。 例如,上述的異步版本可以很容易地成為:

asynchronousPrompt("Enter some text: ", "", function(text) {
    console.log("You entered '" + text + "'");
    asynchronousPrompt("Enter some more text: ", "", function(text) {
        console.log("You entered '" + text + "'");
    });
});

JavaScript中的同步執行為使用JavaScript執行同步操作提供了不錯的編寫和示例代碼。

NodeJ將為您提供解決方案嗎? 它支持REPL afaik。 它還具有STDIO實現

暫無
暫無

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

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