저는 JavaScript로 작업 중입니다. 사용자가 로그인 할 때 페이지를 다시로드하려고합니다. 사용자 데이터를 지속적으로 확인하기 위해 폴링합니다. 사용자가 로그인하지 않은 경우 코드는 내가 좋아하는 워크 플로우를 만들려고 노력하고있는 아래로컬 범위에서 전역 범위의 변수를 정의하십시오.
var check;
function poll(){
return $.ajax({
url: 'http://localhost:3000/poll',
type:'GET',
xhrFields: { withCredentials: true }
}).done(function(data){
console.log(data); // if user is logged in ,server sends the user object else it doesn't
if(typeof data.name !== "undefined"){
check = '1'; // Browser doesnt remember check was 1 after reload
window.location.reload();
} else
{
setTimeout(function(){ poll(); }, 5000);
}
});
}
if(typeof check == 'undefined'){ // Problem is here on reload, browser doesnt remember that i set `check = 1` in above condition.
setTimeout(function(){ poll(); }, 5000);
}
,
1), 폴링을 계속해야 찾을 수 있습니다. wheather 사용자가 로그인했는지 여부를 계속 확인해야합니다. 사용자가 로그인하면
2), 재로드를 자동으로 페이지와 폴링
"window.parent.check"를 "check"로 바꾸시겠습니까?하지만 페이지를 새로 고침하면 전체 js가 다시로드됩니다. GET 파라미터로 페이지를 다시 불러 와야합니다. – Hacketo
왜'window.parent.check'를 사용합니까? 이것은 iframe과 결합해서 만 유용 할 것이지만'iframe'에 대해서는 언급하지 않았으므로'window.parent'가 사용되는 것에 대한 오해가있을 수 있습니다. 'iframe'을 사용해도 코드가별로 민감하지 않습니다. –
@Hacketo "확인"을 시도했지만 작동하지 않습니다. 다시로드 기능에 대한 일부 매개 변수를 찾는 방법을 찾고 있었지만 성공하지는 않았습니다. 혼란을 피하기 위해 window.parent.check를 제거합니다. – NeiL