問題タブ [ajax-polling]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - Rails 4 でデータベースの 1 つの値をポーリングする方法、値が変更された場合は AJAX で更新
Rails を使って数年になりますが、AJAX と Javascript を試すのはこれが初めてです。さまざまな Web サイトを読むのに膨大な時間を費やし、何がどこにあり、何をすべきかを理解しようとしました。
「ストーリー」テーブルの「ターン」フィールドが変更されるたびに、Rails 4 アプリで edit.html.erb の「refreshme」div を更新しようとしています。そこで、story.js に setInterval() 関数を書き、@story.turn と refresh をチェックしました。10 秒ごとに更新するようにできますが、コードで story.turn の値を 10 秒ごとにチェックし、値が変更された場合にのみ更新するようにしたいだけです。
routes.rb (そうですか?)
refresh.html.erb (ビュー/ストーリー内 - ここに何があるのかわかりません)
edit.html.erb (ビュー/ストーリー) - show.html.erb はこの div にうまく更新されます
ストーリー.js
stories_controller.rb
story.js では、GET 関数は実行されますが、POST 関数は実行されません。何を「POST」すればよいのかわかりません (データベースから値を「取得」していると思っていましたが、そうではないと思います)。
POST は、ストーリー テーブルから @story.turn を取得するために必要な AJAX 関数だと思いますが、何かを行う方法がわかりません。リフレッシュするには GET も必要ですか? 私はこのコードを何週間も考え続けてきました。どんな助けでも大歓迎です。
javascript - ユーザーが Web ページを表示できるかどうかを確実に検出できますか?
やや高価なjavascript-ajaxing-to-the-server操作を実行するかどうかを決定しようとしていますが、ユーザーがWebページを見ることができる場合にのみ実行する価値があるため、それを検出しようとしています.
最初は「visibilitychange」API を見つけて興奮しましたが、それは Web ページが非表示のタブにあるかどうかを検出するだけのようです。ユーザーが新しいタブではなく新しいブラウザー ウィンドウを開いた場合、イベントは呼び出されません。また、ユーザーが別のアプリに変更したときにも呼び出されません。
また、ブラウザがフォアグラウンドでない場合は動作を遅くしたいと思うので、実際には次の 3 つの状態があります。
- "request-every-5-seconds" ブラウザに入力フォーカスがありますか?
- "request-every-minute" ページのどの部分が実際にユーザーのディスプレイに表示されていますか?
- 「要求しない」ブラウザは別のウィンドウの下に埋もれています。
そうすれば、私の Web ページにアクセスしてブラウザーを開いたままにしておくユーザーは、サーバーまたはコンピューターのリソースを使用しません。
最初の状態監視では、「onfocus」はほとんどの場合機能しますが、フォーカスが開発者ツールに失われる可能性があります。それは少し面倒ですが、それは顧客の典型ではないので、私はそれを受け入れることができます.
2 番目の状態については、どこから始めればよいかわかりません。私が持っていたアイデアの 1 つは、ブラウザーが実際に「ペイント」しているかどうかを検出することでしたが、それを検出する方法は見つかりませんでした。
更新を確認する価値があるかどうかをどのように判断しますか?
[注: 私はすでに jQuery を使用しているので、jQuery ベースの回答で問題ありません。]
ありがとう。
validation - Primefaces のポーリングは、f:viewParam からのメッセージをトリガーします
ここでの最初の投稿なので、私と一緒に少し裸にしてください。たくさん検索しましたが、盲目的だったか、正しい検索文字列を使用しなかったため、問題に関連する答えが見つかりませんでした。
基本的に、Java で記述され、Primefaces を使用する Web アプリケーションがあります。私は ap:layout を使用しており、レイアウトの中央ユニットにメイン コンテンツ、北にヘッダー、南ユニットにフッターを配置しています。west レイアウト ユニットは、2 秒ごとに実行される ap:poll を保持し、oncomplete イベントがトリガーされたときに js 関数を呼び出します。
ここまでは順調ですね。問題は、特定のページの中央のレイアウト ユニットに、long のみを受け入れる af:viewParam があり、値が有効であっても、上記のポーリングが実行されると、f:viewParam からの requiredMessage が表示されることです。
集中的な検索を行った後、ignoreAutoUpdate="true" を p:poll に追加すると、f:viewParam からのメッセージがトリガーされず、有効な ID を提供する必要があるという警告が表示されないことがわかりました。示されています。
だから、私の質問は次のとおりです。それとも放置しても大丈夫ですか?
これが私のレイアウトの関連部分です:
ウェスト レイアウト ユニットからの投票:
f:viewParam を保持する f:metadata ブロック:
ありがとうございました!
php - Web アプリケーションで新しいメッセージを受信したときにユーザーに通知する
最近、私は Web アプリケーションに取り組み始めました。これがばかげた質問である場合は申し訳ありません。
私は以前にAndroidアプリを持っていました。プッシュ通知にGCMを使用していました。最近、このアプリケーション用に PHP を使用して Web アプリケーションを開発しました。ユーザーが新しいメッセージ、アラートなどを受信したときに通知する必要があります。
多くのブログを読み、 WebSocketを使用することが優れたソリューションであることを知りました。
だから私の質問は
Websockets を使用することは良い解決策ですか? 他に良い代替手段はありますか?
ここで WebSocket を使用するには? ユーザーのログイン後、間隔ごとに Apache サーバーにリクエストを送信する必要がありますか? はいの場合、間隔の推奨値は? (可能であれば、サンプルの例を手伝ってください)
共有ホスティングで WebSocket を使用できますか?
jsf - p:poll でファイルをダウンロードできます
p:poll でファイルをダウンロードしようとしています。
これが私のコードです:
およびバッキング Bean:
「名前を付けて保存」ダイアログを開きたいのですが、JQuery json 解析エラーしか表示されません。
ダウンロードしようとしているコンテンツは外部APIからのメッセージ結果なので、いきなり取得できません。
たぶん、この問題を解決する別の方法はありますか?