日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

IT兄弟连 JavaWeb教程 AJAX定义以及解决的问题

發(fā)布時間:2023/12/6 java 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 IT兄弟连 JavaWeb教程 AJAX定义以及解决的问题 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

2019獨角獸企業(yè)重金招聘Python工程師標準>>>

Ajax是"Asynchronous JavaScript And XML"的縮寫(即:異步的JavaScript和XML),是一種實現(xiàn)無頁面刷新獲取服務器數(shù)據(jù)的混合技術,Ajax這個概念的最早提出者是Jesse James Garrett。我們知道,互聯(lián)網(wǎng)最主要的功能在于"資源交換",當初發(fā)明互聯(lián)網(wǎng)的科學家們也是基于這個動機。雖然在互聯(lián)網(wǎng)中"資源交換"的主體都是計算機。但為了方便交流,我們通常將獲取資源的一方稱為客戶端(主要的工具是瀏覽器),而將派發(fā)資源的一方稱為服務端。

在AJAX技術出現(xiàn)之前,如果瀏覽器需要從服務器請求資源,其交互模式為"客戶端發(fā)出請求 -> 服務端接收請求并返回相應HTML文檔 -> 頁面刷新,客戶端加載新的HTML文檔"。確實,這種交互模式十分簡潔明了,而且非常符合人的直覺,對于那時游走于互聯(lián)網(wǎng)中的極客而言,也確實夠用了。但是隨著時代的進步,互聯(lián)網(wǎng)漸漸不只是極客們的娛樂場,越來越多商業(yè)化網(wǎng)站的出現(xiàn),使互聯(lián)網(wǎng)不再局限于滿足人們"資源交換"的需求,人們開始期待能夠在互聯(lián)網(wǎng)中獲得更好的"使用體驗",而隨著用戶點擊不斷刷新頁面的交互方式顯然很難討人喜歡。

AJAX技術的問世,不僅通過阻止瀏覽器接受響應時刷新頁面提升了互聯(lián)網(wǎng)用戶的使用體驗,還使開發(fā)者能夠以更加微觀的視角重新思考互聯(lián)網(wǎng)應用的構建,從此,開發(fā)者將在"數(shù)據(jù)"層面而不是"資源"層面以更高的自由 度構建網(wǎng)站和Web應用。

有沒有辦法在頁面數(shù)據(jù)變動時,只向服務器請求新的數(shù)據(jù),并且在阻止頁面刷新的情況下,動態(tài)的替換頁面中展示的數(shù)據(jù)呢? -- 答案正是"AJAX"。

再試想這樣一種情景,當用戶點擊頁面中的某個按鈕向服務器發(fā)送請求時,頁面本質(zhì)上只是一些數(shù)據(jù)發(fā)生了變化,而此時服務器卻要將重繪的整個頁面再返回給瀏覽器加載,這顯然有悖于程序員的"DRY"原則,而且明明只是一些數(shù)據(jù)的變化卻迫使服務器要返回整個HTML文檔,這本身也會給網(wǎng)絡帶寬帶來不必要的開銷。

經(jīng)典Web應用程序模型的工作方式如下:

用戶界面中的大多數(shù)用戶操作都會將HTTP請求觸發(fā)返回Web服務器。服務器進行一些處理-檢索數(shù)據(jù)、處理數(shù)字、與傳統(tǒng)系統(tǒng)對話,然后向客戶端返回HTML頁面。這種方法具有很多技術意義,但是它并不能為用戶帶來出色的體驗。雖然服務器正在做它應該做的事情,但是在服務器工作時用戶只能等待它完成。

圖1? 傳統(tǒng)Web應用與使用AJAX的Web應用

?

顯然,如果我們重新設計Web應用程序,我們就不會讓用戶等待。我們通過在用戶和服務器之間引入中介(Ajax引擎),Ajax應用程序消除了Web上交互的啟動-停止-啟動-停止性質(zhì),瀏覽器不是加載網(wǎng)頁,而是在會話開始時加載一個Ajax引擎-用JavaScript編寫。該引擎負責呈現(xiàn)用戶看到的界面并代表用戶與服務器通信。Ajax引擎允許用戶與應用程序的交互異步進行-與服務器的通信無關。因此,用戶就不會在盯著空白的瀏覽器窗口和等待載入的圖標或者等待服務器處理結束了。

同步的過程只有允許有一個進程在執(zhí)行,比如服務端在處理數(shù)據(jù)的時候,那么客戶端不能進行任何操作,處于一個阻塞的一個狀態(tài)。

使用ajax的程序,服務端在處理數(shù)據(jù)的時候,客戶端瀏覽器依然可以執(zhí)行其他的操作,并沒有阻塞狀態(tài),也就是一個時間段內(nèi)可以有多個進程在執(zhí)行。

圖2? 傳統(tǒng)Web應用運行流程

?

圖3? 使用AJAX的Web應用運行流程

轉載于:https://my.oschina.net/u/4125915/blog/3057589

總結

以上是生活随笔為你收集整理的IT兄弟连 JavaWeb教程 AJAX定义以及解决的问题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。