2011-07-26 5 views
0

우리는 몇 가지 영업 팀을 운영하고 있습니다. 이 판매 팀에게는 리더 보드가 있습니다. 그들 중 한 명이 판매 할 때마다 2 분마다 페이지를 새로 고치고 차이점을 확인하는 브라우저를 통해 스피커폰으로 소리가납니다. 일단 차이가 나면 팀의 소리가납니다. 나는()를 제거함으로써, 함수 기준점했습니다 것을자바 스크립트로 브라우저에서 지연된 사운드 재생

setTimeout(sounds[team_id].play(), delayTime); 

내가 생각 아웃 : I는 같은 함수를 호출하는 것 때문에

이전에 소리가 함께 음표를 잇대어 연주한다. 그 경우에 나는 그 참조 점에 논쟁을 보낼 방법이 없을 것 같았다.

나중에 브라우저 결함과 우연히 돌연변이가 생겨서 토끼 구멍을 무너 뜨리고, 나는 일을하는 방식에 지쳤습니다. 나는 이것이 최적이라고 생각하지 않는다.

SetTimeout을 준수 할 필요가없는 모든 위치에서 사운드 파일을 재생하는 좋은 방법이 필요합니다 (아니요, 연결 안함). jQuery의 delay() 함수와 관련이있다.

답변

1

jQuery의 지연 기능은 다른 라이브러리에서 제공하는 다른 지연 또는 시간 기반 기능과 마찬가지로 setTimeout을 기반으로합니다. 당신은 문제가 발생하는 이유는보고 있지 않다

- 폐쇄 상황을 처리 할 수 ​​있어야합니다 당신은 설명 :

setTimeout(function() { 
    sounds[team_id].play() 
}, delayTime); 

team_id 당신이 연주하고 싶은 소리의 팀의 ID라고 가정 team_idsetTimeout이라는 범위에서 사용할 수 있습니다. 컨텍스트에서 전체 코드를 보지 않고도 잠재적 인 문제를 정확히 찾아내는 것은 어렵습니다.

+0

나는 하드 코딩 된 방법을 사용하는 다양한 진절머리 나는 해결 방법을 통해서만 사운드가 브라우저로 받아 들여지고 있음을 확인했다. (물론, 나는 브라우저에서들을 수 없었다.) 문제는 주로 각 세일즈맨이 자신의 사운드를 가질 수있는 능력을 추가 할 것이라는 점에있다. 나는 그것을 하드 코딩하지 않았다. 또한 play()를 수행하면 참조 함수가 필요하기 때문에 소리가 모두 함께 재생됩니다. –

+0

"참조 기능"이 무슨 의미인지 모르겠습니다. 더 많은 코드를 게시 할 수 있습니까? 특히'sounds'와'team_id'가 정의 된 부분은 무엇입니까? –