0

私はlaravel toastr機能を使用しています(リンクはこちら)。それが可能かどうか、または toastr 機能を cron ジョブ内に配置し、toastr の結果を Web ページにスローする方法はありますか?

また、Webソケットを使用したくありません。誰かに提案があるかどうか尋ねているだけです。

ありがとう

4

1 に答える 1

1

あなたが何をしたいのかがユーザーへの非同期メッセージであることを正しく理解していればOKです。それを行う1つの方法は、WebSocketを使用してそれをリッスンするJavaScriptを追加し、受信データがある場合はtoastrを表示することです。問題は、WebSocket が必要ないことです。もう1つのオプションは、ユーザーがページをロードしたらtoastrメッセージを表示することですが、サーバーからデータを取得するにはページのリロードが必要になるため、これはあなたが望むものではありません. メイン テンプレート ファイルには次のコードを含めることができます。

@if (Session::has('flash_notification.message'))

    <script>
        $(document).ready(function() {

        toastr.{{ Session::get('flash_notification.level') }}
        ('{{ Session::get('flash_notification.message') }}');

        });
    </script>

@endif

CRONJOBから定期的に実行され、DBまたはファイルに書き込む必要がある別のスクリプトまたはLaravelコマンドが必要です。データが書き込まれたら、コントローラーまたはモデルでそれを読み取り、セッションに追加できます。タイムスタンプを使用して、トースターを重複して印刷しないようにすることができます。

または、エンドポイントを時々ポーリングする JavaScript をページに配置することもできます。更新があった場合は通知が表示されますが、Web サーバー (Apache) に余分な負荷がかかります。

于 2015-10-01T11:23:51.490 に答える