2012-06-07 5 views
1

방금 ​​SSE를 사용하기 시작했고 어떻게하면 더 역동적으로 만들 수 있는지 궁금합니다.HTML5 → 동적 연결된 서버 보낸 이벤트

사용자를 선택하기 위해 상자를 사용하고 사용자 이름에 해당하는 이미지와 텍스트가 변경됩니다. 이제 SSE를 통해 사용자 업데이트를 확인하고 사용자가 계속 선택 가능하기를 원합니다.

function setSelected(elm) { 
    selectedName = elm.options[elm.selectedIndex].innerHTML; 

    var eSource = new EventSource("getState.php?passVar=" + selectedName); 
    eSource.onmessage = function(event) { 
     document.getElementById("stateText").innerHTML = event.data; 
    }; 
} 

가 어떻게 내 목표에 도달 할 수 있습니다 : 나는 <select> 상자를 변경있을 때

은 내가 eventSource을 추가하려고?

편집 는 지금 (I 소스 자체에 문제가 있었다) 성공적으로 eventSource을 추가했습니다.

그러나 이제 다른 소스를 추가 할 때 실제로 두 소스가 실행 중입니다. 이전 버전을 제거하려면 어떻게해야합니까?

+0

현재 접근 방식이 작동하지 않는 이유는 무엇입니까? – robertc

+0

이제 소스를 추가 할 수 있습니다. 그러나 나는 오래된 것을 제거 할 수 없다. ... –

답변

1

이전 이벤트 소스를 제거하려면 close() method을 사용하십시오. 이 작업을 수행하려면 약 eSource에 대한 참조를 유지해야합니다.

+0

나는'close()'를 이미 호출하려고 시도했으나, 메소드가 처음 호출 될 것이기 때문에 (eSource가 정의되지 않았을 때) 참조를 유지할 수 없었다. 이제 다음 코드로 작업하게되었습니다. if (typeof (eSource)! = "undefined") { eSource.close(); }' –