Ajax工作原理

轉(zhuǎn)載地址:http://www.cnblogs.com/mingmingruyuedlut/archive/2011/10/18/2216553.html
 在寫這篇文章之前,曾經(jīng)寫過一篇關(guān)于AJAX技術(shù)的隨筆,不過涉及到的方面很窄,對AJAX技術(shù)的背景、原理、優(yōu)缺點(diǎn)等各個方面都很少涉及null。這次寫這篇文章的背景是因?yàn)楣拘枰獙?nèi)部程序員做一個培訓(xùn)。項(xiàng)目經(jīng)理找到了我,并且征詢我培訓(xùn)的主題,考慮到之前Javascript、CSS等WEB開發(fā)技術(shù)都已經(jīng)講解過了,所以決定針對AJAX這一塊做一個比較系統(tǒng)的培訓(xùn),所以這篇文章實(shí)際上是一個培訓(xùn)的材料。
在這篇文章中,我將從10個方面來對AJAX技術(shù)進(jìn)行系統(tǒng)的講解。

1、ajax技術(shù)的背景

不可否認(rèn),ajax技術(shù)的流行得益于google的大力推廣,正是由于google earth、google suggest以及gmail等對ajax技術(shù)的廣泛應(yīng)用,催生了ajax的流行。而這也讓微軟感到無比的尷尬,因?yàn)樵缭?7年,微軟便已經(jīng)發(fā)明了ajax中的關(guān)鍵技術(shù),并且在99年IE5推出之時,它便開始支持XmlHttpRequest對象,并且微軟之前已經(jīng)開始在它的一些產(chǎn)品中應(yīng)用ajax,比如說MSDN網(wǎng)站菜單中的一些應(yīng)用。遺憾的是,不知道出于什么想法,當(dāng)時微軟發(fā)明了ajax的核心技術(shù)之后,并沒有看到它的潛力而加以發(fā)展和推廣,而是將它擱置起來。對于這一點(diǎn)來說,我個人是覺得非常奇怪的,因?yàn)橐晕④浀馁Y源和它的戰(zhàn)略眼光來說,應(yīng)該不會看不到ajax技術(shù)的前景,唯一的解釋也許就是因?yàn)楫?dāng)時它的主要競爭對手Netscape的消失反而使它變得麻痹和遲鈍,畢竟巨人也有打盹的時候,比如IBM曾經(jīng)在對微軟戰(zhàn)略上的失誤。正是這一次的失誤,成就了它現(xiàn)在的競爭對手google在ajax方面的領(lǐng)先地位,而事實(shí)上google目前在ajax技術(shù)方面的領(lǐng)先是微軟所無法達(dá)到的,這一點(diǎn)在后面我講述ajax缺陷的時候也會提到。現(xiàn)在微軟也意識到了這個問題,因此它也開始在ajax領(lǐng)域奮起直追,比如說推出它自己的ajax框架atlas,并且在.NET2.0也提供了一個用來實(shí)現(xiàn)異步回調(diào)的接口,即ICallBack接口。那么微軟為什么對自己在ajax方面的落后如此緊張呢?現(xiàn)在就讓我們來分析一下ajax技術(shù)后面隱藏的深刻意義。

2、ajax技術(shù)的意義

我們在平時的開發(fā)中都多多少少的接觸或者應(yīng)用到了ajax,談到ajax技術(shù)的意義,我們關(guān)注得最多的毫無疑問是提升用戶的體驗(yàn)。但是,如果我們結(jié)合將來電腦和互聯(lián)網(wǎng)的發(fā)展趨勢,我們會發(fā)現(xiàn)ajax技 術(shù)在某些方面正好代表了這種趨勢。為什么這樣說呢?我們知道,自從電腦出現(xiàn)以來,一直是桌面軟件占據(jù)著絕對主導(dǎo)的地位,但是互聯(lián)網(wǎng)的出現(xiàn)和成功使這一切開 始發(fā)生著微妙的變化。相當(dāng)一部分的人都相信,遲早有一天,數(shù)據(jù)和電腦軟件將會從桌面轉(zhuǎn)移到互聯(lián)網(wǎng)。也就是說,將來的電腦有可能拋棄笨重的硬盤,而直接從互 聯(lián)網(wǎng)來獲取數(shù)據(jù)和服務(wù),我記得我念大學(xué)的時候,有位教授給我們上課的時候,曾經(jīng)設(shè)想過這樣一種情景,也許在將來的電腦桌面上,沒有任何多余的軟件和程序, 而僅僅只有一個IE,雖然現(xiàn)在看起來我們距離這一天還很遙遠(yuǎn),并且這其中還有很多的問題需要解決,但是我覺得這個并非夢想,而是遲早將實(shí)現(xiàn)的現(xiàn)實(shí)。那么,這其中的主要問題就是互聯(lián)網(wǎng)的連接不穩(wěn)定,誰也不愿意看著自己的電腦從服務(wù)器一點(diǎn)一滴的下載數(shù)據(jù),那么,ajax是不是解決了這個問題呢,說實(shí)話,與其說ajax解決了這個問題,倒不如它只是掩蓋了這個問題,它只是在服務(wù)器和客戶端之間充當(dāng)了一個緩沖器,讓用戶誤以為服務(wù)沒有中斷。精確的說,ajax并不能提高從服務(wù)器端下載數(shù)據(jù)的速度,而只是使這個等待不那么令人沮喪。但是正是這一點(diǎn)就足以產(chǎn)生巨大的影響和震動,它實(shí)際上也對桌面軟件產(chǎn)生了巨大的沖擊。這一點(diǎn)我用一個例子來說明,我們可以比較一下Outlook Express和Gmail,前者是典型的桌面軟件,后者是ajax所實(shí)現(xiàn)的B/S模式,實(shí)際上后者目前已經(jīng)在慢慢取代前者了,Gmail在收發(fā)郵件的時候已經(jīng)和Outlook Express的功能幾乎沒有差別了,而且它不需要安裝客戶端程序。這就是為什么微軟對ajax所帶來的沖擊有著如此的恐懼心理,并且在它前不久所進(jìn)行的調(diào)查之中,將google看做他們未來十年內(nèi)的主要競爭對手的主要原因之一。當(dāng)然,這種變化也并不會將桌面軟件全部淘汰,現(xiàn)有的瀏覽器還沒有一個能像PhotoShop等桌面程序那樣處理復(fù)雜的圖像。但是我們也不能忽視它帶來的影響和沖擊。

3、關(guān)于ajax的名字

ajax 的全稱是Asynchronous JavaScript and XML,其中,Asynchronous 是異步的意思,它有別于傳統(tǒng)web開發(fā)中采用的同步的方式。

4、關(guān)于同步和異步

異步傳輸是面向字符的傳輸,它的單位是字符;而同步傳輸是面向比特的傳輸,它的單位是楨,它傳輸?shù)臅r候要求接受方和發(fā)送方的時鐘是保持一致的。
具體來說,異步傳輸是將比特分成小組來進(jìn)行傳送。一般每個小組是一個8位字符,在每個小組的頭部和尾部都有一個開始位和一個停止位,它在傳送過程中接收方和發(fā)送方的時鐘不要求一致,也就是說,發(fā)送方可以在任何時刻發(fā)送這些小組,而接收方并不知道它什么時候到達(dá)。一個最明顯的例子就是計(jì)算機(jī)鍵盤和主機(jī)的通信,按下一個鍵的同時向主機(jī)發(fā)送一個8比特位的ASCII代 碼,鍵盤可以在任何時刻發(fā)送代碼,這取決于用戶的輸入速度,內(nèi)部的硬件必須能夠在任何時刻接收一個鍵入的字符。這是一個典型的異步傳輸過程。異步傳輸存在 一個潛在的問題,即接收方并不知道數(shù)據(jù)會在什么時候到達(dá)。在它檢測到數(shù)據(jù)并做出響應(yīng)之前,第一個比特已經(jīng)過去了。這就像有人出乎意料地從后面走上來跟你說 話,而你沒來得及反應(yīng)過來,漏掉了最前面的幾個詞。因此,每次異步傳輸?shù)男畔⒍家砸粋€起始位開頭,它通知接收方數(shù)據(jù)已經(jīng)到達(dá)了,這就給了接收方響應(yīng)、接收 和緩存數(shù)據(jù)比特的時間;在傳輸結(jié)束時,一個停止位表示該次傳輸信息的終止。按照慣例,空閑(沒有傳送數(shù)據(jù))的線路實(shí)際攜帶著一個代表二進(jìn)制1的信號。步傳輸?shù)拈_始位使信號變成0,其他的比特位使信號隨傳輸?shù)臄?shù)據(jù)信息而變化。最后,停止位使信號重新變回1,該信號一直保持到下一個開始位到達(dá)。例如在鍵盤上數(shù)字“1”,按照8比特位的擴(kuò)展ASCII編碼,將發(fā)送“00110001”,同時需要在8比特位的前面加一個起始位,后面一個停止位。
同步傳輸?shù)谋忍胤纸M要大得多。它不是獨(dú)立地發(fā)送每個字符,每個字符都有自己的開始位和停止位,而是把它們組合起來一起發(fā)送。我們將這些組合稱為數(shù)據(jù)幀,或簡稱為幀。
  數(shù)據(jù)幀的第一部分包含一組同步字符,它是一個獨(dú)特的比特組合,類似于前面提到的起始位,用于通知接收方一個幀已經(jīng)到達(dá),但它同時還能確保接收方的采樣速度和比特的到達(dá)速度保持一致,使收發(fā)雙方進(jìn)入同步。
  幀的最后一部分是一個幀結(jié)束標(biāo)記。與同步字符一樣,它也是一個獨(dú)特的比特串,類似于前面提到的停止位,用于表示在下一幀開始之前沒有別的即將到達(dá)的數(shù)據(jù)了。
  同步傳輸通常要比異步傳輸快速得多。接收方不必對每個字符進(jìn)行開始和停止的操作。一旦檢測到幀同步字符,它就在接下來的數(shù)據(jù)到達(dá)時接收它們。另外,同步傳輸?shù)拈_銷也比較少。例如,一個典型的幀可能有500字節(jié)(即4000比特)的數(shù)據(jù),其中可能只包含100比特的開銷。這時,增加的比特位使傳輸?shù)谋忍乜倲?shù)增加2.5%,這與異步傳輸中25 %的增值要小得多。隨著數(shù)據(jù)幀中實(shí)際數(shù)據(jù)比特位的增加,開銷比特所占的百分比將相應(yīng)地減少。但是,數(shù)據(jù)比特位越長,緩存數(shù)據(jù)所需要的緩沖區(qū)也越大,這就限制了一個幀的大小。另外,幀越大,它占據(jù)傳輸媒體的連續(xù)時間也越長。在極端的情況下,這將導(dǎo)致其他用戶等得太久。
了解了同步和異步的概念之后,大家應(yīng)該對ajax為什么可以提升用戶體驗(yàn)應(yīng)該比較清晰了,它是利用異步請求方式的。打個比方,如果現(xiàn)在你家里所在的小區(qū)因 某種情況而面臨停水,現(xiàn)在有關(guān)部門公布了兩種方案,一是完全停水8個小時,在這8個小時內(nèi)完全停水,8個小時后恢復(fù)正常。二是不完全停水10 個小時,在這10個小時內(nèi)水沒有完全斷,只是流量比原來小了很多,在10個小時后恢復(fù)正常流量,那么,如果是你你會選擇哪種方式呢?顯然是后者。

5、ajax所包含的技術(shù)

大家都知道ajax并非一種新的技術(shù),而是幾種原有技術(shù)的結(jié)合體。它由下列技術(shù)組合而成。
1.使用CSS和XHTML來表示。

  1. 使用DOM模型來交互和動態(tài)顯示。
    3.使用XMLHttpRequest來和服務(wù)器進(jìn)行異步通信。
    4.使用javascript來綁定和調(diào)用。
    在上面幾中技術(shù)中,除了XmlHttpRequest對象以外,其它所有的技術(shù)都是基于web標(biāo)準(zhǔn)并且已經(jīng)得到了廣泛使用的,XMLHttpRequest雖然目前還沒有被W3C所采納,但是它已經(jīng)是一個事實(shí)的標(biāo)準(zhǔn),因?yàn)槟壳皫缀跛械闹髁鳛g覽器都支持它。

6、ajax原理和XmlHttpRequest對象

Ajax的原理簡單來說通過XmlHttpRequest對象來向服務(wù)器發(fā)異步請求,從服務(wù)器獲得數(shù)據(jù),然后用javascript來操作DOM而更新頁面。這其中最關(guān)鍵的一步就是從服務(wù)器獲得請求數(shù)據(jù)。要清楚這個過程和原理,我們必須對 XMLHttpRequest有所了解。
 XMLHttpRequest是ajax的核心機(jī)制,它是在IE5中首先引入的,是一種支持異步請求的技術(shù)。簡單的說,也就是javascript可以及時向服務(wù)器提出請求和處理響應(yīng),而不阻塞用戶。達(dá)到無刷新的效果。
 所以我們先從XMLHttpRequest講起,來看看它的工作原理。
 首先,我們先來看看XMLHttpRequest這個對象的屬性。
  它的屬性有:
  onreadystatechange 每次狀態(tài)改變所觸發(fā)事件的事件處理程序。
  responseText 從服務(wù)器進(jìn)程返回數(shù)據(jù)的字符串形式。
  responseXML 從服務(wù)器進(jìn)程返回的DOM兼容的文檔數(shù)據(jù)對象。
  status 從服務(wù)器返回的數(shù)字代碼,比如常見的404(未找到)和200(已就緒)
  status Text 伴隨狀態(tài)碼的字符串信息
  readyState 對象狀態(tài)值
    0 (未初始化) 對象已建立,但是尚未初始化(尚未調(diào)用open方法)
    1 (初始化) 對象已建立,尚未調(diào)用send方法
    2 (發(fā)送數(shù)據(jù)) send方法已調(diào)用,但是當(dāng)前的狀態(tài)及http頭未知
    3 (數(shù)據(jù)傳送中) 已接收部分?jǐn)?shù)據(jù),因?yàn)轫憫?yīng)及http頭不全,這時通過responseBody和responseText獲取部分?jǐn)?shù)據(jù)會出現(xiàn)錯誤,
    4 (完成) 數(shù)據(jù)接收完畢,此時可以通過通過responseXml和responseText獲取完整的回應(yīng)數(shù)據(jù)
  但是,由于各瀏覽器之間存在差異,所以創(chuàng)建一個XMLHttpRequest對象可能需要不同的方法。這個差異主要體現(xiàn)在IE和其它瀏覽器之間。下面是一個比較標(biāo)準(zhǔn)的創(chuàng)建XMLHttpRequest對象的方法。
  如上所示,函數(shù)首先檢查XMLHttpRequest的整體狀態(tài)并且保證它已經(jīng)完成(readyStatus=4),即數(shù)據(jù)已經(jīng)發(fā)送完畢。然后根據(jù)服務(wù)器的設(shè)定詢問請求狀態(tài),如果一切已經(jīng)就緒(status=200),那么就執(zhí)行下面需要的操作。
對于XmlHttpRequest的兩個方法,open和send,其中open方法指定了:
a、向服務(wù)器提交數(shù)據(jù)的類型,即post還是get。
b、請求的url地址和傳遞的參數(shù)。
c、傳輸方式,false為同步,true為異步。默認(rèn)為true。如果是異步通信方式(true),客戶機(jī)就不等待服務(wù)器的響應(yīng);如果是同步方式(false),客戶機(jī)就要等到服務(wù)器返回消息后才去執(zhí)行其他操作。我們需要根據(jù)實(shí)際需要來指定同步方式,在某些頁面中,可能會發(fā)出多個請求,甚至是有組織有計(jì)劃有隊(duì)形大規(guī)模的高強(qiáng)度的request,而后一個是會覆蓋前一個的,這個時候當(dāng)然要指定同步方式。
Send方法用來發(fā)送請求。

知道了XMLHttpRequest的工作流程,我們可以看出,XMLHttpRequest是完全用來向服務(wù)器發(fā)出一個請求的,它的作用也局限于此,但它的作用是整個ajax實(shí)現(xiàn)的關(guān)鍵,因?yàn)閍jax無非是兩個過程,發(fā)出請求和響應(yīng)請求。并且它完全是一種客戶端的技術(shù)。而XMLHttpRequest正是處理了服務(wù)器端和客戶端通信的問題所以才會如此的重要。
  現(xiàn)在,我們對ajax的原理大概可以有一個了解了。我們可以把服務(wù)器端看成一個數(shù)據(jù)接口,它返回的是一個純文本流,當(dāng)然,這個文本流可以是XML格式,可以是Html,可以是Javascript代碼,也可以只是一個字符串。這時候,XMLHttpRequest向服務(wù)器端請求這個頁面,服務(wù)器端將文本的結(jié)果寫入頁面,這和普通的web開發(fā)流程是一樣的,不同的是,客戶端在異步獲取這個結(jié)果后,不是直接顯示在頁面,而是先由javascript來處理,然后再顯示在頁面。至于現(xiàn)在流行的很多ajax控件,比如magicajax等,可以返回DataSet等其它數(shù)據(jù)類型,只是將這個過程封裝了的結(jié)果,本質(zhì)上他們并沒有什么太大的區(qū)別。

7、ajax的優(yōu)點(diǎn)

Ajax的給我們帶來的好處大家基本上都深有體會,在這里我只簡單的講幾點(diǎn):
1、最大的一點(diǎn)是頁面無刷新,在頁面內(nèi)與服務(wù)器通信,給用戶的體驗(yàn)非常好。
  2、使用異步方式與服務(wù)器通信,不需要打斷用戶的操作,具有更加迅速的響應(yīng)能力。
  3、可以把以前一些服務(wù)器負(fù)擔(dān)的工作轉(zhuǎn)嫁到客戶端,利用客戶端閑置的能力來處理,減輕服務(wù)器和帶寬的負(fù)擔(dān),節(jié)約空間和寬帶租用成本。并且減輕服務(wù)器的負(fù)擔(dān),ajax的原則是“按需取數(shù)據(jù)”,可以最大程度的減少冗余請求,和響應(yīng)對服務(wù)器造成的負(fù)擔(dān)。
4、基于標(biāo)準(zhǔn)化的并被廣泛支持的技術(shù),不需要下載插件或者小程序。

8、ajax的缺點(diǎn)

下面我著重講一講ajax的缺陷,因?yàn)槠綍r我們大多注意的都是ajax給我們所帶來的好處諸如用戶體驗(yàn)的提升。而對ajax所帶來的缺陷有所忽視。
  下面所闡述的ajax的缺陷都是它先天所產(chǎn)生的。
 1、ajax干掉了back按鈕,即對瀏覽器后退機(jī)制的破壞。后退按鈕是一個標(biāo)準(zhǔn)的web站點(diǎn)的重要功能,但是它沒法和js進(jìn)行很好的合作。這是ajax所帶來的一個比較嚴(yán)重的問題,因?yàn)橛脩敉窍M軌蛲ㄟ^后退來取消前一次操作的。那么對于這個問題有沒有辦法?答案是肯定的,用過Gmail的知道,Gmail下面采用的ajax技術(shù)解決了這個問題,在Gmail下面是可以后退的,但是,它也并不能改變ajax的機(jī)制,它只是采用的一個比較笨但是有效的辦法,即用戶單擊后退按鈕訪問歷史記錄時,通過創(chuàng)建或使用一個隱藏的IFRAME來重現(xiàn)頁面上的變更。(例如,當(dāng)用戶在Google Maps中單擊后退時,它在一個隱藏的IFRAME中進(jìn)行搜索,然后將搜索結(jié)果反映到Ajax元素上,以便將應(yīng)用程序狀態(tài)恢復(fù)到當(dāng)時的狀態(tài)。)
但是,雖然說這個問題是可以解決的,但是它所帶來的開發(fā)成本是非常高的,和ajax框架所要求的快速開發(fā)是相背離的。這是ajax所帶來的一個非常嚴(yán)重的問題。
2、安全問題
技術(shù)同時也對IT企業(yè)帶來了新的安全威脅,ajax技術(shù)就如同對企業(yè)數(shù)據(jù)建立了一個直接通道。這使得開發(fā)者在不經(jīng)意間會暴露比以前更多的數(shù)據(jù)和服務(wù)器邏輯。ajax的邏輯可以對客戶端的安全掃描技術(shù)隱藏起來,允許黑客從遠(yuǎn)端服務(wù)器上建立新的攻擊。還有ajax也難以避免一些已知的安全弱點(diǎn),諸如跨站點(diǎn)腳步攻擊、SQL注入攻擊和基于credentials的安全漏洞等。
3、對搜索引擎的支持比較弱。
4、破壞了程序的異常機(jī)制。至少從目前看來,像ajax.dll,ajaxpro.dll這些ajax框架是會破壞程序的異常機(jī)制的。關(guān)于這個問題,我曾經(jīng)在開發(fā)過程中遇到過,但是查了一下網(wǎng)上幾乎沒有相關(guān)的介紹。后來我自己做了一次試驗(yàn),分別采用ajax和傳統(tǒng)的form提交的模式來刪除一條數(shù)據(jù)……給我們的調(diào)試帶來了很大的困難。
5、另外,像其他方面的一些問題,比如說違背了url和資源定位的初衷。例如,我給你一個url地址,如果采用了ajax技術(shù),也許你在該url地址下面看到的和我在這個url地址下看到的內(nèi)容是不同的。這個和資源定位的初衷是相背離的。
6、一些手持設(shè)備(如手機(jī)、PDA等)現(xiàn)在還不能很好的支持ajax,比如說我們在手機(jī)的瀏覽器上打開采用ajax技術(shù)的網(wǎng)站時,它目前是不支持的,當(dāng)然,這個問題和我們沒太多關(guān)系。

9、ajax的幾種框架

目前我們采用的比較多的ajax框架主要有ajax.dll,ajaxpro.dll,magicajax.dll 以及微軟的atlas框架。Ajax.dll和Ajaxpro.dll這兩個框架差別不大,而magicajax.dll只是封裝得更厲害一些,比如說它可以直接返回DataSet數(shù)據(jù)集,前面我們已經(jīng)說過,ajax返回的都是字符串,magicajax只是對它進(jìn)行了封裝而已。但是它的這個特點(diǎn)可以給我們帶來很大的方便,比如說我們的頁面有一個列表,而列表的數(shù)據(jù)是不斷變化的,那么我們可以采用magicajax來處理,操作很簡單,添加magicajax之后,將要更新的列表控件放在magicajax的控件之內(nèi),然后在pageload里面定義更新間隔的時間就ok了,atlas的原理和magicajax差不多。但是,需要注意的一個問題是,這幾種框架都只支持IE,沒有進(jìn)行瀏覽器兼容方面的處理,用反編譯工具察看他們的代碼就可以知道。
除了這幾種框架之外,我們平時用到的比較多的方式是自己創(chuàng)建xmlHttpRequest對象,這種方式和前面的幾種框架相比更具有靈活性。另外,在這里還提一下aspnet2.0自帶的異步回調(diào)接口,它和ajax一樣也可以實(shí)現(xiàn)局部的無刷新,但它的實(shí)現(xiàn)實(shí)際上也是基于xmlhttprequest對象的,另外也是只支持IE,當(dāng)然這是微軟的一個競爭策略。

10、ajax示例

驗(yàn)證用戶名是否注冊。
采用兩種方式
  1 ajax.dll
  2 自己寫xmlhttprequest對象

10.ajax中常見到的一些錯誤
  1 配置的問題

在pageload里面配置該頁面的時候

11
  在后臺調(diào)用的方法里調(diào)用了前臺的部分…

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,885評論 6 541
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 99,312評論 3 429
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 177,993評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,667評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 72,410評論 6 411
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,778評論 1 328
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,775評論 3 446
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,955評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,521評論 1 335
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 41,266評論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 43,468評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,998評論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,696評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,095評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,385評論 1 294
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,193評論 3 398
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 48,431評論 2 378

推薦閱讀更多精彩內(nèi)容

  • 1.AJAX全稱為“Asynchronous JavaScript and XML”(異步JavaScript和X...
    空谷悠閱讀 555評論 2 11
  • 1、ajax技術(shù)的背景 不可否認(rèn),ajax技術(shù)的流行得益于google的大力推廣,正是由于google earth...
    raincoco閱讀 423評論 0 4
  • Ajax的原理簡單來說通過XmlHttpRequest對象來向服務(wù)器發(fā)異步請求,從服務(wù)器獲得數(shù)據(jù),然后用javas...
    Allan要做活神仙閱讀 348評論 0 0
  • 什么是Ajax? Ajax就是異步的Javascript和Xml Ajax原理 簡單來說就是在客戶端和服務(wù)...
    CouCo丶喲閱讀 293評論 0 0
  • 晚上下了班,換了件露肩的黑色連衣裙,畫了個簡單的淡妝,將盤起的頭發(fā)隨意披散下來。 “瀟瀟,你平時就該多打扮自己,別...
    奧利奧與甜甜圈閱讀 186評論 0 0