Analytics 애플리케이션을 구축 중입니다. 다른 소스에서 데이터를 가져 오는 동안 사용자가 30 초 동안 기다린 후 사용자에게 표시하기 전에 몇 가지 계산을 수행해야합니다.PHP가 백그라운드에서 데이터를 가져 오는 중
데이터를 가져 오는 동안 30 초 동안 페이지를로드하지 않고 백그라운드에서 데이터를 가져 오는 동안 사용자에게 대기중인 페이지를 표시 할 수있는 방법이 있습니까?
어떻게 할 수 있습니까?
Analytics 애플리케이션을 구축 중입니다. 다른 소스에서 데이터를 가져 오는 동안 사용자가 30 초 동안 기다린 후 사용자에게 표시하기 전에 몇 가지 계산을 수행해야합니다.PHP가 백그라운드에서 데이터를 가져 오는 중
데이터를 가져 오는 동안 30 초 동안 페이지를로드하지 않고 백그라운드에서 데이터를 가져 오는 동안 사용자에게 대기중인 페이지를 표시 할 수있는 방법이 있습니까?
어떻게 할 수 있습니까?
참고 : 라이트를 들어, 라이트 박스 JS
<script>
function onload_wating()
{
var syncronize_target=SITE_URL+'your_controllername/action_timer/';
$.lightbox(syncronize_target, {
width : 450,
height : 260,
'modal' : true,
'onOpen' : function() {
$(".jquery-lightbox-button-close").css({"visibility":"hidden","display":"none"});
}
});
}
onload_wating();
<script>
action_timer.ctp
주를 포함 할 필요가 : 카운트 다운를 들어, JQuery와 카운트 다운을 포함 할 필요가 ->http://keith-wood.name/countdown.html
<script>
$(function() {
$('#syncronize_header_timer').countdown(
{
until:+50,
format: 'MS',
onExpiry: ltliftOff
});
});
function ltliftOff() {
$.lightbox().close();
}
<script>
<div id="syncronize_header_timer" ></div>
==========================
위의 하중 _wating()이 함수는 lightbox를 열고 controller 액션을 url로 보내고 action_timer.ctp를 열어 action_timer.ctp를 엽니 다. 우리는 action_timer.ctp에 count30 timer를 사용합니다. 이 타이머는 50으로 계산되고 자동으로 닫힙니다.
이 50 초 사이에 데이터베이스에서 ur 데이터를 검색 할 수 있습니다.
한 가지 방법은 AJAX를 사용하여 HTTP GET 요청을 사용하여 서버의 페이지를 폴링하는 것입니다.
우리가 여기에 파일 업로드에 대해 이야기하지 않을 때문에이 세션이 APC_UPLOAD_PROGRESS보다 더 좋은 옵션이 될 수 있습니다
당신은 데이터베이스 또는 더 나은 APC
편집을 사용할 수 있습니다. 세션은 여기에 이상적이어야하는 사용자 저장소별로 제공되며 어쨌든 APC와 같은 다른 상점에서 지원할 수 있습니다.
예 내가 가져온 데이터 –
을 표시하기 전에 데이터베이스에 저장하는 데이터입니다. 많은 양의 트래픽이있는 경우 데이터베이스가 폴링 메커니즘을위한 백엔드를 배치하기 가장 좋은 장소가 아닐 수도 있습니다. APC는 웹 서버에 메모리 상주하므로 성능면에서 더 우수해야하지만, 부하가 적 으면 DB가 정상적으로 작동해야합니다. – quickshiftin
나는 그것을 조사 할 것이다. 이것은 공유 서버에서 작동하지 않습니까? –