0

私は得た

render :text => "Some text"

私が本当に必要としているのはこのようなものです

render :text => "Some text", :duration => 5000

「一部のテキスト」は短時間レンダリングされた後、消えます。

それが不可能な場合:alert、同じものにタグを使用できますか?正確にはどのくらいですか?

4

1 に答える 1

2

ステートレスな HTTP を使用していることを考慮する必要があります。これは、クライアントとサーバーの間に接続がないことを意味します。それは常に次のとおりです。

  • クライアント: こんにちはサーバー、お願いしますhttp://.../someResource
  • サーバー: こちらです

クライアントがリソースを要求するたびに、サーバーは以前にそこにいたことを思い出せません (少なくとも単純な厳密な HTTP では)。その後、人々が登場し、セッションと Cookie が発明されましたが、それは別の話です。

私が言いたかったこと: サーバーは要求されたリソースしか送信できず、これが完了した後、クライアントが存在し、何かを要求したことを知りません。

動的動作の選択肢は 1 つだけです: JavaScript (CSS3 以降では、5000 ミリ秒後に一部の div を非表示にするアニメーションをトリガーすることも可能です)。

ここで、次のことを考慮する必要があります。

  • クライアント自体が警告ボックスを非表示にする必要がありますか? (これは、jQuery を使用する最も一般的で最も簡単な方法です)
  • サーバーはクライアントに非表示にするように指示する必要がありますか? (上でそれは不可能だと言ったことは知っていますが、実際には、 (以前server pushは と呼ばれるライブラリに実装されている)と呼ばれるものを使用しています。しかし、それはサーバーからの実際のメッセージではなく、最初に取得するクライアントからの 2 番目の要求です。クライアントに送信するイベントがある場合にサーバーが応答します ( ))。注意: これには、クライアント側でも JavaScript が必要でした。atmospherecometlong-pooling

私はこう言います: 最初の解決策 ( jQuery) は Rails に既に組み込まれているため (少なくとも Rails 3.1 以降を使用している場合)

ここを見てください:一定期間後にdivを非表示にする方法は?

于 2013-02-27T13:48:59.793 に答える