【PhoneGAP學習】Android PhoneGap框架(1)--重要知識點的預先學習(XHR)

PhoneGap推出了好幾年了,網絡上有不計其數的優秀說明文檔和心得,通過學習他們的文章,瞭解PhoneGap的框架。

話說PhoneGap雖然已經改名換姓成cordova ,但是因由原來的名字被熟知,PhoneGap的開源網站的名稱還是留用了自己的名字。(PhoneGap開源網站

當然還有一些PhoneGap的開源論壇(PhoneGap論壇),可能是混合動力模式的蕭條,該論壇現在活躍度和結貼率很低。

另外要推薦兩位牛人寫的不錯的PhoneGap總結的博客(cutesource 以及文章不多,但phonegap介紹得詳細的sd6733531

對於最重要的關於javascript和native進行交互的方式,需要先弄懂一下幾個概念。

   關於XMLHttpRequest

   XMLHttpRequest這個隨着AJAX使用的技術已經相當成熟,不用多言。 下面列出的幾個方法稍微整理一下用XMLHttpRequest的幾個模糊的地方。

  • open()    參數有:method, url,async,username,password

           這個方法用來初始化數據,包括前面的請求頭,響應頭, responseXML,responseText,status,statusText參數設置成默認值。

           readyState 爲 0 或4的時候調用該方法是安全的。(注:該方法是不會打開連接到另一個web服務器網絡。)

           其他的參數不多說,其中裏面的第二個參數url,根據同源策略的原因,url 只有是加載該網頁同一服務器路徑纔有效。

            # 如果加載該腳本的是本地路徑(file:///),url則使用不了本地路徑(file:///),或者帶有http的外部服務器,http://127.0.0.1的本地迴旋路徑是允許的。(?原理調查中)    

            # 如果加載該腳本是http的web服務器的腳本。則url則使用不了本地路徑(file:///),路徑可以是相對路徑(相對於加載該腳本的路徑)也可以是與其同一服務器的 絕對路徑。    

  • send()    參數有:body    

            這個方法纔是用來作爲一個HTTP 請求發送,當open裏面的method參數指定是POST 或 PUT的時候,其中參數body可以爲null也可以爲一個字符串或者 Document 對象  。    

  • onreadystatechange()

          這個方法是狀態改變時事件回調方法,當open裏面的async參數是true表示異步接收事件時,該方法將有效。        

          這個方法被觸發的順序爲:

          XMLHttpRequest對象創建(readyState爲0)

                         ↓

          open() 初始化url和method參數(readyState爲1)

                         ↓

   send()請求發送(readyState爲2)

                         ↓

   頭信息接收(readyState爲3)

                         ↓

   服務器響應完全被接收(readyState是4)

        
  • status屬性

            當訪問的web服務器,XMLHttpRequest對象,響應完全接受readyState爲4時,得到返回的狀態代碼status是從1xx-5xx,

           但是如果是本地文件打開的腳本,運行XMLHttpRequest請求,readyState爲4時返回的status則是0。

      
其他的方法和屬性請參照w3c的說明。        
       

關於JSONP則在下一章學習總結。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章