2013-02-27 3 views
0

짧은 기간 동안 기능 렌더링 뭔가 내가 정말 필요한 것은이레일 '렌더링'나는</p> <pre><code>render :text => "Some text" </code></pre> <p>있어

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

은 "일부 텍스트는"짧은 기간 동안 렌더링 할 것 같은 것입니다 시간이 지나면 사라질 것입니다.

가능하지 않은 경우 동일한 태그에 :alert 태그를 사용할 수 있습니까?

+3

... 이것은 클라이언트 측에서 JavaScript를 통해 처리해야합니다. 그러나 일반 레일스 메커니즘을 통해 JS를 생성 할 수 있습니다. –

답변

2

HTTP를 사용하고 있다고 간주해야합니다. HTTP는 비 상태 정보입니다. 즉, 클라이언트와 서버간에 연결이 없습니다. 항상 그냥 :

  • 클라이언트 : 안녕하세요 서버가, 나에게 http://.../someResource
  • 서버를 적어주세요 : 여기

클라이언트가 서버가 그 전에 있었다는 것을 기억할 수없는 자원을 요청 때마다입니다 (적어도 엄격한 HTTP에서는). 그런 다음 사람들과 함께 세션과 쿠키를 만들었지 만 그것은 다른 이야기입니다.

내가 원했던 것 : 서버는 요청 된 리소스 만 보낼 수 있으며이 작업이 끝난 후에는 클라이언트가 있었는지 알지 못하고 뭔가를 요청했습니다.

동적 동작에 대한 선택 항목이 하나뿐입니다 (JavaScript는 CSS3 이후로 5000ms 후에 일부 div를 숨기는 애니메이션을 트리거 할 수도 있음).

  • 클라이언트 자체가 경고 상자를 숨기해야 :

    지금 당신은 고려해야한다? (jQuery를 사용하는 가장 일반적인 가장 쉬운 방법)

  • 서버가 클라이언트에게 숨기도록 지시해야합니까? (나는 위와 같이 불가능하다고 말한 것을 알고 있지만 atmosphere (이전의 경우 comet) 라이브러리에 구현 된 server push이라는 것을 사용하고 있습니다.하지만 서버로부터의 실제 메시지는 아니며 클라이언트의 두 번째 요청입니다 클라이언트에 보낼 이벤트가있을 때 서버가 먼저 응답합니다 (long-pooling). 알림 : 클라이언트 쪽에서도 JavaScript가 필요합니다.

내가 말하고 싶지만 : 이미 레일에 내장 원인

(위 레일 3.1에있다 적어도 경우) '첫 번째 솔루션 (jQuery)를 이동 여기 좀 유무 : How to hide a div after some time period?

관련 문제