2016-08-29 9 views
0

ページを更新し続けるには、app.get()を複数回呼び出す必要があります。私は毎回app.getを呼び出す関数を持っており、writeToPage()が呼び出される関数を知っています。app.get()は一度だけ呼び出されます。どのようにapp.get()でページを更新し続けることができますか、または私が望むものを達成するためのより良い/代替の方法があります。私が必要とする理由は、コンテンツ変数が変更され、ページを更新する必要があるからです。Nodej Expressjs app.get interval

function writeToPage(content, page) { 
    console.log('writeToPage Called'); 
    app.get(`/${page}`, function (req, res) { 
     res.send(content); 
     console.log('content Sent'); 
    }); 
} 
+0

必要なものはAjax/Websocketsです。 – undefined

+0

ページコンテンツが動的である場合、動的ページを作成する最も良い方法は何ですか? @ jfriend00 –

+0

下記の私の答えを見てください。 – jfriend00

答えて

4

は、クライアントが一致するhttp要求を行うときにExpressによって呼び出されるハンドラを登録するためのものです。あなた自身を繰り返し呼び出すものではありません。このようにブラウザページを自動更新することはできません。また、元のページリクエストでres.send()に一度だけ電話することができます。一度呼び出されると、ページがブラウザに送信され、そのhttp要求に対して作業が完了します。

あなたは自動更新にブラウザのページが必要な場合は、オプションのこれらのタイプを持っている:

  1. あなたはしょっちゅうブラウザのページのオートリロード自体を持つことができます。これは、Javascriptまたはメタリフレッシュタグで実行できます。これにより、サーバーからページの新しいコピーがリロードされ、値が更新されている場合は、新しい値が表示されます。

  2. Webページで定期的なajax呼び出しを使用すると、変更された値を探してサーバーを「ポーリング」し、その値が変更されたときにページ内のJavaScriptが現在のページの値を更新し、新しい価値。

  3. ページからサーバーへのwebSocketまたはsocket.io接続を使用すると、値が更新されるたびに自動的に新しい値がページにプッシュされます。ページのJavascriptはこの新しい値を受け取り、現在のページの値を更新して新しい値を表示します。