2011-12-08 70 views
4

我決定在我的網站上使用MVC模式。所以,現在我在我的網站上使用Backbone.js框架。 我的網站上的所有操作都是ajaxy,所以服務器只從db獲取數據,並將數據保存到db。我應該在客戶端和服務器上使用MVC嗎?

我是否也需要在服務器端使用MVC?這很複雜,不是嗎?

或者我可以在客戶端使用MVC,並有簡單的服務器API,只提取/保存數據,並使一些小型服務器的工作?

UPD:據我所知,我應該在服務器端使用Models。但在服務器端Views是什麼 - 如果我使用JavaScript呈現所有信息?

所以,它是一個很好的模式,即服務器端僅適用於原始數據 - models - 它總是返回json,與HTML的標記和其他東西有關Views沒有關係?

+0

聽起來像是一個機會來實現[真正的MVC實際上](http://stackoverflow.com/questions/1549857/simple-php-mvc-framework/1549970#1549970)。 Model = PHP。視圖=骨幹。控制器= AJAX。或者有點。 – mario

回答

6

不,你不需要使用它的服務器端,但它會應用程序和業務邏輯的組織/分離的幫助。根據您的應用程序的規模,這可能在未來有很大的幫助。

關鍵在於確保您很好地組織您的後端代碼,否則最終會出現單片和/或難以維護的代碼庫。

編輯迴應OP的編輯:
服務器端的意見將包含您的HTML和可能會或可能不會使對服務器的請求任何JavaScript。這假定您實際上使用PHP來構建用戶導航到的頁面。

如果您有一個使用AJAX請求構建自己的靜態html頁面,那麼您可能不需要需要使用服務器端視圖。你的控制器很可能會輸出JSON數據。如果是這種情況,它不會使模型和控制器的用處變得更小。

+0

我已更新我的帖子,解釋了我的問題 –

+0

更新了我的答案。 – simshaun

2

如果您使用任何主要的PHP框架(CakePHP,Code Igniter,Symfony等),那麼您已經使用MVC。如果您的服務器端邏輯比僅僅幾個非常簡單的腳本更復雜,那麼您應該使用服務器和客戶端上的MVC來使用列出的框架中的一個,即應該

今天正在構建的許多(大多數?)較大的Web應用程序正在向客戶端和服務器端應用程序代碼使用MVC框架。對於許多大型應用程序,特別是請求/響應服務器應用程序和事件驅動的瀏覽器應用程序來說,這是一個很好的模式。

+0

我已更新我的帖子,解釋了我的問題 –

+0

您的各種JSON文檔==視圖......更不用說身份驗證和客戶端代碼的初始加載了。 –

3

Backbone.js通過RESTful JSON接口連接您的應用程序。老實說,我發現它與MVC框架一起工作非常棒。如果您構建了一個RESTful API,則可以讓您輕鬆管理CRUD更新。您的所有服務器端代碼將負責保存並將JSON對象發送回Backbone.js。然後讓你的大部分邏輯和魔法發生在Backbone.js框架內。

相關問題