java第五週

AJAX的工做原理及其工做原理:前端

1.定義及工做原理

  AJAX = Asynchronous JavaScript and XML(異步的 JavaScript 和 XML)。AJAX 不是新的編程語言,而是一種使用現有標準的新方法。AJAX 不須要任何瀏覽器插件,但須要用戶容許JavaScript在瀏覽器上執行。java

  AJAX 是一種用於建立快速動態網頁的技術。經過在後臺與服務器進行少許數據交換,AJAX 可使網頁實現異步更新。這意味着能夠在不從新加載整個網頁的狀況下,對網頁的某部分進行更新。傳統的網頁(不使用 AJAX)若是須要更新內容,必需重載整個網頁面。有不少使用 AJAX 的應用程序案例:新浪微博、Google 地圖、開心網等等。編程

2.優缺點

 (1).AJAX的優勢

  • 無刷新更新數據。AJAX最大優勢就是能在不刷新整個頁面的前提下與服務器通訊維護數據。這使得Web應用程序更爲迅捷地響應用戶交互,並避免了在網絡上發送那些沒有改變的信息,減小用戶等待時間,帶來很是好的用戶體驗。
  • 異步與服務器通訊。AJAX使用異步方式與服務器通訊,不須要打斷用戶的操做,具備更加迅速的響應能力。優化了Browser和Server之間的溝通,減小沒必要要的數據傳輸、時間及下降網絡上數據流量。
  • 前端和後端負載平衡。AJAX能夠把之前一些服務器負擔的工做轉嫁到客戶端,利用客戶端閒置的能力來處理,減輕服務器和帶寬的負擔,節約空間和寬帶租用成本。而且減輕服務器的負擔,AJAX的原則是「按需取數據」,能夠最大程度的減小冗餘請求和響應對服務器形成的負擔,提高站點性能。
  • 基於標準被普遍支持。AJAX基於標準化的並被普遍支持的技術,不須要下載瀏覽器插件或者小程序,但須要客戶容許JavaScript在瀏覽器上執行。隨着Ajax的成熟,一些簡化Ajax使用方法的程序庫也相繼問世。一樣,也出現了另外一種輔助程序設計的技術,爲那些不支持JavaScript的用戶提供替代功能。
  • 界面與應用分離。Ajax使WEB中的界面與應用分離(也能夠說是數據與呈現分離),有利於分工合做、減小非技術人員對頁面的修改形成的WEB應用程序錯誤、提升效率、也更加適用於如今的發佈系統。

(2).AJAX的缺點

  • AJAX幹掉了Back和History功能,即對瀏覽器機制的破壞。在動態更新頁面的狀況下,用戶沒法回到前一個頁面狀態,由於瀏覽器僅能記憶歷史記錄中的靜態頁面。一個被完整讀入的頁面與一個已經被動態修改過的頁面之間的差異很是微妙;用戶一般會但願單擊後退按鈕可以取消他們的前一次操做,可是在Ajax應用程序中,這將沒法實現。
  • AJAX的安全問題。AJAX技術給用戶帶來很好的用戶體驗的同時也對IT企業帶來了新的安全威脅,Ajax技術就如同對企業數據創建了一個直接通道。這使得開發者在不經意間會暴露比之前更多的數據和服務器邏輯。Ajax的邏輯能夠對客戶端的安全掃描技術隱藏起來,容許黑客從遠端服務器上創建新的攻擊。還有Ajax也難以免一些已知的安全弱點,諸如跨站點腳步攻擊、SQL注入攻擊和基於Credentials的安全漏洞等等。

對搜索引擎支持較弱。小程序

    對搜索引擎的支持比較弱。若是使用不當,AJAX會增大網絡數據的流量,從而下降整個系統的性能。
  • 破壞程序的異常處理機制。至少從目前看來,像Ajax.dll,Ajaxpro.dll這些Ajax框架是會破壞程序的異常機制的。關於這個問題,曾在開發過程當中遇到過,可是查了一下網上幾乎沒有相關的介紹。後來作了一次試驗,分別採用Ajax和傳統的form提交的模式來刪除一條數據……給咱們的調試帶來了很大的困難。
  • 違背URL和資源定位的初衷。例如,我給你一個URL地址,若是採用了Ajax技術,也許你在該URL地址下面看到的和我在這個URL地址下看到的內容是不一樣的。這個和資源定位的初衷是相背離的。
  • AJAX不能很好支持移動設備。一些手持設備(如手機、PDA等)如今還不能很好的支持Ajax,好比說咱們在手機的瀏覽器上打開採用Ajax技術的網站時,它目前是不支持的。
  • 客戶端過肥,太多客戶端代碼形成開發上的成本。編寫複雜、容易出錯 ;冗餘代碼比較多(層層包含js文件是AJAX的通病,再加上以往的不少服務端代碼如今放到了客戶端);破壞了Web的原有標準。
  • Applet組件

    3.定義

      Applet是採用Java編程語言編寫的小應用程序,該程序能夠包含在  HTML 標準通用標記語言 的一個應用)頁中,與在頁中包含圖像的方式大體相同。含有Applet的網頁的 HTML文件代碼中部帶有<applet> 和</applet>這樣一對標記,當支持Java的網絡瀏覽器遇到這對標記時,就將下載相應的小應用程序代碼並在本地計算機上執行該Applet。

    4.工做原理

      Java Applet 是用Java 語言編寫的一些小應用程序,這些程序是直接嵌入到頁面中,由支持Java的瀏覽器(IE 或 Netscape)解釋執行可以產生特殊效果的程序。它能夠大大提升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的信息至少應包含如下三點:app

    • 字節碼文件名(編譯後的Java文件,以.class爲後綴)
    • 字節碼文件的地址
    • 在網頁上顯示Applet的方式。

      一個HTML文件增長Applet有關的內容只是使網頁更加富有生氣,如添加聲音、動畫等這些吸引人的特徵,它並不會改變HTML文件中與Applet無關的元素。

相關文章
相關標籤/搜索