2010-08-04 96 views
3

我一直在開發我的第一個基於web的應用程序大約兩個月了(我是一個大多數經驗豐富的C和Python用一些Java拋出引導的學生)。到目前爲止,我的頁面作爲一個瘦HTML佈局(薄意味着一個非常簡單的佈局,也就是少於50行的HTML),它主要由AJAX操縱,主要使用jQuery。 AJAX是通過生成的。 PHP與SQL操作相結合。這個webapp將被最多6-10個客戶端(編輯:用戶)使用,並且跨瀏覽器兼容性僅僅是一種獎勵;看來IE7是最薄弱的環節。AJAX的崩潰,服務器端和客戶端腳本之間的界限?

我想知道:

  1. 什麼是使用這樣的客戶端重的方法對多個瀏覽器加載「的缺點(請注意,我用燒烤對付背部的AJAX的斷裂/前進/重裝/書籤/歷史)。作爲一名試圖發展良好實踐的新程序員,我應該如何將自己的優勢集中在AJAX原則上?
  2. Web開發的未來是否真的像瀏覽器一樣作爲一個平臺向我發展?根據我的經驗,JS中的腳本客戶端看起來像是一個體面的GUI工具包,AJAX將它作爲一個易於使用的數據訪問層進行備份。
  3. 很明顯,服務器端腳本將始終有它的地方。服務器端真正發光的地方在哪裏?例如: a)生成將通過注入的XML。 JS和DOM b)生成將直接注入的HTML(無DOM操作) c)創建可在iframe中使用的完整頁面。

我試圖達到平衡,看起來我迄今爲止讀過的所有東西都沒有一個平衡的視角,只是推動AJAX成爲所有的最終目標。

回答

2

哇,這是嚴肅的話題,許多答案都是可能的。

在行業中,Ajax和客戶端腳本的用法與GUI或可用性工具一樣是一個生產力和可維護性問題。 有時候更容易(特別是在MVC服務器環境中)只獲取比所有內容更多的內容。但它幾乎是問題的觀點

我會盡量回答你的3個問題,只記得我就像你在這個意義上,我認爲很多文章或書籍真的缺乏平衡(顯然,我也是):

  1. 對我來說,使用客戶端重的JavaScript的主要缺點(如建設JS所有GUI)與從服務器提供HTML頁面是缺乏控制你得到了錯誤,小圖形蟲子,環境在差異等最終你會像分發桌面應用程序的軟件供應商一樣行事,你不能真正控制客戶端的可用性。 當然,使用瀏覽器激烈的框架(如jQuery)和在許多環境中運行渲染測試幾乎可以完全消除這個缺點。 你應該嘗試兩種技術,使用Ajax並不總是最好的,它有時可以拯救你的生命(去建立一個多選的動態樹和數百萬只有HTML的分支)。 我一般我應用這個規則:如果用戶更改屏幕(即在列表和表單之間),我重新加載整個頁面,如果沒有,我使用Ajax。

  2. 在Web開發中,我必須不同意客戶端腳本仍將繼續用於GUI的東西,除了離線Web解決方案(如Gears)之外,沒有理由瀏覽器嵌入數據庫或硬性業務邏輯。 業務層對於我們依靠瀏覽器來處理它太重要了。數據存儲位於同一位置(對我來說),它必須保存在服務器上。 這種關注的分離在我日常的工作中,我認爲這些巨大的責任永遠不能委託給瀏覽器,只是太多的不安全性,不兼容性和錯誤問題。

  3. 服務器端在我說明的所有階段都很流暢,但對於數據傳輸格式,我更喜歡直接將HTML傳輸到瀏覽器或使用JSON來處理任何其他需要通過的結構化數據。對於輕量級客戶端來說,使用XML似乎有點冗長。如果您可以避免使用iframe,那麼在我看到的99.9%的案例中沒有理由使用它們。

作爲結論,你是學生,學習有趣的事情。如果你更喜歡在客戶端提高你的知識,那就去做吧,這裏有很多東西需要學習(HTML解析器,DOM和JS API,瀏覽器內部對我來說真的很有用)。

但是你必須知道在我工作過的企業中,網絡有兩種含義:溝通和對業務應用GUI的支持。我目前爲Web應用程序(Intranet)工作,我們是3個前端開發人員,他們在做PHP和JavaScript,而有20人在做服務器端Java。只是爲了讓你在專業的大型應用程序中使用GUI。

+0

真棒答案,我讀過的最有洞察力的作爲一名學生,將在未來兩年內進入該行業。我對瀏覽器被用作應用程序平臺很感興趣,因爲它似乎(編輯!)這將是一個毛茸茸的過程在公司環境中分配我的桌面應用程序,並且,我是Google變形金剛迷。我可以在使用Python學習和開發PHP,Javascript,AJAX和DOM的一半時間內使用Python來創建應用程序。很高興我花時間學習,但是!然而,從我有限的經驗來看,瀏覽器不會很快取代原生應用程序。 – 2010-08-05 03:18:48

+0

當然,瀏覽器不會取代桌面應用程序,它幾乎適用於所有行政gui(表單等)。對於較重的GUI,Java web應用程序也很棒 – Benoit 2010-08-07 16:01:36