2016-09-03 1 views
1

내 페이지 중 하나에는 첫 방문시 API에서 일부 데이터를 가져 오는 동안 사용자를 초기화하는 컨트롤러가 있습니다. 나는 심지어 사용자가 그 시간에 페이지를 재 장전하는 기능을 유지하고 싶다. 사용자가 브라우저를 다시로드하거나 탐색하거나 닫거나 로그 아웃 한 경우 API에서 데이터를 수집 할 때까지이 기능을 계속 실행하고 싶습니다.사용자가 계속 작동하는 기능을 유지하는 방법 페이지를 다시로드합니다

AngularJS & 익스프레스 JS 백엔드로 어떻게 이런 종류의 구조를 구현할 수 있습니까?

btw, 처음 방문한 후 사용자가 초기화했는지 여부를 확인하고 initialize() 함수를 다시 호출하면 데이터베이스에서 데이터를 가져 와서 사용자에게 제공합니다. 당신이 닫거나 손실 브라우저 연결을 새로 고치고 당신은 Service Workers를 사용하여 기능을 달성 할 수있는 대답을

+0

클라이언트 측을 따릅니다. 사용자가 브라우저를 닫으면 클라이언트 측 스크립트가 실행을 멈 춥니 다. – cnorthfield

+0

@papakia ok 그러나 우리는 서버에서 실행중인 기능을 사용자 요청으로 지정하고 백엔드에서 끝날 때까지 계속 실행합니다. 함수는 API에서 데이터를 가져 와서 db에 저장합니다. 사용자가 다시 방문한 후에 함수에 의해 완성 된 db로부터 데이터를 제공합니까? – invincible

답변

3

이 수 없습니다. 그들은 page 컨텍스트가 없습니다. 그들은 global 범위에서 실행되며 특정 페이지에 속하지 않습니다.

서비스 노동자들이 무엇을 할 수 있는지에 대한 자세한 내용은이 링크를 브라우저에서 실행되는 자바 스크립트

Service Workers/ W3C

+0

답변을 주셔서 감사하지만, 어떻게 생각하지만 그게 정확히 어떻게 모르겠지만 나는 정확하게 이것을 알고있다. 끝내기까지 실행하고 동시에 HTTP 요청을하는 기능을 할당하는 것과 같다. – invincible

+0

그건 완전히 불가능합니다. 사용자가 원하지 않는 일을하도록 강요 할 수는 없습니다. 스크립트를 실행하지 않으려면 사용자가 페이지를 닫아야합니다. 이것이 열릴 모든 공격을 상상해보십시오. 어쨌든 왜 이걸하고 싶니? –

+0

나를 더 분명히 해두 고, 나는 사용자를 강요하지 않는다. 사용자는 apis에서 사용자에 대한 정보를 수집하는 대시 보드를 가지고 있습니다. 많은 양의 데이터를 얻으려면 백엔드에서 실행되는 기능을 할당하려고하는데, 모든 데이터가 수집 될 때까지 사용자를 유지하지 않으려 고합니다. 그는 사이트를 탐색하거나 로그 아웃 할 수 있습니다. 함수가 완료되고 데이터를 얻은 후에 만 ​​사용자는 대시 보드에서 데이터를 볼 수 있습니다. 하지만 데이터 부분을 가져 오는 동안 사용자를 중단시키고 싶지는 않습니다. 같은 페이지에 머물러 있습니다. – invincible

1

을받지 못할 수 있습니다 경우

+0

감사합니다. 서비스 담당자가 백엔드에서 작동 할 수 있습니까? 또는 브라우저에서 실행되지만 페이지에 의존하지 않고 실행됩니까? – invincible

+0

요구 사항은 푸시 알림과 유사하지만 상황 및 용도가 다릅니다. 서버는 귀하의 케이스 요청에서 통지를 보내야하며, 이는 귀하가 필요로하는 것을 수행합니다. 추신 : 저는 이것에 대해 많은 지식이 없습니다. R & D를하십시오. 밖에 많은 예제가 있습니다. :) –

+0

좋아, 내가 연구를 할 것입니다, 하나의 질문뿐만 아니라, 여러 표현하는 애플 리케이션을 가지고이 달성 할 수있는, 내가 말하길 2 익스프레스 애플 리케이션, 그들 중 하나는 웹 서비스로 사용되고 다른 하나는 함수가 API에서 데이터를 가져옵니다, 둘 다 동일한 db를 사용하고, 사용자 테이블의 값을 isInitialized = true로 설정하고 각도 컨트롤러의 웹 서버 앱에서 함수가 isInitialized 값을 검사하고 데이터가로드되면 사용자에게 "=" 대시 보드가 준비 중입니다. " – invincible

관련 문제