使用來更快速的請求接口

話說前幾天的任務吧,是一個整個頁面數據都需要請求接口來渲染的配置頁面(標題/圖標什麼的也都是後臺提供),我本想用AJAx來請求的,但是導師review的時候表示這樣頁面加載會比較慢,讓我嘗試用<script> 來請求那些不會頻繁的數據。so~~


首先定義我們的數據處理函數

    var handle = function(data){
        console.log(data);
        /*處理代碼*/
     };

然後請求接口

<script type="text/javascript" src="//example.txt"></script>
接口的數據格式(將原本的JSON數據作爲參數傳入函數,此時的接口也就是一個函數調用的形式):
handle(
    {
        error_no: "0",
        error_info: "",
        current_page: 1,
        total_page: 58
    }
    //JSON數據
)

【原理介紹】
先引入一段話:
<script>元素可以作爲一種Ajax傳輸機制:只須設置<script>元素的src屬性,然後瀏覽器就會發送一個http請求以下載src所指向的URL。
使用<script>元素進行ajax傳輸的一個主要原因是,它不受同源策略的影響,因此可以使用它們從其他服務器請求數據,第二個原因是包含JSON編碼數據的響應體會自動解碼(即執行)

也就是說 <script> 引入example.txt後,我們執行了渲染數據的函數handle,頁面渲染。

【關於爲什麼這種方式會比AJAX請求快?】
這裏引入一個我找的資料中我最能理解的一個答案:

使用script標籤是用於跨域請求的,Ajax請求無法跨域訪問(即從其它服務器請求) 
至於請求時間,如果script標籤是靜態的(即寫在頁面源碼內),那它是在網頁加載後和其它的頁面資源一起併發請求,並順序執行。 
而Ajax請求應該是放在類似onReady回調裏吧?它會在網頁都加載完畢後才執行,一個併發,一個串行,前者速度會快一些。 

參考鏈接:

關於頁面加載時間的問題~ajax請求的時間和用script標籤加載腳本的時間差多少呢?

藉助 script 發送HTTP請求

動態創建script實現跨域請求和接受返回值

知乎 —- 前端問題,正常的href請求和ajax請求的區別在哪裏,一個是頁面跳轉,一個是消息通信?

知乎 —- jsonp和ajax請求數據的速度比較?

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