누군가 나를 도울 수 있는지 궁금합니다. 데이터베이스에서 행을 에코 아웃하는 PHP 페이지가 있습니다. jquery/ajax를 통해 30 초마다 호출하고 싶습니다. 하지만 언제든지 페이지를 호출하여 양식을 통해 레코드를 추가하면 폼이 전송되면 즉시 결과를 업데이트하기 위해 아약스 호출을 통해 페이지를 원하게됩니다. 누구든지 올바른 방향으로 나를 가리키거나 몇 가지 기본 코드를 제공하여 이것을 알아낼 수 있습니까? 아직도 jquery/ajax에 대한 새로운 지식이 있습니다. 당신은 타이머에 뭔가를 설정하려면타이머가있는 Jquery/Ajax 호출
37
A
답변
67
, 당신은 자바 스크립트의 setTimeout
또는 setInterval
방법을 사용할 수 있습니다 expression
함수와 timeout
및 interval
입니다
setTimeout (expression, timeout);
setInterval (expression, interval);
밀리 초 단위의 정수입니다. setTimeout
은 타이머를 한 번 실행하고 expression
을 한 번 실행합니다. 반면에 setInterval은 interval
이 전달 될 때마다 expression
을 실행합니다.
setInterval(function() {
//call $.ajax here
}, 5000); //5 seconds
는 지금까지 아약스가 간다, jQuery의
ajax()
method를 참조하십시오. 간격을 실행하면 코드의 다른 위치에서 동일한
ajax()
을 호출하는 것을 막을 수있는 아무 것도 없습니다.
응답 해 주셔서 감사합니다. 그래서 위의 코드를 사용하여 위의 코드를 사용하여 매 5 초마다 Ajax 호출을 새로 고친 다음 동일한 페이지에서 누군가가 양식을 채우고 제출하면 레코드를 추가하면 동일한 setInterval 함수를 호출 할 수 있습니다. 한 번에 그 기능의 인스턴스 2 개를 실행하고 있습니까? – John
그래서 사용자가 양식 제출을 시작하고 그 다음에 새 간격을 만들 때까지 간격이 30 초마다 실행됩니다. 그것은 또한 가능합니다. 'setInterval()'은 간격의 ID 인 정수를 반환합니다. 그 ID를 변수에 저장하면,'clearInterval (id)'를 호출하여 진행을 멈출 수 있습니다. 그런 다음 ajax 양식 제출을 완료 한 후에'setInterval()'호출을 다시 인스턴스화 할 수 있습니다. – treeface