2015-04-26 105 views
0

我現在正在開發一個使用離子框架的移動應用程序,它使用larvel 4 REST API對MySql數據庫執行CRUD操作。基於應用程序需求,移動應用程序需要每次調用後端服務以完成某個過程。 我正在使用Angular Resource來調用這些API,我使用Javascript setinterval函數每3秒調用一次。但是,該應用程序正在運行,我並不覺得這是一個很好的做法,因爲這對服務器和客戶端來說都是一項沉重的任務。 請問大家請指導我如何解決這種情況,我非常感謝您的幫助。特別是,我應該設置哪種工具,它們是什麼?謝謝。實時背景服務

+0

我認爲它可以幫助http://stackoverflow.com/questions/29868003/refresh-events-in-angular-calendar-ui-fullcalendar-with-laravel-as-a-backend/29868502#29868502 –

+1

更好在任何情況下都不要使用'setInterval'。它沒有考慮請求的時間滯後。最好在成功和錯誤回調中調用setTimeout – charlietfl

回答

0

setInterval不是從API服務器/數據庫接收新數據的最佳實踐,因爲當有太多用戶訪問您的網站時服務器可能會氾濫。但是有一個更漂亮的解決方案:WebSockets。使用websockets,您可以實時接收通知。我不是PHP開發人員,所以我不知道用什麼WebSocket庫來進行Laravel/PHP開發。但在AngularJS部分我可以推薦這個:https://github.com/gdi2290/angular-websocket

一個的WebSocket例子(非關聯):http://jsfiddle.net/EAVvQ/24/

希望這有助於。

乾杯!

+0

謝謝安德烈,這對我非常有幫助,並感謝您的回答。除了Laravel/PHP環境外,其他的還有哪些?你在使用其中的一些嗎?如果不是非常困難,我可以改變環境。 – Hein

+0

Laravel/PHP環境很好。 WebSockets是一個多平臺/技術庫。使用什麼語言並不重要。嘗試一些PHP WebSockets庫,看看哪一個最適合。在底層WebSockets只是一個簡單的服務器,它發送通知時,客戶端(JS)偵聽這些通知,並根據響應執行一些操作。 –