<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # 10Ajax ### 不使用 jQuery 的 Ajax 請求 ### 問題 你想要通過 AJAX 來從你的服務器加載數據,而不使用 jQuery 庫。 ### 解決方案 你將使用本地的 [XMLHttpRequest](https://en.wikipedia.org/wiki/XMLHttpRequest) 對象。 通過一個按鈕來打開一個簡單的測試 HTML 頁面。 ~~~ <!DOCTYPE HTML> <html lang="en-US"> <head> <meta charset="UTF-8"> <title>XMLHttpRequest Tester</title> </head> <body> <h1>XMLHttpRequest Tester</h1> <button id="loadDataButton">Load Data</button> ? <script type="text/javascript" src="XMLHttpRequest.js"></script> </body> </html> ~~~ 當單擊該按鈕時,我們想給服務器發送 Ajax 請求以獲取一些數據。對于該例子,我們使用一個 JSON 小文件。 ~~~ // data.json { message: "Hello World" } ~~~ 然后,創建 CoffeeScript 文件來保存頁面邏輯。此文件中的代碼創建了一個函數,當點擊加載數據按鈕時將會調用該函數。 ~~~ 1 # XMLHttpRequest.coffee 2 loadDataFromServer = -> 3 req = new XMLHttpRequest() 4 5 req.addEventListener 'readystatechange', -> 6 if req.readyState is 4 # ReadyState Complete 7 successResultCodes = [200, 304] 8 if req.status in successResultCodes 9 data = eval '(' + req.responseText + ')' 10 console.log 'data message: ', data.message 11 else 12 console.log 'Error loading data...' 13 14 req.open 'GET', 'data.json', false 15 req.send() 16 17 loadDataButton = document.getElementById 'loadDataButton' 18 loadDataButton.addEventListener 'click', loadDataFromServer, false ~~~ ### 討論 在以上代碼中,我們對 HTML 中按鍵進行了處理(第 16 行)以及添加了一個*單擊*事件監聽器(第 17 行)。在事件監聽器中,我們把回調函數定義為 loadDataFromServer。 我們在第 2 行定義了 loadDataFromServer 回調的開頭。 我們創建了一個 XMLHttpRequest 請求對象(第 3 行),并添加了一個 *readystatechange* 事件處理器。請求的 readyState 發生改變的那一刻,它就會被觸發。 在事件處理器中,我們會檢查判斷是否滿足 readyState=4,若等于則說明請求已經完成。然后檢查請求的狀態值。狀態值為 200 或者 304 都代表著請求成功,其它則表示發生錯誤。 如果請求確實成功了,那我們就會對從服務器返回的 JSON 重新進行運算,然后把它分配給一個數據變量。此時,我們可以在需要的時候使用返回的數據。 在最后我們需要提出請求。 在第 13 行打開了一個 “GET” 請求來讀取 data.json 文件。 在第 14 行把我們的請求發送至服務器。 ### 舊版服務器支持 如果你的應用需要使用舊版本的 Internet Explorer ,你需確保 XMLHttpRequest 對象存在。為此,你可以在創建 XMLHttpRequest 實例之前輸入以下代碼。 ~~~ if (typeof @XMLHttpRequest == "undefined") console.log 'XMLHttpRequest is undefined' @XMLHttpRequest = -> try return new ActiveXObject("Msxml2.XMLHTTP.6.0") catch error try return new ActiveXObject("Msxml2.XMLHTTP.3.0") catch error try return new ActiveXObject("Microsoft.XMLHTTP") catch error throw new Error("This browser does not support XMLHttpRequest.") ~~~ 這段代碼確保了 XMLHttpRequest 對象在全局命名空間中可用。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看