0

コンソールに文字を出力するときにわずかな遅延を挿入する Ruby スクリプトがあります。Web ページで同じことをしたいのですが、デモ サイトからスクリプトを呼び出すと、すべてが一度に出力されます。スクリプトは次のとおりです。

def add_breath(text, pause)
    # print pause
    char_list = text.scan(/./)
    print "\n"
    # now iterate through the char list and print each char with a slight delay
    for char in char_list
        if char == " "   #or char == "?" or char == "!" or punctuation 
            sleep(0.02)
            print char
        elsif char == "," or char == "." or char == "!" or char == ":"
            sleep(0.22)
            print char
        elsif char == '@'
            sleep(pause)
        elsif char == char.downcase or char == char.upcase
            sleep(0.05)
            print char
        end
    end
    sleep(0.5)
    print "\n"
    #writes user input to file
    target = File.open("sleep.txt", 'w') 
    target.write(text)
    target.write("\n") 
    target.close()
end


text =  "Make your sentences breath like this -- @O@M@G@!@ -- with the 'at' character (on US keyboards, that's shift+2). Your turn:"
# text = "Well, give it a try:"
add_breath(text, 0.3) 

text = gets
puts "OK, now tell me how long each breath should be (try 0.3):"
pause = gets.to_f
add_breath(text, pause)

どんな助けでも大歓迎です!

4

1 に答える 1

3

Ruby on rails は、サーバーからブラウザーに送信される HTML をレンダリングします。したがって、使用しているスリープ メソッドは、サーバーがページのレンダリングを完了するのを遅らせるだけです。

ブラウザでこれが必要な場合は、javascript を使用する必要があります。

于 2013-09-13T12:20:47.970 に答える