2011-01-30 192 views
2

我有一個設計決定。富Web客戶端與瘦客戶端

在我的web(ajax)應用程序中,我們需要決定應該在哪裏放置用戶界面邏輯?

它應該完全通過JavaScript加載(純單頁)。和只有數據來去。

服務器是否應發送一些格式(XML),它通過JavaScript動態創建豐富的用戶界面的翻譯。 (半ajax)。所以一些數據和用戶界面來來去去。

哪個選項更好? (速度,易於開發,平臺獨立)

謝謝。

回答

1

最大的影響是您是否關心初始頁面加載時間。如果您不介意在頁面加載時擁有所有UI,那麼您的應用只需穿梭數據即可,而不是UI。如果你想要更快的加載速度並且不介意更大的AJAX請求,發送一些UI標記並不錯。如果您有服務器電源預先呈現UI數據並將完全準備好的標記數據發送給用戶,則他們的瀏覽器將更快地執行,並且初始頁面加載速度應該很快。

你選擇哪一門課程應該取決於當前的任務。並非所有的請求都需要以相同的方式處理。

2

IMO,它主要取決於它是什麼樣的應用程序。它更像桌面應用程序嗎?那麼單個頁面可能會運行良好。在很大程度上擁有一個Ajax客戶端具有same drawbacks as using frames,但在桌面式應用程序中這不是一個大問題。

如果第二個選項更像是一個傳統網站,它包含許多不同內容的不同頁面,那麼您的第二個選項會更好,然後您希望將不同的內容分開。但是,製作一個Ajax應用程序可能並不能爲您帶來一切。在頁面上添加一些Ajax可能會很有用,但加載全部帶有Ajax的數據可能不會爲您的應用添加任何內容,除非使其更慢。

2

幾個月前我面臨類似的困境。正如Lennart(上文)所說,如果您的應用更具個性化,那麼去睡衣或類似的圖書館是有道理的。 睡衣的最大優點之一是提供邏輯上完全分離的後端和前端代碼。海事組織這是非常重要的。

如果你的應用程序不像桌面應用程序(就像我們的那樣),那麼multipage提供了更多的優勢,比如單個更改不會打破整個應用程序,更容易維護等等。你可能想要考慮可以讓你的應用程序服務器服務json和其他web服務器提供靜態內容和js。 Js會向json應用服務器請求數據。這樣,我們設法隔離了前端和後端。此外,我們選擇mootools作爲睡衣上的js庫。當然,這取決於你的口味和應用需求。我們確實使用python模板服務器端模板,但是在編譯時並不像通常的方法那樣在運行時。這需要稍微改變我們的想法,但提供了許多優點。

我最後告訴你我的故事,但我認爲這是相關的,希望有所幫助。

0

哪個選項更好?(速度快,易於開發,平臺無關性)

平臺獨立性,如果你的意思是跨瀏覽器兼容,是一個巨大的理由來使用睡衣,因爲Python代碼有一個用於處理一切都是爲了你一個健全的覆蓋基礎設施。沒有更多的JS兼容性類。

無論如何,睡衣是關於加載客戶端應用程序,然後使用json-rpc僅用於數據。這是因爲速度更快(一旦加載應用程序),更容易將服務器和客戶端分開,更容易維護,因爲所有UI代碼都位於一個位置的小部件中。

我見過像DokuWiki這樣使用php腳本來提供javascript的東西,我的第一個想法是「爲什麼?但我猜測它工作得很好。這可能是有道理的,如果你大多有靜態頁面偶爾有一點點的裝飾。