2010-11-21 2 views
1

과거에는 이벤트를 다룰 때 5 분 타이머로 메타 새로 고침을 사용하여 페이지를 새로 고침하여 사람들이 최신 업데이트를 갖도록했습니다.페이지를 업데이트하기 위해 meta-refesh를 사용하는 것에 대한 대안

이것이 완벽한 방법이 아닐 수 있음을 깨닫습니다 (IE에서는 항상 작동하지 않고 사람의 흐름을 방해하거나 화면 판독기를 사용하는 사람들에게 물건을 다시 시작 함). 다른 방법이 있는지 궁금합니다. 이 상황을 처리해야합니다.

서버의 html 파일이 최신 버전이고 "새로 고침하기 위해 여기를 클릭하십시오."라는 메시지가 인쇄되면 몇 분마다 ajax 검사를 할 수 있습니까?

미친 경우 5 분에서 카운트 다운하고 새로 고침을 제안하는 자바 스크립트는 어떨까요?

튜토리얼이나 코드 스 니펫을 가르쳐 주시면 감사하겠습니다. 나는 프로그래머를 TV로 방영한다. :-)

+1

수동으로 서버의 html 파일을 업데이트합니까? – BGerrissen

+0

html 페이지는 대부분 시간이 너무 짧습니다. 사람들이 최신 버전을보고 있는지 확인하기 위해 꼭 필요한 것입니까? –

답변

0
setInterval(function() { 
    if (confirm("Its Been 5 Minutes. Would you like to refresh")) { 
    window.location.reload(true); 
    //Or instead of refreshing the page you could make an ajax call and determing if a newer page exists. IF one does then reload. 

    } 
}, 300000); 
+0

늦게 답변을 드려 죄송합니다. 감사와 즐거운 휴일. – Ian

1

실제로 시간을 재는 Ajax 테스트에 대한 생각은 훌륭한 아이디어입니다. StackOverflow가 사용하는 것과 정확히 일치하지는 않지만 정기적으로 다른 답변이 게시되었는지 확인하고 업데이트가 있으면 일정 간격으로 사용자를 표시합니다.

나는이 이러한 이유에 이상적입니다 생각 :

  • 그것은 눈에 거슬리지입니다 - 그들은 그것은 대역폭을 낭비하지 않습니다
  • 상관하지 않는 경우 독자가 쉽게 업데이트를 무시할 수 있습니다 - 사용자하지 않는 한 재로드를 를 선택하십시오
  • 유익한 - 사용자가 거기에 업데이 트를 알고 그것에 행동을 선택할 수 있습니다.

내 생각에 - 아약스 스크립트는 최신 스크립트를 확인하는 스크립트에 최신 게시 ID를 보냅니다. 이 스크립트는 데이터베이스에 쿼리하여 새로운 글이 있는지, 얼마나 많이 있는지 확인할 수 있습니다. 이 번호를 반환 할 수 있습니다. 새 게시물이있는 경우 업데이트 수가 포함 된 (모달이 아닌) 메시지를 표시하고 사용자가 그에 대한 작업을 결정하게하십시오.

+0

나는 변화가 없다면 대역폭을 낭비하지 않는다는 생각을 좋아한다. 게시물 ID 개념의 유일한 문제점은 정적 파일 또는 데이터베이스 중심 페이지 내에 자체 포함된다는 것입니다. 예 : example.com/stackoverflowawards/2010/winners. 이 페이지는 동일한 파일/db 항목의 새 콘텐츠로 업데이트되지만 각 업데이트마다 새로운 게시물이 아닙니다. – Ian

+0

클래스 또는 타임 스탬프 인 다른 메타 데이터로 언제든지 게시물에 플래그를 지정할 수 있습니다. 그런 다음 시간 소인을 파일/db 항목의 최종 갱신 시간 소인과 비교하십시오. 동일한 개념, 업데이트가 있는지를 결정하는 다른 방법. –

0

자바 스크립트에서 setInterval 함수를 사용할 수 있습니다.

여기

setInterval("refresh function", milliseconds, lang); 

당신은 실제로 처음 PARAM의 페이지와 두 번째 PARAM에 대한 새로 고침 (밀리 초) (5 분 300000)를 새로 고침 함수에 이름을 전달 그것을 사용하는 샘플입니다 . 세 번째 매개 변수 lang은 선택 사항입니다.

+0

.. 참고 SetTimeout은 한 번만 실행됩니다. setInterval은 계속 실행됩니다. –

+0

@ John Hartsock : oooops! 기억해 주셔서 감사합니다. 너가 확실히 맞아. 내 질문을 편집하려고합니다. 감사! – Lorenzo

0

사용자가 점수와 상호 작용하고 물건을 클릭하면 페이지를 새로 고치는 것 약간 무례 할 수 있습니다. 페이지가 업데이트되었다는 알림과 같은 일을하는 것이 이상적이라고 생각합니다.

jQuery를 사용하여 서버의 파일 또는 업데이트 된 데이터를 반환하는 파일에 대해 ajax 호출을 수행합니다. 으르렁 메시지를 던져보다가 새로운 있다면, 변경된 새로운 점수와 그 메시지에 옵션이 새로 고치고 새로운 결과를 볼 수 있었다 무엇 이건

Gritter - jQuery Growl System Demo of what a Growl is using Gritter

으르렁 메시지는 아마도 올 것이다.

jQuery Ajax information

관련 문제