【Laravel實戰】10分鐘搞懂Livewire的Polling

【Laravel實戰】10分鐘搞懂Livewire的Polling

Livewire 提供了一個語句叫做 wire:poll ,當你把他加入某個元素,它將會每2秒重新渲染組件,透過 Polling 來觸發 Ajax 改動是一個輕量級的解決方案,這是相對於其他的解決方案像是 Laravel Echo . Pusher 或任何一個 WebSocket 技術來說

我們來看一個例子,你看該有多簡單

<div wire:poll>
    當前時間: {{ now() }}
</div>

你能夠加入修飾子來修改更新頻率,比如 750 微秒,請看下面的例子:

<div wire:poll.750ms>
    當前時間: {{ now() }}
</div>

如果你希望的是每隔一段時間呼叫某個行動而不是更新組件的話,你可以透過傳方法名稱給 wire:poll 來達到

<div wire:poll="foo">
    當前時間: {{ now() }}
</div>

現在,組件內的 foo() 將會在每2秒鐘被呼叫一次

在背景進行 Polling (Polling in the background)

當應用所在的瀏覽器分頁位於背景時, Livewire 將會減少 polling ,目的是減少對伺服器所進行的不必要 AJAX 請求。只有原先5%的 polling 請求會被保留

但假如你希望能夠保有相同的 polling 頻率即便是在背景的狀況下,你能夠使用 keep-alive 修飾子

<div wire:poll.keep-alive>
    Current time: {{ now() }}
</div>

分享這篇文章:

訂閱電子報,索取 Laravel 學習手冊

價值超過 3000 元,包含常用 Laravel 語法與指令!

Laravel 百萬年薪特訓營

從最基礎的 PHP 語法開始,包含所有你該知道的網頁基礎知識,連同 Laravel 從零開始一直到實戰,最後還將告訴你如何找好工作,讓你及早擁有百萬年薪