2016-09-03 2 views
1

私のページの1つに、初回訪問時にAPIからデータを取得しながらユーザーを初期化するコントローラーがあります。私はユーザーがその時間にページをリロードする機能を実行し続けたい。ユーザーがブラウザをリロードしたり、ブラウザをナビゲートしたり閉じたりしてログアウトしても、私はAPIからのデータ収集を完了するまでこの機能を実行し続けます。ユーザーが機能している状態を維持する方法は、ページを再読み込みします

AngularJS & Express JSバックエンドでこの種の構造を実装するにはどうすればよいですか。

btw、最初の訪問の後、ユーザーが初期化したかどうかをチェックし、initialize()関数を再度呼び出さないでください。dbからデータを取得してユーザーに送信します。あなたが閉じたり、失われたブラウザの接続をリフレッシュしてあなたがService Workersを使用して機能を実現することができます答えに

+0

クライアント側に従ってください。ユーザーがブラウザを閉じると、クライアント側スクリプトの実行が停止します。 – cnorthfield

+0

@papakia okですが、私たちはユーザリクエストをサーバに実行する機能を割り当て、バックエンドで終了するまで実行し続けます。この関数はapisからデータを取得し、dbに保存します。ユーザーが再度訪問した後、機能によって完了したdbからのデータを提供する? – invincible

答えて

3

それは ことはできません。彼らはpageコンテキストを持っていません。それらはglobalスコープで実行され、特定のページに属しません。

サービス労働者は何ができるかについての詳細は、このリンクをブラウザで実行するJavaScript

​​

+0

答えがありがとう、しかし私は可能性があると思うが、私は正確には分かっていない:)私はエクスプレスでこれを行うために検索を終了するまで実行する機能を割り当てると同時にいくつかのHTTP要求を行うようです。 – invincible

+0

それは全く不可能です。あなたがしたくない場合は、ユーザーに何かをさせることはできません。スクリプトを実行したくない場合、ユーザーはページを閉じる必要があります。これが開くすべての攻撃を想像してみてください。とにかくこれをやりたいのですが? –

+0

私はもっと明確にする、私はユーザーを強制的にしないでください。ユーザーにはapisからユーザーに関する情報を収集するダッシュボードがあり、多くのデータを取得するにはバックエンドで実行されている関数を割り当てたいと思うし、すべてのデータが収集されるまでユーザーを保持したくない。彼はサイトをナビゲートすることも、ログアウトすることもできます。関数が終了してデータを取得した後でなければ、ユーザーはダッシュボード内のデータを見ることができません。しかし、データ部分を取得中に、私は同じページに滞在するユーザーを中断したくありません。 – invincible

1

を受けることができない場合

+0

サービスマンはバックエンドで作業できますか?またはそれはブラウザで実行されますが、ただページに依存することはありませんか? – invincible

+0

あなたの要件は、プッシュ通知に似ていますが、状況や使用方法が異なります。サーバーは通知(あなたのケースの要求で)をプッシュし、必要なものを実行します。 P.S:私はこれについて多くの知識を持っていません。研究開発をしてください。外には多くの例があります。 :) –

+0

大丈夫私は2つのエクスプレスアプリを持って、それらの1つがWebサービスとして使用されていると他の1つの機能がapisからデータを取得していると言う、複数のエクスプレスアプリを持ってこれを達成することができます、どちらも同じデータを取得した後、ユーザーテーブルの値をisInitialized = trueに設定し、角度コントローラーのWebサーバーアプリでisInitialized値をチェックし、そうであればデータをロードしますが、user =あなたのダッシュボードは準備中です。 " – invincible

関連する問題