javascript
JavaScript Ajax
AJAX即“Asynchronous Javascript And XML”(異步JavaScript和XML),是一種用于創建快速動態網頁的技術。
動態網頁:是指可以通過服務器語言結合數據庫隨時修改數據的網頁。
靜態網頁,隨著html代碼的生成,頁面的內容和顯示效果就基本上不會發生變化了——除非你修改頁面代碼。
AJAX = 異步 JavaScript和XML(標準通用標記語言的子集)。
AJAX 是與服務器交換數據并更新部分網頁的藝術,在不重新加載整個頁面的情況下。
AJAX 在瀏覽器與 Web 服務器之間使用異步數據傳輸(HTTP 請求),這樣就可使網頁從服務器請求少量的信息,而不是整個頁面。
AJAX 可使因特網應用程序更小、更快,更友好。
AJAX 是一種獨立于 Web 服務器軟件的瀏覽器技術。
AJAX 基于下列 Web 標準:
JavaScriptXMLHTMLCSS在 AJAX 中使用的 Web 標準已被良好定義,并被所有的主流瀏覽器支持。AJAX 應用程序獨立于瀏覽器和平臺。
Web 應用程序較桌面應用程序有諸多優勢;它們能夠涉及廣大的用戶,它們更易安裝及維護,也更易開發。
不過,因特網應用程序并不像傳統的桌面應用程序那樣完善且友好。
通過 AJAX,因特網應用程序可以變得更完善,更友好。
?
異步:是相對于同步而言的,我們學過的定時器也是異步的一種,也就是其他程序不需要等待定時器的代碼全部執行完畢以后才能執行代碼。因為定時器有可能是無限循環執行代碼的,如果等待定時器執行完畢那么其他的代碼將永遠無法運行。所以異步編程就是相對于其他代碼是獨立完成的。也就是上面所說的ajax是獨立于瀏覽器平臺的。
Tip:事件也是異步執行的,事件是發生某件事情后才會執行代碼的。
同步:我們之前所寫的代碼除了定時器和事件大部分都是同步執行的。也就是同一個代碼塊中都是從上到下執行的。
AJAX 工作原理
Ajax 核心對象XMLHttpRequest
var _hr=new window.XMLHttpRequest();
通過該實例化的對象向服務器
發出請求,等待服務器響應
服務器響應完成后客戶端再處理
服務器端響應的數據。
Ajax請求服務器的過程中有5個狀態
0:表示請求服務器之前
1:表示打開遠程服務器鏈接對應open方法
2:表示向服務器發送數據對應send方法
3:表示服務器響應過程中并未結束
4:表示服務器響應完成
var _hr=new window.XMLHttpRequest();//低版本的IE不兼容
創建兼容對象:
利用指針調用的函數統稱為回調函數;
保存內存地址的變量即指針。所以指針也就是個變量。
函數名是指向函數代碼塊的變量,所以我們可以稱函數名為指針。
Json表示一種數據格式。并非一種數據類型請牢記!!!
var _data={
“key0”:”value0”,
“key1”:”value1”
}//這種格式的數據統稱為json格式的數據。
json格式的字符串強制轉換成json格式的對象:
JSON.parse(_str);//推薦使用
window.eval(“(“+_str+”)”);
局部刷新表示網頁中的一部分內容改變,不會影響該網頁中其他地方的內容發生改變。
我們都聽過天氣預報:氣象臺美女總會這么說,北京地區局部有雨,局部是指的什么意思呢?當然不是指整個北京有雨。那么同樣在網頁中局部數據更新也是一個道理。
互聯網平臺一般分為前端工程師,服務器端開發工程師,這兩個職業是跟代碼開發有關的。那么在開發系統的過程中就分離出面向用戶的界面端,也就是我們俗稱的前端;
負載后臺數據處理,鏈接數據庫,運行在數據中心的電腦上的代碼程序稱之為服務器端所以無論從客觀還是主觀方面分析,web應用程序是分前端和后臺的。所以我們在開發過程中也是同樣遵循這個前后臺分離的規則,我們前端只開發HTML+CSS+JAVASCRIPT。
那么問題來了,那么遠在數據中心的電腦上的數據如何傳輸到客戶瀏覽器上呢?也就是如何來實現前后臺分離?
我們給出的答案依然是ajax。Javascript除了ajax對象也是無法跟服務器發生數據交互的。
什么叫委托?我們首先得了解這個東西
在日常的生活中有沒有拜托別人做過某些事情?
如我們還很幼稚的時候有沒有請同桌給某個女生送過小紙條。這個過程你是不是請求讓你同桌幫你做送小紙條的事情?
那么這就是委托:也就是說委托是請別人幫你完成送小紙條的任務。
編程中委托是一種編程的方式,也叫機制。
首先同源是指:同域名同協議同端口符合這三個條件的情況下才稱為同源。如果這三個條件有一個不符合條件都不能稱之為同源,那么也就是非同源。
那么同源策略是指什么?
同源策略是指在相同的域名,協議,端口下進行的一系列的數據操作所遵循的規則,(此規則由互聯網協議規定)。就好如同你要追求某個女生,那么就會討該女生歡心,那么這是不是套路呢?這叫一種策略,叫一種方法。
那么非同源策略就是指,編程中在不同源的情況下發生的進行的數據交互,統稱為非同源策略。也就是不同源的情況下你做到了某件事,是不是也發生了使用了套路?
比如美國人嫉妒中國,他們都知道中國造質量好,價格低。但是他們不在中國怎么辦,如果是我的話我可以找空姐幫我從中國帶,可不可以?這也是一種策略吧。那么javascript中的ajax怎么執行非同源策略呢?給大家介紹一個空姐:JSONP
Jsonp是javascript一種非同源數據交互的協議。那么簡單的說jsonp就是一種協議。
那么既然是協議,那么協議里面都有那些內容呢?
很簡單:
Jsonp規定非同源數據交互時候,服務器響應到客戶端的數據必須是可以執行的javascript代碼。
跨域:非同源數據交互就稱之為跨域!!!
那么換句簡單的話來講jsonp就是跨域協議。
跟JSON一毛錢關系也沒有!!
Web service是一個平臺獨立的,低耦合的,自包含的、基于可編程的web的應用程序,可使用開放的XML(標準通用標記語言下的一個子集)標準來描述、發布、發現、協調和配置這些應用程序,用于開發分布式的互操作的應用程序。
Web Service技術, 能使得運行在不同機器上的不同應用無須借助附加的、專門的第三方軟件或硬件, 就可相互交換數據或集成。依據Web Service規范實施的應用之間, 無論它們所使用的語言、 平臺或內部協議是什么, 都可以相互交換數據。Web Service是自描述、 自包含的可用網絡模塊, 可以執行具體的業務功能。Web Service也很容易部署, 因為它們基于一些常規的產業標準以及已有的一些技術,諸如標準通用標記語言下的子集XML、HTTP。Web Service減少了應用接口的花費。Web Service為整個企業甚至多個組織之間的業務流程的集成提供了一個通用機制
?
轉載于:https://blog.51cto.com/12883930/1923750
總結
以上是生活随笔為你收集整理的JavaScript Ajax的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Codeforces Round #36
- 下一篇: 《深入实践Spring Boot》一3.