使用React.js和應用快取構建快速同步應用程式

知與誰同發表於2017-06-06

對大部分應用系統來說,在某種程度上,應用程式的快速載入和及時取得最新資料兩個方面同樣重要。傾向於積極使用快取資料,可能會導致提供的資料陳舊;而傾向於及時獲取最新資料,可能會犧牲載入時間。當然,也可以魚與熊掌兼得,但是可能會需要更多的硬體,更復雜的軟體,或兩者都需要(意味著一個字:錢)。

如何權衡取決於特定的應用系統和業務要求,本文就是我們的團隊使用React.js和應用快取來解決這一問題的一個例項。

我們從哪裡開始

標籤是每當你在瀏覽器上開啟一個標籤去送出一份慈善捐助的好理由。這是一件很偉大的事——但事實上,我們僅僅點選了一個價值 100,000美元的里程碑來完成慈善捐助——但是,我們有一個疑問。

我們的應用也太慢了。大家都明白這點。當使用者更換新的標籤頁時,他們需要得是速度與連貫性。而且,我們也沒有宣佈:載入頁面的延遲成為了人們關閉標籤的首選理由。

我們想讓我們的頁面除了更有用,還要更好地被接受。但隨著我們向頁面中加了些附加功能後, 我們的頁面載入問題也越來越突出了。因為人們需要我們的 APP 能快速地提供內容資訊。

我們正在用 Django 的模板系統做一個互動式伺服器來召喚或服務一個頁面。當使用者是在快速的網路環境中,而且我們的服務狀態是健康的情況下,伺服器響應時間是 ~65毫秒,還不是比較慘。然而,如果在你父母的房子*裡開啟一個標籤,或者我們的資料庫產生了一個短暫的停頓時,這可能會給你在對其的信任上,潑了一盆冷水。

比較讓人煩惱,我應該承認我們所建立的 APP 並沒有採用標準的前端框架,除了僅僅是使用了 JQuery。 考慮到我們的 APP 有太多的互動,而且太混亂了。在各種各樣的程式碼型別上,我要怎麼才能喜歡它。

我們需要去修改它。

  • 我愛你們,老媽、老爸!時代華納有線電視, 沒有太多什麼了。
    明確我們的需求

當準備去處理這個問題時,我們必須決定優先處理哪些以及放棄哪此需求。在這裡我們提出了一些建議:

頁面必須能快速載入。這是沒得討價還價的。

我們的頁面必須是非本地 URL。我們提高了 VIA 捐助廣告的價格,網路線上廣告需要去核識真實性來確保這些廣告是夠安全的。由於瀏覽器端的使用者頁面外掛總是將我們的廣告移除,以至於網路廣告只能使用 http 或 https 協議。

我們希望頁面中的內容是最新的,但不必是實時性的。我們通過裝置對使用者資料進行同步, 並保持完美的體驗。我們以分頁的形式顯示出使用者的反饋;例如,我們顯示出新使用者的統計資料;我們有時也要執行捐助裝置來以滾動條的形式顯示出 “募集資金” 量。雖然我們願意去接收一定程度上稍舊的資料(就像頁面展示後才提交資料),但理想得是在提交資料的瞬間發生。

我們要減少前端混亂的程式碼。將非優先權最高的程式碼肅清,這是一件讓人興奮的事。

文章轉載自 開源中國社群 [http://www.oschina.net]


相關文章