timeOut
을 사용하여 15 초마다 DIV
을 자동 새로 고치는 사이트를 만들었습니다. 이 방법은 상당히 효과적이지만 DIV
이 실제로 업데이트되기까지 최대 5 분이 걸릴 수 있습니다. 즉, 스크립트가 변경되기 전에 번 20 번 번을 호출 함을 의미합니다. 값 비싼 대역폭과 서버 성능의 꽤 좋은 낭비 :setTimeout에서 이동 AJAX에서 긴 폴링을 호출하여 시간 초과
나는 그 대신에 Long Polling
을하는 것에 대해 많이 읽고 있었고, 나는 그것을 계속 해왔다.
내 AJAX 호출했다 :
intval = window.setTimeout(function() {
$.ajax({
type: 'GET',
cache: false,
url: 'url',
beforeSend: function() { $('#timerimg').attr('src', 'img/icons/loading.gif'); },
success: function(data) { $('#ajaxcontent').html(data); },
complete: function() { $('#timerimg').attr('src', 'img/icons/stop.gif'); }
});
}, 15000);
이 기능은 반복 유지되는 시간 종료 기능을 한 모든 시간을, 갱신되는 페이지 내부에 배치되었다.
지금 내가hi.txt
하고 지속적으로 완료 한 후
Hello World!
쓰기 제작에 URL을 설정하고 새로운 설문 조사를하고있는 중이 야 경우 간단한 롱 폴링 기능을
(function poll() {
$.ajax({
type: 'GET',
cache: false,
url: 'url',
success: function(data) { $('#ajaxcontent').html(data); },
complete: poll,
timeout: 30000
});
})();
을 만들 수 http://techoctave.com/c7/posts/60-simple-long-polling-example-with-javascript-and-jquery을 따르도록 노력했다. 분명히 많은 동시 투표를 의미합니다.
어떻게 수정합니까?
AND :
, 자동 새로 고침 DIV
거대한 SQL-Server
쿼리의 계산에 큰 차트이다. 그래서 어쩌면 그냥 SQL 쿼리 후 .getRows()
(원래에 비해)에 약간의 변화가 있었는지 확인해야합니까?
저는 jQuery와 ASP-Classic에서 모든 것을하고 있습니다.
내 자체 랙 서버가 매우 큰 백본 인터넷 연결에 배치되어 있으므로 동시 연결 제한이 문제가 될 것이라고 생각하지 않습니다. 현재 문제는 화면이 데이터베이스가있을 때 즉시 업데이트되지 않는다는 것입니다. 인터넷에서 여러 블로그를 읽었습니다. 호출 된 .asp 파일에서 SQL 쿼리를 수행하면 데이터베이스에서 원래 데이터를 가져오고 그런 다음 데이터가 변경 될 때까지 반복해서 동일한 데이터를 반복해서 가져 오는 루프를 수행 한 다음 새 데이터를 브라우저로 다시 보냅니다 ... 그러나 이것은 엄청난 양의 대역폭을 생성합니까? – Behrens
데이터베이스 백엔드와 관련하여 데이터가 업데이트 될 때마다 타임 스탬프가 있어야하거나 DBA에게 제공해야합니다. 타임 스탬프를 사용하면 마지막 타임 스탬프를 확인할 수 있습니다. 마지막 설문 조사보다 크면 THEN은 더 큰 쿼리를 한 번 가져옵니다. 당길 때마다 새로운 시간대로 설문 조사를 업데이트하십시오. 또한 긴 설문 조사가 데이터베이스를 망치고 있으면 안됩니다. 잠시 동안 또는 응답성에 대한 유스 케이스가 무엇인지간에 잠자 게하십시오. –
그래서 가장 좋은 방법은 데이터베이스의 각 행에 "마지막으로 수정 된"타임 스탬프를 추가하고 요청의 타임 스탬프를 보류하도록 내림차순으로 상위 1 개의 타임 스탬프를 선택하는 것입니다. 현재 풀에서 더 큰 것이 있으면 데이터베이스에서 모두 선택하고, 수학을 수행하고, 사용자에게 푸시 .. 그것은 매 2 초마다 DB로부터 풀이 될 것입니다. 그러나 돈 문제가 아닌 내부 trafik입니다. 그래서 좋은 해결책이 될 수 있습니까? – Behrens