我打算開發移動web應用程序。 應用程序將使用Web服務作爲後端數據。 所有演示文稿和業務邏輯都需要用javascript編寫。任何人都可以提出設計模式來分離JavaScript中的業務邏輯和表示邏輯嗎?
在ios和android中有不同的設計。
而且不想爲兩者分別重寫業務邏輯。
任何人都可以提出設計模式來分離JavaScript中的業務邏輯和表示邏輯。
我打算開發移動web應用程序。 應用程序將使用Web服務作爲後端數據。 所有演示文稿和業務邏輯都需要用javascript編寫。任何人都可以提出設計模式來分離JavaScript中的業務邏輯和表示邏輯嗎?
在ios和android中有不同的設計。
而且不想爲兩者分別重寫業務邏輯。
任何人都可以提出設計模式來分離JavaScript中的業務邏輯和表示邏輯。
一個好的設計模式是設計一個「REST-ful」API來存儲,檢索和修改應用程序運行的數據。然後設計分享這個通用API的獨立用戶界面。編寫代碼時,請使用單獨的原型和函數來表示和處理用於表示數據外觀或在用戶界面中控制的原型的數據。
您還可以通過使用CSS來控制應用程序在iOS和Android上的外觀,同時仍然在這兩個版本的應用程序中使用相同的HTML DOM結構來實現可重用性。換句話說,通過操縱DOM元素的「class」屬性,而不是明確修改「style」屬性,依靠CSS來應用基於類的樣式,可以獲得更多的可重用性。然後,大部分情況下,您可以使用相同的JavaScript代碼,但只是向不同的用戶代理提供不同版本的CSS。可能會出現額外差異的情況;我只是建議在它們出現時將它們重構成它們自己的功能。
正如其他人已經指出的那樣,現在有許多已經抽象出移動設備視圖邏輯的現有JavaScript框架(如Sencha Touch),允許您只編寫模型和控制邏輯部分。如果你有一個UI組件的抽象,那麼需要維護的唯一分離就是模型和控制器之間的分離。
看看backbone.js,這是一個超級MVC框架,適用於豐富的JavaScript應用程序。
我使用的是Sencha Touch,因爲它允許我分離iOS,Android和平板電腦。 加上它支持REST-ful和JSONP來做你想要的。
Sencha Touch是我認爲的最佳選擇。不僅可以讓您將演示文稿和業務邏輯分開,還可跨瀏覽器,尤其是Android,iPhone和Blackberry 6瀏覽器。 通過使用sencha touch,您可以輕鬆使用手機電話將移動Web應用程序部署到原生Web應用程序
訪問數據由Restful API執行。在表示層我也需要改變html。只有CSS變化是不夠的。 – yogs