3

想知道這種技術在其各種化身中是否有名稱......並且如果實施它的人有任何資源。你稱之爲混合傳統/推送狀態應用程序是什麼?

假設你有一個頁面,非常像github。並且使用支持JavaScript的瀏覽器,您可以加載

http://www.github.com/username/project 

UI and inner content load simultaneously, the pre-AJAX way 
- or - 
UI wrapper loads, inner content loads via AJAX  

然後它通過AJAX加載一個靜態框架和所有模塊。或者,它可以靜態加載整個頁面。

然後你點擊一些導航元素,並嘗試訪問

http://www.github.com/username/project/first_dir 

With previously loaded UI 
    Inner content navigation causes full page refresh 
    - or - 
    Inner content navigation causes inner content reload via page refresh 
    - or - 
Completely new page with UI and inner content loads, same as first example 

在這一點上,我知道,這個頁面可能是「參觀」使用按壓狀態,並具有與AJAX內部模塊刷新,保持整體該網站的靜態鉻。但是,如果由於某種原因JavaScript不被支持或頁面使用全刷新加載,頁面將完全靜態加載(或者在加載框架後部分通過AJAX加載,如第一個URL)。

這種技術叫做什麼?這似乎是一個穿透服務器的MVC模型和客戶端MVC模型的統一模型。我知道這可以用很多手肘潤滑脂來完成,但我想知道是否有人已經研究過這種技術,並制定了有關如何保持兩種模型在架構上同步的指導原則。

+0

有趣的事實,GitHub的UI不起作用關閉JavaScript。因此,即使單個URL可以使用JS風格路由,它們也不會支持舊世界/無JS模型(至少不一致)。 – 2012-03-13 14:41:18

+1

我很抱歉,但是在這裏問到什麼?這種技術的名稱?或者在哪裏可以找到使用它的指導方針? – raina77ow 2012-06-19 14:38:34

+0

理想情況下,我想要更多的資源,但很難搜索,因爲我不知道它的名稱。一個名字將是一個好的開始。 – 2012-06-19 16:14:55

回答

0

好了,我真的不知道這個技術是如何命名的,但我可以告訴我們如何實現通常在我們的項目(基於MVC架構)類似的行爲。

重點是使用視圖助手(或部分;我們選擇了前者,雖然)來構建整個頁面的不同部分。例如,一個邊欄由一個Helper對象構建,一個表格代表一些項目的集合 - 與另一個等等。每個這個Helper可以被命名爲一個排序的小視圖,因爲它負責在一些內容中表示一些數據非常特別的方式。

這些助手中的每一個都可以作爲獨立調用(然後將其結果用於AJAX處理器來刷新頁面的某些部分),或者作爲更復雜的過程的一部分(然後將其結果用於佈局模板的一種形式)。

0

與raina77ow類似,我也不知道這是如何調用的,但我們前一段時間爲一個移動應用程序/網頁(它也必須在舊的Opera/IE版本中工作)實現它。我們所做的是先建立其未來必將所有一個標籤或多或少純HTML頁面,並通過JavaScript與檢索的整個頁和「切出」 Ajax調用替換功能(jQuery有此機功能),這是相關的部分(這並沒有給充分利用基於AJAX的網頁,但阻止重裝各類資產)。這也可以防止任何複雜的「同步」問題或API需要能夠返回JSON HTML。除此之外,如果我採用MVC模型以及我們在某些應用程序中的實現方式,您可以這樣看待:HTML是視圖(靜態),JS是通過服務器的AJAX數據請求的控制器側面模型。這比想象前端後端的單獨MVC結構更有意義。

+0

從完整下載中刪除內容似乎有點奇怪? – 2012-06-20 15:59:10

+0

噢,是的,正如我所說的,它並沒有充分發揮基於AJAX的頁面的優勢(儘管你仍然有很多),但是保持向後兼容性,並且非常輕鬆地支持js-less系統。 (如果你使用的是jQuery,你可以簡單地從更大的html請求一個特定的元素,比如'$ .get('/ path/to/foo.html #base'...'能夠) – 2012-06-20 17:28:36

相關問題