iT邦幫忙

0

如何使用nodejs定時送最新資料至前端

jae 2018-12-23 20:14:442203 瀏覽
  • 分享至 

  • xImage

目前在做專題作業
功能是爬蟲每天抓資料
抓完資料經過處理後會丟到資料庫上
再把資料庫的資料送到自己架的網站

資料庫是使用mongodb
透過nodejs"定時"從資料庫抓最新資料送到網頁上

大概知道概念是後端撈資料送前端
再讓前端固定刷新就好
但是怎麼用就不知道了...

懇請大神們不吝指教

看更多先前的討論...收起先前的討論...
froce iT邦大師 1 級 ‧ 2018-12-24 08:00:07 檢舉
通常是用js的 setInterval(),然後定時刷新,但其實這種設計本身就是有問題。
https://www.w3schools.com/jsref/met_win_setinterval.asp

一般來說網頁都是使用者要求時傳送最新的狀態給使用者。
定時刷新通常是比較沒辦法的辦法。
fillano iT邦超人 1 級 ‧ 2018-12-24 11:31:14 檢舉
既然你已經用了node.js,用socket.io吧。
馬克 iT邦研究生 3 級 ‧ 2018-12-24 12:34:54 檢舉
基本上是用 websocket 來做這種 server 推送更新的事情 (p.s 如果 client 沒支援 websocket ,則是使用 polling 的方法,就是一樓說的方法 )。

然後 nodejs 的話可以使用 socket.io 來更簡單的做到這事情兒 ( socekt.io 封裝了 websocket or polling 的操作 )
fillano iT邦超人 1 級 ‧ 2018-12-24 18:16:02 檢舉
socket.io在使用上,有點像在伺服器端觸發瀏覽器端的事件這樣的概念,所以不需要在瀏覽器端呼叫setInterval。然後mongodb好像現在也有支援pub/sub,所以只要新增資料,就會被通知,然後你再觸發瀏覽器端的事件把資料傳過去就可以。這樣做比setInterval有效率。
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友回答

立即登入回答