爲什麼AJAX不夠用?PubSub可以幫助減輕網站壓力

AJAX調用已經將Web上的用戶交互向前推進了一大步:我們不再需要重新加載頁面以響應每個用戶輸入。使用AJAX,我們可以在服務器上調用特定的過程並根據返回的值更新頁面,從而為我們的應用程序提供快速的交互性。

為什麼AJAX不夠用?PubSub可以幫助減輕網站壓力

在AJAX之前,網頁上的交互性非常笨重。任何用戶交互都需要在服務器上生成頁面的更新版本,發送到瀏覽器並在那裡呈現。在這個模型中,交互的基本單位是頁面。無論瀏覽器發送到服務器的是什麼,無論所需的更新有多小,結果總是一個全新的頁面。這浪費了線路流量和服務器資源,對用戶而言是緩慢而痛苦的。

為什麼AJAX不夠用?PubSub可以幫助減輕網站壓力

AJAX通過對事物進行粒化來解決這個問題:你現在可以發送數據,僅接收由其觸發的交互的結果,然後根據此響應更新頁面的相關部分。使用AJAX,我們從一個通用調用(“給我一個新頁面”)到多個特定於交互的調用。使用AJAX,我們進行了遠程過程調用在服務器上進行了(RPC)。

AJAX調用沒有涉及的是來自服務器的更新,這是現代實時和協作Web所需要的,這種對更新的需求涵蓋了通知用戶需要,比如有些新聞網站的潛在數百萬讀者的通知。除了AJAX的響應請求之外,還需要另一種消息模式,一種可以在任何規模下工作的模式:PubSub(發佈和訂閱)是一種已建立的消息傳遞模式,也可實現通知的目的。

為什麼AJAX不夠用?PubSub可以幫助減輕網站壓力

​用於處理許多客戶端更新的已建立的消息傳遞模式是PubSub。當客戶端向主體發送事件(“發佈”)時,會將此事件分發給所有當前連接和訂閱的客戶端。

PubSub模式的一大優勢是發佈者和訂閱者通過代理分離。發佈者不需要任何關於主題的當前訂閱者的知識,並且訂閱者同樣不需要任何發佈者的知識。這意味著PubSub很容易在發佈者和訂閱者中實現,並且可以很好地擴展。

PubSub的眾多實現可供選擇,基本每種編程語言都可以實現。

在消息通知方面,PubSub比ajax使用更加靈活方便,如果AJAX不夠用可以選擇PubSub可以幫助實現。


分享到:


相關文章: