2012-06-10 2 views
1

많은 아약스를 실행해야하는 번거 로움은 무엇입니까? 실행 시간이 다른 5 개 이상의 setInterval을 가지고 있는데, 아약스를 호출하여 html을 업데이트하거나 세션이 살아 있는지 확인합니다. 이거 좋은가요? 일부는 매 초마다 실행되고, 일부는 5 분마다 실행됩니다. 이것을하는 가장 좋은 방법은 무엇입니까.setInterval을 사용하여 일련의 아약스를 실행하는 것이 좋습니다. 5 개 이상의 아약스가 실행 중입니다.

+1

큰 질문은 '왜 그렇게 자주 그렇게 많이 운영해야합니까?'입니다. – phirschybar

+1

일반적으로 ajax 호출은 URL 출력 만 읽으므로 꽤 가볍습니다. 그건 제쳐두고 : 나는 매초마다 실행하는 것을 권장하지 않을 것이다. 곧 대역폭을 먹는 것을 시작하게 될 것이고, 특히 대용량 사이트에서 많은 사람들이 매초 요청을 해고하는 것을 볼 것이다. – Dale

+0

@phirschybar CI 및 네이티브 세션이 살아있을 경우 (CI가 IE에서 많이 죽는 경향이 있음), # 2 새 노트를 사용할 수있는 경우 .html()로 목록 업데이트, # 3 다른 목록을 다른 목록으로 업데이트 데이터, 새 이메일/메시지가 오면 # 4 데이터베이스 검사. –

답변

1

필자는 개인적으로 그런 접근 방식을 벗어나서 밀어 넣기 대안을 조사하거나 모든 아약스 요청을 하나로 결합합니다. 이것은 트래픽이 많은 사이트 인 경우 서버가 손상 될 수 있습니다. 또한 전화 접속 또는 모바일 장치를 사용하는 사람의 경우 이는 클라이언트의 연결을 파괴 할 가능성이 높습니다.

프로젝트에 대해 아무것도 모르기 때문에 푸시가 작동하는지 알지 못합니다. 새 데이터를 사용할 수있을 때 실행되는 트리거가 있으면 pubnub.com을 확인하고 푸시를 조사합니다.

실행 가능한 솔루션이 아닌 경우 스크립트에서 필요한 모든 정보를 모두 한 요청으로 처리하는 것이 좋습니다. 이렇게하면 서버 부담이 줄어 듭니다.

행운을 빈다.

1

가장 좋은 방법은 모든 것을 수행하는 하나의 Ajax 호출로 "실행 루프"를 만드는 것입니다. "실행 루프"에서 어떤 종류의 정보가 반환되어야하는지 확인하고 Ajax 호출을 한 다음 업데이트하십시오. 이렇게하면 대역폭 사용량에 도움이됩니다. 특히 한 달에 제한된 대역폭을 사용하는 경우에 유용합니다.

+0

별도의 통화를했을 때보 다 대역폭면에서 어떤 차이가 있습니까? 같은 양의 데이터가 전송되고 있습니까? – Jonathan

+0

사실, 헤더를 고려해야합니다;) 헤더와의 겹침을 줄여줍니다. – TylerH4

+0

아니요 ... 그들은 별도의 헤더가있는 별도의 호출입니다. 아니면 한 번에 모두 포함시켜야한다고 말하려고합니까? – Jonathan

관련 문제