javaEE 第五篇部落格----Applets & Ajax

來源:互聯網
上載者:User

標籤:傳統   bug   服務架構   web   字型   聲音   其他   ui設計   測試   

一 Applet
Applet是採用Java程式設計語言編寫的小應用程式,該程式可以包含在 HTML 標準通用標記語言 (SGML) 的一個應用)頁中,與在頁中包含映像的方式大致相同。 含有Applet的網頁的HTML檔案代碼中部帶有<applet> 和</applet>這樣一對標記,當支援Java的網路瀏覽器遇到這對標記時,就將下載相應的小應用程式代碼並在本機電腦上執行該Applet。1工作原理Java Applet 可以大大提高Web頁面的互動能力和動態執行能力。包含Applet的網頁被稱為Java-powered頁,可以稱其為Java支援的網頁。當Applet使用者訪問這樣的網頁時,Applet被下載到使用者的電腦上執行,但前提是使用者使用的是支援Java的網路瀏覽器。由於Applet是在使用者的電腦上執行的,所以它的執行速度不受網路頻寬或者Modem存取速度的限制,使用者可以更好地欣賞網頁上Applet產生的多媒體效果。在Java Applet中,可以實現圖形繪製,字型和顏色控制,動畫和聲音的插入,人機互動及網路交流等功能。 Applet還提供了名為抽象視窗工具箱(Abstract Window Toolkit, AWT)的視窗環境開發工具。 AWT利用使用者電腦的GUI元素,可以建立標準的圖形化使用者介面,如視窗、按鈕、捲軸等等。目前,在網路上有非常多的Applet範例來生動地展現這些功能,讀者可以去調閱相應的網頁以觀看它們的效果。Applet 小應用程式的實現主要依靠java.applet包中的Applet類。與一般的應用程式不同,Applet應用程式必須嵌入在HTML頁面中,才能得到解釋執行;同時Applet可以從Web頁面中獲得參數,並和Web頁面進行互動。Applet是一種Java的小程式,它通過使用該Applet的HTML檔案,由支援Java的網頁瀏覽器下載運行。也可以通過java開發工具的appletviewer來運行。Applet 程式離不開使用它的HTML檔案。這個HTML檔案中關於Applet的資訊至少應包含以下三點:1)位元組碼檔案名稱(編譯後的Java檔案,以.class為尾碼)2)位元組碼檔案的地址3)在網頁上顯示Applet的方式。一個HTML檔案增加Applet有關的內容只是使網頁更加富有生氣,如添加聲音、動畫等這些迷人的特徵,它並不會改變HTML檔案中與Applet無關的元素。 2安全性限制為了防止這樣的問題出現,在預設的情況下,大多數瀏覽器在Applet安全方面受到諸多的限制,幾乎不能對系統進行任何“讀”或“寫”的操作:1. 不允許Applet訪問本地檔案系統2. Applet不能執行任何本機電腦上的程式3. 不允許Applet嘗試開啟除提供Applet的伺服器之外的任何系統的Socket4. 不允許Applet訪問使用者名稱、電子郵件地址等與本地系統有關的資訊5. 對於Applet而言,Java環境中的某些標準系統屬性是唯讀6. Applet不能建立或裝載Applet的機器的網路連接7. Applet不能充當網路伺服器,監聽或接收來自遠程系統的串連請求8. 不允許Applet裝載動態庫或定義本地方法調用9. Applet不能操縱不在自己線程組中的任何線程10. Applet不能關閉JVM。 3開發步驟Applet程式開發主要步驟如下:1)選用EDIT或Windows Notepad等工具作為編輯器建立Java Applet來源程式。2)把Applet的來源程式轉換為位元組碼檔案。3)編製使用class 的HTML檔案。在HTML檔案內放入必要的<OBJECT>語句。 

二、Ajax

1、

基本介紹:Ajax源自描述從基於Web的應用到基於資料的應用的轉換。在基於資料的應用中,使用者需求的資料如連絡人清單,可以從獨立於實際網頁的服務端取得並且可以被動態地寫入網頁中,給緩慢的Web應用體驗著色使之像案頭應用一樣。

Ajax的核心是JavaScript對象XmlHttpRequest。該對象在Internet Explorer 5中首次引入,它是一種支援非同步請求的技術。簡而言之,XmlHttpRequest使您可以使用JavaScript向伺服器提出請求並處理響應,而不阻塞使用者。

Ajax對伺服器沒什麼要求,可以為Java EE應用程式,.NET應用程式和其他類型的應用程式服務。可以通過Ajax,可以編寫javascript代碼來改進HTML,建立出豐富的互動性使用者體驗。

2、開發模式:

許多重要的技術和AJAX開發模式可以從現有的知識中擷取。例如,在一個發送請求到服務端的應用中,必須包含請求順序、優先順序、逾時響應、錯誤處理及回調,其中許多元素已經在Web服務中包含了,就像現在的SOA。AJAX開發人員擁有一個完整的系統架構知識。同時,隨著技術的成熟還會有許多地方需要改進,特別是UI部分的易用性。

AJAX開發與傳統的CS開發有很大的不同。這些不同引入了新的編程問題,最大的問題在於易用性。由於AJAX依賴瀏覽器的JavaScript和XML,瀏覽器的相容性和支援的標準也變得和JavaScript的運行時效能一樣重要了。這些問題中的大部分來源於瀏覽器、伺服器和技術的組合,因此必須理解如何才能最好的使用這些技術。

綜合各種變化的技術和強耦合的客戶服務端環境,AJAX提出了一種新的開發方式。AJAX開發人員必須理解傳統的MVC架構,這限制了應用程式層次之間的邊界。同時,開發人員還需要考慮CS環境的外部和使用AJAX技術來重定型MVC邊界。最重要的是,AJAX開發人員必須禁止以頁面集合的方式來考慮Web應用而需要將其認為是單個頁面。一旦UI設計與服務架構之間的範圍被嚴格區分開來後,開發人員就需要更新和變化的技術集合了。

3:、優缺點:

優點:

傳統的web應用允許使用者填寫表單(form),當提交表單時就向web伺服器發送一個請求。伺服器接收並處理傳來的表單,然後返回一個新的網頁。這個做法浪費了許多頻寬,因為在前後兩個頁面中的大部分HTML代碼往往是相同的。由於每次應用的互動都需要向伺服器發送請求,應用的回應時間就依賴於伺服器的回應時間。這導致了使用者介面的響應比本地應用慢得多。

與此不同,AJAX應用可以僅向伺服器發送並取回必需的資料,它使用SOAP或其它一些基於XML的web service介面,並在用戶端採用JavaScript處理來自伺服器的響應。因此在伺服器和瀏覽器之間交換的資料大量減少,結果我們就能看到響應更快的應用。同時很多的處理工作可以在發出請求的用戶端機器上完成,所以Web伺服器的處理時間也減少了。

使用Ajax的最大優點,就是能在不更新整個頁面的前提下維護資料。這使得Web應用程式更為迅捷地回應使用者動作,並避免了在網路上發送那些沒有改變過的資訊。

Ajax不需要任何瀏覽器外掛程式,但需要使用者允許JavaScript在瀏覽器上執行。就像DHTML應用程式那樣,Ajax應用程式必須在眾多不同的瀏覽器和平台上經過嚴格的測試。隨著Ajax的成熟,一些簡化Ajax使用方法的程式庫也相繼問世。同樣,也出現了另一種輔助程式設計的技術,為那些不支援JavaScript的使用者提供替代功能。

缺點:

對應用Ajax最主要的批評就是,它可能破壞瀏覽器後退按鈕的正常行為。在動態更新頁面的情況下,使用者無法回到前一個頁面狀態,這是因為瀏覽器僅能記下記錄中的靜態頁面。一個被完整讀入的頁面與一個已經被動態修改過的頁面之間的差別非常微妙;使用者通常都希望單擊後退按鈕,就能夠取消他們的前一次操作,但是在Ajax應用程式中,卻無法這樣做。不過開發人員已想出了種種辦法來解決這個問題,當中大多數都是在使用者單擊後退按鈕訪問記錄時,通過建立或使用一個隱藏的IFRAME來重現頁面上的變更。(例如,當使用者在Google Maps中單擊後退時,它在一個隱藏的IFRAME中進行搜尋,然後將搜尋結果反映到Ajax元素上,以便將應用程式狀態恢複到當時的狀態。)

一個相關的觀點認為,使用動態網頁面更新使得使用者難於將某個特定的狀態儲存到收藏夾中。該問題的解決方案也已出現,大部分都使用URL片斷標識符(通常被稱為錨點,即URL中#後面的部分)來保持跟蹤,允許使用者回到指定的某個應用程式狀態。(許多瀏覽器允許JavaScript動態更新錨點,這使得Ajax應用程式能夠在更新顯示內容的同時更新錨點。)這些解決方案也同時解決了許多關於不支援後退按鈕的爭論。

進行Ajax開發時,網路延遲——即使用者發出請求到伺服器發出響應之間的間隔——需要謹慎考慮。不給予使用者明確的回應 ,沒有恰當的預讀資料 ,或者對XMLHttpRequest的不恰當處理,都會使使用者感到延遲,這是使用者不欲看到的,也是他們無法理解的。通常的解決方案是,使用一個可視化的組件來告訴使用者系統進行中後台操作並且正在讀取資料和內容。

一些手持功能(如手機、PDA等)現在還不能很好的支援Ajax;

用JavaScript作的Ajax引擎,JavaScript的相容性和DeBug都是讓人頭痛的事;

Ajax的無重新整理重載,由於頁面的變化沒有重新整理重載那麼明顯,所以容易給使用者帶來困擾――使用者不太清楚現在的資料是新的還是已經更新過的;現有的解決有:在相關位置提示、資料更新的地區設計得比較明顯、資料更新後給使用者提示等;

 

javaEE 第五篇部落格----Applets & Ajax

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.