<delect id="sj01t"></delect>
  1. <em id="sj01t"><label id="sj01t"></label></em>
  2. <div id="sj01t"></div>
    1. <em id="sj01t"></em>

            <div id="sj01t"></div>

            平凡的清潔工作文

            時間:2025-08-14 15:37:17 寫人 我要投稿

            平凡的清潔工作文4篇

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

            平凡的清潔工作文4篇

              在創建Web站點時,在客戶端執行屏幕更新為用戶提供了很大的靈活性。下面是使用Ajax可以完成的功能:

              * 動態更新購物車的物品總數,無需用戶單擊Update并等待服務器重新發送整個頁面。

              * 提升站點的性能,這是通過減少從服務器下載的數據量而實現的。例如,在Amazon的購物車頁面,當更新籃子中的一項物品的數量時,會重新載入整個頁面,這必須下載32K的數據。如果使用Ajax計算新的總量,服務器只會返回新的總量值,因此所需的帶寬僅為原來的百分之一。

              * 消除了每次用戶輸入時的頁面刷新。例如,在Ajax中,如果用戶在分頁列表上單擊Next,則服務器數據只刷新列表而不是整個頁面。

              * 直接編輯表格數據,而不是要求用戶導航到新的頁面來編輯數據。對于Ajax,當用戶單擊Edit時,可以將靜態表格刷新為內容可編輯的表格。用戶單擊Done之后,就可以發出一個Ajax請求來更新服務器,并刷新表格,使其包含靜態、只讀的數據。

              一切皆有可能!但愿它能夠激發您開始開發自己的基于Ajax的站點。然而,在開始之前,讓我們介紹一個現有的Web站點,它遵循傳統的提交/等待/重新顯示的范例,我們還將討論Ajax如何提升用戶體驗。

              Ajax可用于那些場景?——一個例子:MSN Money頁面

              前幾天,在瀏覽MSN Money頁面的時候,有一篇關于房地產投資的文章引起了我的好奇心。我決定使用站點的“Rate this article”(評價本文)功能,鼓勵其他的用戶花一點時間來閱讀這篇文章。在我單擊vote按鈕并等待了一會兒之后,整個頁面被刷新,在原來投票問題所在的地方出現了一個漂亮的感謝畫面。

              而Ajax能夠使用戶的體驗更加愉快,它可以提供響應更加靈敏的UI,并消除頁面刷新所帶來的閃爍。目前,由于要刷新整個頁面,需要傳送大量的數據,因為必須重新發送整個頁面。如果使用Ajax,服務器可以返回一個包含了感謝信息的500字節的消息,而不是發送26,813字節的消息來刷新整個頁面。即使使用的是高速Internet,傳送26K和1/2K的差別也非常大。同樣重要的是,只需要刷新與投票相關的一小節,而不是刷新整個屏幕。

              讓我們利用Ajax實現自己的基本投票系統。

              原始的Ajax:直接使用XmlHttpRequest

              如上所述,Ajax的核心是JavaScript對象XmlHttpRequest。下面的示例文章評價系統將帶您熟悉Ajax的底層基本知識:/pic/ajax-demo/raw-ajax.html。注:如果您已經在本地WebLogic容器中安裝了ajax-demo.war,可以導航到/pic/ajax-demo/raw-ajax.html,

              瀏覽應用程序,參與投票,并親眼看它如何運轉。熟悉了該應用程序之后,繼續閱讀,進一步了解其工作原理細節。

              首先,您擁有一些簡單的定位點標記,它連接到一個JavaScriptcastVote(rank)函數。

              function castVote(rank) {

              var url = “/ajax-demo/static-article-ranking.html”;

              var callback = processAjaxResponse;

              executeXhr(callback, url);

              }

              該函數為您想要與之通信的服務器資源創建一個URL并調用內部函數executeXhr,提供一個回調JavaScript函數,一旦服務器響應可用,該函數就被執行。由于我希望它運行在一個簡單的Apache環境中,“cast vote URL”只是一個簡單的HTML頁面。在實際情況中,被調用的URL將記錄票數并動態地呈現包含投票總數的響應。

              下一步是發出一個XmlHttpRequest請求:

              function executeXhr(callback, url) {

              /pic/p>

              if (window.XMLHttpRequest) {

              req = new XMLHttpRequest();

              req.onreadystatechange = callback;

              req.open(“GET”, url, true);

              req.send(null);

              } /pic/Windows ActiveX version

              else if (window.ActiveXObject) {

              req = new ActiveXObject(“Microsoft.XMLHTTP”);

              if (req) {

              req.onreadystatechange = callback;

              req.open(“GET”, url, true);

              req.send();

              }

              }

              }

              如您所見,執行一個XmlHttpRequest并不簡單,但非常直觀。和平常一樣,在JavaScript領域,大部分的工作量都花在確保瀏覽器兼容方面。在這種情況下,首先要確定XmlHttpRequest是否可用。如果不能用,很可能要使用Internet Explorer,這樣就要使用所提供的ActiveX實現。

              executeXhr()方法中最關鍵的部分是這兩行:

              req.onreadystatechange = callback;

              req.open(“GET”, url, true);

              第一行定義了JavaScript回調函數,您希望一旦響應就緒它就自動執行,而req.open()方法中所指定的“true”標志說明您想要異步執行該請求。

              一旦服務器處理完XmlHttpRequest并返回給瀏覽器,使用req.onreadystatechange指派所設置的回調方法將被自動調用。

              function processAjaxResponse() {

              /pic/p>

              if (req.readyState == 4) {

              /pic/p>

              if (req.status == 200) {

              502 502′votes’).innerHTML = req.responseText;

              } else {

              alert(“There was a problem retrieving the XML data:

              ” +

              req.statusText);

              }

              }

              }

              該代碼相當簡潔,并且使用了幾個幻數,這使得難以一下子看出發生了什么。為了弄清楚這一點,下面的表格(引用自 /pic/internet/webcontent/xmlhttpreq.html)列舉了常用的 XmlHttpRequest對象屬性。

              屬性

              描述

              onreadystatechange

              每次狀態改變所觸發事件的事件處理程序

              readyState

              對象狀態值:

              * 0 = 未初始化(uninitialized)

              * 1 = 正在加載(loading)

              * 2 = 加載完畢(loaded)

              * 3 = 交互(interactive)

              * 4 = 完成(complete)

              responseText

              從服務器進程返回的數據的字符串形式

              responseXML

              從服務器進程返回的DOM兼容的文檔數據對象

              status

              從服務器返回的數字代碼,比如404(未找到)或200(就緒)

              statusText

              伴隨狀態碼的字符串信息

              現在processVoteResponse()函數開始顯示出其意義了。它首先檢查XmlHttpRequest 的整體狀態以保證它已經完成(readyStatus == 4),然后根據服務器的設定詢問請求狀態。如果一切正常(status == 200),就使用innerHTML屬性重寫DOM的“votes”節點的內容。

              既然您親眼看到了XmlHttpRequest對象是如何工作的,就讓我們利用一個旨在簡化JavaScript與Java應用程序之間的異步通信的框架來對具體的細節進行抽象。

              Ajax: DWR方式

              按照與文章評價系統相同的流程,我們將使用Direct Web Remoting(DWR)框架實現同樣的功能。

              假定文章和投票結果存儲在一個數據庫中,使用某種對象/關系映射技術來完成抽取工作。為了部署起來盡可能地簡單,我們不會使用數據庫進行持久性存儲。此外,為使應用程序盡可能通用,也不使用Web框架。相反,應用程序將從一個靜態HTML文件開始,可以認為它由服務器動態地呈現。除了這些簡化措施,應用程序還應該使用Spring Framework關聯一切,以便輕松看出如何在一個“真實的”應用程序中使用DWR。

              現在應該下載示例應用程序并熟悉它。該應用程序被壓縮為標準的WAR文件,因此您可以把它放置到任何一個Web容器中——無需進行配置。部署完畢之后,就可以導航到/pic/ajax_demo/dwr-ajax.html來運行程序。

              可以查看HTML源代碼,了解它如何工作。給人印象最深的是,代碼如此簡單——所有與服務器的交互都隱藏在 JavaScript對象ajaxSampleSvc的后面。更加令人驚訝的是,ajaxSampleSvc服務不是由手工編寫而是完全自動生成的!讓我們繼續,看看這是如何做到的。

              引入DWR

              如同在“原始的Ajax”一節所演示的那樣,直接使用XmlHttpRequest創建異步請求非常麻煩。不僅JavaScript代碼冗長,而且必須考慮服務器端為定位Ajax請求到適當的服務所需做的工作,并將結果封送到瀏覽器。

              設計DWR的目的是要處理將Web頁面安裝到后端服務上所需的所有信息管道。它是一個Java框架,可以很輕松地將它插入到Web應用程序中,以便 JavaScript代碼可以調用服務器上的服務。它甚至直接與Spring Framework集成,從而允許用戶直接向Web客戶機公開bean。

              DWR真正的巧妙之處是,在用戶配置了要向客戶機公開的服務之后,它使用反射來生成JavaScript對象,以便 Web頁面能夠使用這些對象來訪問該服務。然后Web頁面只需接合到生成的JavaScript對象,就像它們是直接使用服務一樣;DWR無縫地處理所有有關Ajax和請求定位的瑣碎細節。

            【平凡的清潔工作文】相關文章:

            平凡清潔工的作文(精選58篇)10-03

            描寫平凡的清潔工作文(精選22篇)01-22

            清潔工并不平凡700字作文(精選20篇)07-18

            清潔工并不平凡初三作文900字(通用30篇)04-17

            平凡的夜晚不平凡作文01-08

            感謝清潔工的作文05-29

            清潔工奉獻作文01-21

            感謝清潔工作文12-18

            清潔工阿姨作文04-20

            清潔工掃雪的作文07-12

            <delect id="sj01t"></delect>
            1. <em id="sj01t"><label id="sj01t"></label></em>
            2. <div id="sj01t"></div>
              1. <em id="sj01t"></em>

                      <div id="sj01t"></div>
                      黄色视频在线观看