IT兄弟連 JavaWeb教程 AJAX定義以及解決的問題

2019獨角獸企業重金招聘Python工程師標準>>> hot3.png

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

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

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

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

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

經典Web應用程序模型的工作方式如下:

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

6dbbc3d724cf451aba22518b50053d50.png

圖1? 傳統Web應用與使用AJAX的Web應用

?

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

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

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

66af218a6fb3466881a22a4358af58d4.png

圖2? 傳統Web應用運行流程

?

5a83d22971a248bebb4683ba7b445f70.png

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

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

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/279435.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/279435.shtml
英文地址,請注明出處:http://en.pswp.cn/news/279435.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

echo和@echo_如何在Echo Show和Echo Spot上切換到24小時時鐘

echo和echoIf you prefer the 24-hour clock format instead of the usual 12-hour format, Amazon recently (and quietly) added the ability to switch between the two on the Echo Show and Echo Spot. 如果您希望使用24小時制而不是通常的12小時制,那么Amazon…

springMVC--XML解析

一 springMVC 入口 web.xml; DispatcherServlet二 初始化過程 1.尋找init(); 查看DispatcherServlet時候時,繼承自servlet,肯定有初始化方法,DispatcherServlet繼承自FrameworkServlet FrameworkServlet繼承自HttpServletBean HttpServletBean繼承自Http…

Vim 4 常用插件

Vim 系列教程目錄: Vim 1 基本使用Vim 2 高級用法Vim 3 vimrcVim 4 常用插件Vim 5 其他編輯器的 Vim 插件Vim 插件網站 Vim 之所以強大, 有個很大的原因就是他有豐富的插件. 插件可以極大地增強 Vim 的功能. 那么去哪里下載插件呢? 插件怎么安裝和管理呢, 聽我慢慢道來. 先說到…

[Windows編程] 通過GetModuleHandleEx 得到函數調用者所在的DLL/EXE 原創陳本峰2009-02

在有些情況下需要得到函數調用者的模塊名字。比如你想限制你的某個函數只能被自己某個特定的DLL調用。 或者比如在異常處理中你想了解是那個DLL/EXE拋出了異常。API函數_ReturnAddress 和GetModuleHandleEx 函數可以幫助我們達到這個目的。以下代碼演示它們的用法:v…

生信入門-愛課程上的華中農業大學

1.生物大分子序列分析 2.主要技術 3.生物信息學的應用 4.應用2 轉載于:https://www.cnblogs.com/BlueBlueSea/p/9610313.html

pc端文本_使用即將推出的Windows功能從PC發送文本

pc端文本Windows/Android/iPhone: Send and receive SMS messages on your PC, and access all the files on your phone without taking it out of your pocket. Windows / Android / iPhone:在PC上發送和接收SMS消息,并訪問手機上的所有文件&#xff0…

日常工作用到的正則

1、手機號碼加*"13422222222".replace(/(\d{3})\d{4}(\d{4})/, $1****$2);2、隱藏銀行卡號"1111111111111111111".replace(/^(\d{4})\d(\d{4})$/, **** **** **** $2); 1111111111111111.replace(/.(?.)/g, *);3、遇見大寫字母改為"_"component…

非常詳細的Exchange 功能路線圖

非常詳細的Exchange 功能路線圖 此路線圖可幫助您熟悉 Microsoft Exchange Server 2010 中的所有功能。第一部分列出了可通過 Exchange 管理控制臺 (EMC) 或 Exchange 命令行管理程序管理的所有功能。該部分還說明如何在 EMC 中導航至功能,并提供指向相應管理主題的…

String類常用方法

定義方法類型描述public String(char[] value)構造直接將一個字符數組變為一個字符串public String(char[] value,int offset,int count)構造將一個指定范圍的字符數組變為字符串public String(byte[] bytes)構造將一個byte數組全部變為字符串public String(byte[],bytes,int o…

python基礎一 day6 文件操作

讀寫只會進行兩步, r模式下寫讀 seek是按字節去找的 for line in f: for循環是一行一行的讀取出來 strip默認去空格和換行符 空格、制表符、換行符、回車、換頁垂直制表符和換行符稱為 “空白字符” for in 一個不可變數據類型,比如字符串,先…

靜態路由默認路由的配置

靜態路由實驗 負載均衡的一點是個人理解,有不正確之處歡迎批評指正。 R1配置: s0/0/0口:193.1.1.9/30(本地) next-hop 193.1.1.10/30 point-to-point link F0/0設置子接口:F0/0.1 172.17.115.1/24 VLAN1 F0/0.5 172.17.110…

r中匯率市場_如何在Word 2013表中匯總行和列

r中匯率市場If you’re working in Word and you need to total values in a table, you can do so without having to enter the data into Excel and then copy and paste it into Word. Word can do simple calculations such as summing, multiplying, and averaging. 如果…

solidity事件詳解

很多同學對Solidity 中的Event有疑問,這篇文章就來詳細的看看Solidity 中Event到底有什么用? 寫在前面 Solidity 是以太坊智能合約編程語言,閱讀本文前,你應該對以太坊、智能合約有所了解,如果你還不了解,建…

敏捷開發

敏捷開發是1990年逐漸引起人們廣泛關注的新型軟件開發方式,它是具有應對快速變化需求的軟件開發能力。相對于非敏捷開發,它是一種以客戶需求為核心,持續迭代,循序漸進的開發方式,敏捷絕非是一種特定的開發方式,而是一種…

MpAndroidChart源碼修改之餅狀圖添加標志線

由于項目需要,需要改MpandroidChart源碼,下面,先看下效果圖:效果圖效果很簡單,但是由于所選依賴庫沒提供相關方法,所以就需要重寫源碼了.這條紅色的標志線其實就是那個影廳的均值嘛,這條線看著是不是和圖表中的連接線很像呢,那把連接線稍加改造不就可以了嗎?下面,先看下此依賴…

數據同步云端本地_如何從云端刪除Windows 8的同步數據

數據同步云端本地The ability to sync data and settings between computers running Windows 8 is great, but it does mean that your information – possibly personal – is stored in the cloud. If you have changed your mind about syncing and want to remove your d…

前端roadmap

轉載于:https://www.cnblogs.com/cleverle/p/9615061.html

mysql 8+ 忘記root密碼 解決方案

在安裝完數據庫后,由于自己不小心直接關閉了安裝窗口,或者長時間沒有使用root用戶登錄系統,導致忘記了root密碼,這時就需要重置MySQL的root密碼。當然,最簡單方式自然是刪除數據庫的data目錄,然后重新安裝數…

安全領域應該關注的網站

http://www.freebuf.com/ https://www.seceye.cn/ https://zhuanlan.zhihu.com/c_118578260 https://www.easyaq.com/samesource/360.shtml http://bobao.360.cn/index/index https://www.sec-wiki.com/event

國內是否可以安裝alexa_Alexa可以聽到您無法聽到的命令,哪些黑客可以利用

國內是否可以安裝alexaYour smart speaker can hear sounds that humans can’t, meaning attackers could hypothetically trigger a command without you noticing. It’s happening in labs right now. 您的智能揚聲器可以聽到人類聽不到的聲音,這意味著攻擊者可…